Агрегация по лучшим результатам N
Проблема:
Если я ищу «iphone», я получаю 400 результатов продукта, и у меня есть агрегация по категориям продуктов, которая возвращает три верхние категории в наборе результатов.
Эти категории будут включать смартфоны, чехлы для телефонов и аксессуары для мобильных телефонов.
Если я ищу «iphone 6», я получаю 1400 результатов из-за дополнительных «6» результатов поиска для других продуктов. Агрегация категорий продуктов теперь возвращает 3 верхние категории для всех этих результатов.
В топ-3 категории продуктов теперь входят все, от кабелей до компьютерных мониторов.
Что мне нужно сделать, так это получить 3 верхние категории для 100 лучших результатов.
Что я пробовал:
Я пытался использоватьtop_hits
агрегация в агрегации высшей категории, но при этом возвращаются только топовые продукты в каждой категории.
Что-то вроде этого:
{
"aggs": {
"product_categories": {
"terms": {
"field": "product_category",
"size": 10,
}
}
"aggs": {
"top-categories": {
"top_hits": {
"size" : 3
}
}
}
}
}
Я также пытался создатьtop_hits
агрегация с субагрегацией внутри, чтобы получить верхние категории, но это тоже не работает.
{
"aggs": {
"top-categories": {
"top_hits": {
"size" : 100
}
"aggs": {
"product_categories": {
"terms": {
"field": "product_category",
"size": 3,
}
}
}
}
}
}
Может кто-нибудь помочь мне с этой проблемой?