В моем магазине электронной коммерции я хочу включить в окончательные результаты только первый элемент в каждой группе (сгруппированный по item_id). В то же время я не хочу терять свои агрегаты (маленькие цифры рядом с атрибутами, которые указывают, сколько элементов с этим атрибутом найдено).
Вот небольшой пример:
Предположим, я делаю поиск предметов, и только 25 появляются. Вот результат для агрегации цветов, которую я сейчас получаю:
- черный (65)
- зеленый (32)
- белый (13)
И я хочу, чтобы это было:
- черный (14)
- зеленый (6)
- белый (5)
Число должно соответствовать общему количеству, которое пользователь фактически видит на странице.
Как я мог достичь этого с Elasticsearch? Я пробовал как группирование (топ-хиты), так и свертывание полей, и оба, похоже, не подходят для моего варианта использования. Solr делает это почти по умолчанию с помощью функции группировки.