У меня есть индекс 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 водин запрос. Я не хочу использовать несколько запросов. Спасибо