【发布时间】:2016-03-07 17:40:41
【问题描述】:
我正在尝试创建一个弹性搜索查询,该查询必须匹配单独字段上的三个查询之一,并且还有一个不需要匹配的额外查询。使用 bool 查询和 MUST 子句的问题在于它必须匹配所有 3,并且使用 SHOULD 它并不总是匹配所需的,除非使用 minimum_should_match 设置为 2。在这种情况下,它与文档不匹配由于最小匹配,匹配 3 个必需的之一。
我当前的查询是这样的(对不起,这里没有代码)
query
- bool
- must
- query 1
- query 2
- query 3
- should
- query 4
我也尝试了以下方法,但它不会使第四个查询成为可选
query
- bool
- should
- query 1
- query 2
- query 3
- query 4
- minimum_should_match: 2
如何创建一个查询,该查询必须匹配三个查询之一,并可选择将第四个查询的排名更高。
【问题讨论】:
标签: elasticsearch