【发布时间】:2019-05-02 08:07:12
【问题描述】:
我想定义一个 DSL 查询,在下面描述 Lucene 中的查询:
q = role:(admin OR manager) AND priority:(high OR middle).
我知道我可以使用should 来表示OR 逻辑,但是,下面的DSL 查询:
{
"query": {
"bool": {
"should": [
{
"match": {
"role": "admin"
}
},
{
"match": {
"role": "manager"
}
},
{
"match": {
"priority": "high"
}
},
{
"match": {
"priority": "middle"
}
}
],
"minimum_should_match": "2"
}
}
}
无法达到我需要的,因为数据
{
"role": [ "admin", "manager"],
"priority": "low"
}
会被认为是有效的,但它不是。
如何修复我的 DSL 查询?我正在使用 ElasticSearch 5.2.2,谢谢!
【问题讨论】:
标签: elasticsearch elasticsearch-dsl