Фильтр по ключевому слову в наборе ключевых слов - PullRequest
0 голосов
/ 25 сентября 2018

В Elasticsearch 6.0+ мне бы хотелось отфильтровать результаты, ограничив их одним из полей ключевых слов, чтобы это поле входило в набор ключевых слов.

В настоящее время я использую bool как в этом примере:

GET users/_search
{
  "query": {
    "bool": {
      "must": {
        "match": {
          "user_name": "alice"
        }
      },
      "filter": {
        "bool": {
          "should": [
            {"match": {"country": "italy"}},
            {"match": {"country": "france"}}
          ]
        }
      }
    }
  }
}

но представьте, что там 50 стран.

Есть ли способ упростить это?Что-то похожее на Python country in ['italy', 'france']?

1 Ответ

0 голосов
/ 26 сентября 2018

Прорабатывая комментарий @ suparshva, это можно переписать:

GET users/_search
{
  "query": {
    "bool": {
      "must": {
        "match": {
          "user_name": "alice"
        }
      },
      "filter": {
        "terms": {
          "country": ["italy", "france"]
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...