Эластичный поиск: получите список доступных аспектов / агрегатов для этого набора результатов

В Elastic Search мне нужно получить список доступных агрегатов (формально Facets?) Для текущего набора результатов.

Например, если я выполняю поиск слова «автомобиль» в наборе автомобилей, в которых определены поля MAKE и MODEL, я бы хотел, чтобы он не только давал мне набор результатов, но и список марок и моделей, которые я могу Сортировать по.

Из того, что я могу прочитать, вы должны запросить агрегаты, которые вы хотите. Это не может быть правдой, потому что если бы я был eBay и у меня был каталог с сотнями возможных атрибутов, все из которых доступны для поиска, то сказать поисковой системе, по каким аспектам я хотел бы искать, было бы невозможно масштабировать.

Я использую:

  • Эластичный поиск
  • PHP Elastica Client

Я ожидаю, что просто смогу вызвать Elastica / ResultSet.php :: getAggregations () в строке 194 здесь:

Точка отсчета:

Может кто-нибудь уточнить, что мне нужно сделать, чтобы добиться этого?

1

Решение

В Elasticsearch вы должны явно указать, какие поля вы хотите собрать. Почему бы вам не реализовать клиентскую (клиентскую часть Elasticsearch) логику получения всех имен полей и создать поисковый запрос Elasticsearch с агрегированием для всех этих полей?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]