Как выразить необязательное соответствие с помощью Query String Query - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть запрос, как показано ниже, с использованием строки запроса dsl , который я ожидаю получить результаты, которые соответствуют всем трем утверждениям. (статус = активный, цена = 100, язык = en).

Как я могу сделать необязательный параметр language, просто наберите меньше очков, если он не совпадает, а не совпадает вообще?

(status:"active") AND (price:100) AND (language:"en")

1 Ответ

0 голосов
/ 06 ноября 2018

Вы можете попробовать это

(status:active AND language:en) OR (price:100 AND language:en)

Или более короткая версия, подобная этой:

+status:active +price:100 language:en

Эквивалентный запрос, переписанный с использованием bool и match запросов, это:

{
  "bool": {
    "must": [
      {
        "match": {
          "status": "active"
        }
      },
      {
        "match": {
          "price": 100
        }
      }
    ],
    "should": {
      "match": {
        "language": "en"
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...