0

У меня есть запрос для поиска provider_id из . Я использую приведенный ниже запрос для получения результатов для одного 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" 
        ] 
       } 
      } 
     ] 
     } 
    } 
} 
Смежные вопросы