我有一个用例,需要构建一个包含这种逻辑的查询:
(condition1 OR condition2 OR condition3) AND (condition4 OR condition5) AND condition6
如何通过弹性搜索实现它?
如果我将bool
和should
一起使用filter
查询,则必须定义minimum_should_match: 1
,但它不能解决如何执行多或查询的问题。
答案 0 :(得分:0)
看起来像
{
"bool": {
"must": [
{
"bool": {
"should": [condition1, condition2, condition3],
"minimum_should_match": 1
}
},
{
"bool": {
"should": [condition4, condition5],
"minimum_should_match": 1
}
},
condition6
]
}
}
条件可能看起来像
{
"term": {
"field": "value"
}
}