请您解释一下Elastic Search布尔查询的工作原理吗? 我在这里阅读了文档: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html 但似乎太简单了,我无法理解。看看这个查询:
{
"bool" : {
"must" : {
"term" : { "user" : "kimchy" }
},
"must_not" : {
"range" : {
"age" : { "from" : 10, "to" : 20 }
}
},
"should" : [
{
"term" : { "tag" : "wow" }
},
{
"term" : { "tag" : "elasticsearch" }
}
],
"minimum_should_match" : 1,
"boost" : 1.0
}
}
我无法理解'应该'和' minimum_should_match'。你能解释一下吗?
答案 0 :(得分:1)
在您提供的查询中,应该提交文件(意味着他们会 如果他们满足必须和必须的部分,那么先来。如果条件中的任何一个条件满足于should数组(它将与OR运算符连接),那么应该匹配
现在考虑一下这个案例
{
"bool": {
"should": [
{
"term": {
"tag": "wow"
}
},
{
"term": {
"tag": "elasticsearch"
}
}
],
"minimum_should_match": 1,
"boost": 1
}
}
在这里没有必须和 must_not 然后它将匹配should数组中的所有条件。它将返回包含标签哇&的文档。 elasticsearch (将使用AND运算符连接条款)并且在您的查询中(其中包含必须包含的部分)它将使用OR运算符连接if子句。
要了解minimum_should_match,请参阅
如果我能够澄清差异和功能,请告诉我。