Запрос с несколькими должен - PullRequest
0 голосов
/ 29 октября 2018

У меня есть сценарий использования, который необходимо построить запрос, который содержит такую ​​логику:

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

Как я могу реализовать это с помощью упругого поиска?

Если я использую bool запрос с should и filter, я должен определить minimum_should_match: 1, но это не решает, как я могу выполнить несколько запросов OR / if.

1 Ответ

0 голосов
/ 29 октября 2018

Это будет выглядеть как

{
  "bool": {
    "must": [
      {
        "bool": {
          "should": [condition1, condition2, condition3],
          "minimum_should_match": 1
        }
      },
      {
        "bool": {
          "should": [condition4, condition5],
          "minimum_should_match": 1
        }
      },
      condition6
    ]
  }
}

Где условие может выглядеть как

{
  "term": {
    "field": "value"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...