【发布时间】:2018-04-06 17:52:31
【问题描述】:
应找到以下文件:
matches query 'my text' AND (has not field OR field with value)
我尝试了以下方法:
GET /myIndex/_search
{
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "my text"
}
},
{
}
],
"filter": {
"bool": {
"must_not": {
"exists": {
"field": "myField"
}
},
"must": {
"terms": {
"myField": [
"myValue"
]
}
}
}
}
}
}
}
它应该(但不)起作用:
- 通过 OR
must和filter部分进行布尔组合 - 第一个
must查询选择 - 过滤器使用由 OR
must andmust_not 组合而成的 bool
但这就像must 通过AND 子句结合must_not。例如。当我删除“must”或“must_not”查询时有效。
如何通过OR子句更改查询以将“must”与“must_not”结合起来?
Elasticsearch 版本为5.3.2
【问题讨论】:
-
伙计,我试图遵循你的
ANDOR规则但不能。也许this 可以帮助您重新排序条款。
标签: elasticsearch