Elastic Search布尔查询的工作原理是什么?

时间:2014-09-22 10:57:28

标签: elasticsearch

请您解释一下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'。你能解释一下吗?

1 个答案:

答案 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,请参阅

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html

如果我能够澄清差异和功能,请告诉我。