Есть индекс товаров (products). Пример документа, который находится в индексе:
{
"product_id": <>,
"title": <>,
"type": <>,
...
}
Хочу сделать группировку продуктов по типу, НО!, чтобы в каждой группе был хотя бы один продукт с типом, например «aim».
Абстрагируясь от данных, задача может звучать так: сгруппировать документы по полю 'A', но исключить/не_создавать группы, в которых нет хотя бы одного документа со значением 'X', поля 'Y'.
У меня пока есть такой запрос.
{
"aggs": {
"buckets": {
// группирую документы по title'у
"terms": {
"field": "title",
},
"aggs": {
// возвращаю в результатах группировки документы целиком
"products": {
"top_hits": {
"_source": True,
},
},
},
},
}
}
но он не влючает часть «исключить/не_создавать группы, в которых нет хотя бы одного документа со значением 'X', поля 'Y'.».
Кто имел дело с подобными кейзами в ES, подскажите, пожалуйста.