Как передать список значений для определенного поля в Elastic Search Query

У меня есть запрос для поиска provider_id от Elastic Search Cluster, Я использую приведенный ниже запрос, чтобы получить результаты для одного provider_id но нужна помощь в выяснении, как я могу передать список поставщиков.

{
"query": {
    "bool": {
        "must": [{
            "match": {
                "message.provider_id": {
                    "query": 943523,
                    "type": "phrase"
                }
            }
        }]
    }
}
}

Предположим, я хочу найти provider_ids = [913523, 923523, 923523, 933523, 953523] тогда как мне изменить запрос?

1 ответ

Решение

Вы можете индексировать provider_id как not_analyzed, а затем использовать запрос условий:

POST /test_index/_search
{
    "query": {
        "terms": {
           "message.provider_id": [
              "913523", "923523", "923523", "933523", "953523"
           ]
        }
    }
}

или как запрос bool с фильтром, если вам не нужен счет:

POST /test_index/_search
{
   "query": {
      "bool": {
         "filter": [
            {
               "terms": {
                  "message.provider_id": [
                      "913523", "923523", "923523", "933523", "953523"
                  ]
               }
            }
         ]
      }
   }
}
Другие вопросы по тегам