查询多个

时间:2018-10-29 17:50:17

标签: elasticsearch

我有一个用例,需要构建一个包含这种逻辑的查询:

(condition1 OR condition2 OR condition3) AND (condition4 OR condition5) AND condition6

如何通过弹性搜索实现它?

如果我将boolshould一起使用filter查询,则必须定义minimum_should_match: 1,但它不能解决如何执行多或查询的问题。

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"
  }
}