意义必须和操作员组合

时间:2017-05-12 04:50:58

标签: elasticsearch

我的编码如下:

{
"query": {
  "bool": {
     "must": [
        {
           "multi_match": {
              "query": [
                 "5347"
              ],
              "fields": [
                 "stkno",
                 "tag",
                 "content",
                 "htext"
              ],
              "operator": "or"
           }
        }
     ]
  }
 },
 "size": 500,
 "sort": [
  {
     "CDate": {
        "order": "desc"
      }
    }
  ]
}

如果必须和运营商结合在一起意味着什么?如果使用must和operator是?

,Elasticsearch将运行条件

由于

1 个答案:

答案 0 :(得分:3)

多个查询之间的

MustAnd类似。 举个例子:

  "query": {
    "bool": {
        "must": [
           {  // Query 1},
           { // Query 2}
        ]
     }
   }

如果Query1 AND Query2返回结果,则上述查询将返回结果。关于must here

的研究

以上查询中的operator OR 适用于multi_match查询。

以例如:

    "multi_match": {
              "query": [
                 "text1 text2"
              ],
              "fields": [
                 "field1",
                 "field2"
              ],
              "operator": "or"            
           }

此处 OR 运算符将在text1查询中提到的text2multimatch之间工作。这意味着,如果任何字段field1field2包含text1 text2,则会返回文档。关于operator here

的研究

现在,如果我们考虑上面给出的例子。由于您在must子句中只有一个查询,因此您无法看到 AND 行为。

您只有multimatch查询中的文字,即" 5347" ,您无法看到多匹配查询的 OR 行为

希望这能澄清你的怀疑。

相关问题