ElasticSearch:bool-must-term(3)等同于具有minimum_should_match 3的旧术语

时间:2016-08-09 10:47:40

标签: elasticsearch

这在ES中不再有效:

"terms" : {
  "field": ["1", "2", "3"],
  "minimum_should_match": 3
}

如果我用boolmust-term should撰写"minimum_should_match": 3,那将会有什么不同

"bool" : {
    "must" : [
    {"term" : {"field" : "1"}},
    {"term" : {"field" : "2"}},
    {"term" : {"field" : "3"}}
    ]
  }

VS

"bool" : {
    "should" : [
    {"term" : {"field" : "1"}},
    {"term" : {"field" : "2"}},
    {"term" : {"field" : "3"}}
    ],
    "minimum_should_match": 3
  }

一切都一样吗?

1 个答案:

答案 0 :(得分:0)

两个(新)查询将产生完全相同的分数和相同的文档。

使用terms的旧minimum_should_match查询会在下方生成bool/should查询,因此它几乎与第三个相同。