извлекать количество документов, удовлетворяющих нескольким условиям - PullRequest
0 голосов
/ 12 июня 2018

У меня есть индекс Elasticsearch для информации о фруктах, как показано ниже

GET fruits/fruits_data/_search

[{ id: 1,
   name: apple},
 { id: 2,
   name: mango},
 { id: 3,
   name: apple},
 { id: 4,
   name: banana},
 { id: 5,
   name: apple},
 { id: 6,
   name: mango},
 { id: 7,
   name: pineapple},
 { id: 8,
   name: jackfruit}]

Теперь мне нужно выбрать 7 фруктов в соответствии с приоритетом (ниже):

{"apple": 3, "banana": 3, "mango": 2, "guava": 2, "pineapple": 1, "jackfruit": 1}

Здесь key указывает на плод, который нужно извлечь, а value указывает максимальное количество документа, который нужно извлечь.Это означает, что мне нужно получить максимум 3 apple, 3 banana and 1 mango, и я могу игнорировать остальные в приоритетном хэше, когда у меня есть необходимое количество фруктов.Но здесь у меня есть только 1 banana в моем индексе ES, поэтому мне нужно извлечь максимум 3 apple, 1 banana, 2 mango and 1 pineapple (Так как guava отсутствует в индексе, мы должны его игнорировать. Есть ли способ получить фрукты, подобные этому, в ES водин запрос. Я не хочу использовать несколько запросов. Спасибо

1 Ответ

0 голосов
/ 17 августа 2018

Невозможно получить результаты напрямую, попробуйте использовать Aggregation вasticsearch.Вы можете обратиться по ссылке ниже, [https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...