rmn.nish
rmn.nish

Reputation: 889

fetch perticular number of documents satisfying multiple conditions - Elasticsearch

I have a Elasticsearch index for an information of fruits as below

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}]

Now I need to fetch 7 fruits as per the priority (below):

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

Here the key indicates the fruit to be fetched and valueindicates the maximum number of the document to be fetched. This means I need to fetch maximum 3 apple, 3 banana and 1 mango and I can ignore the others in priority hash when I have required number of fruits. But here I have only 1 banana in my ES index so I need to fetch maximum 3 apple, 1 banana, 2 mango and 1 pineapple (Since guava is not present in index we need to ignore it. Is there a way to fetch fruits like this in ES in a single query. I don't want to use multiple queries. Thanks

Upvotes: 2

Views: 71

Answers (1)

Sowmya CR
Sowmya CR

Reputation: 312

It is not possible to fetch results directly,Try using Aggregation in elasticsearch. You can refer to link below, [https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html]

Upvotes: 1

Related Questions