Как передать список значений для определенного поля в 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"
]
}
}
]
}
}
}