Я использую пример приложения из github.com/searchly/searchly-php-sample с сервисом Searchly.
Я пришел к простому, когда я хочу, чтобы результаты поиска возвращали все результаты (продолженные как ‘aggs’) из результатов поиска, а не только те, которые я указал.
В настоящее время код для aggs:
$searchParams['body']['aggs']['resolution']['terms']['field'] = 'resolution';
это возвращает разрешение agg, но я не могу найти способ вернуть все возможные agg из результатов поиска.
Возможно ли это или требуется, чтобы я где-то сохранял агги, а затем просто перечислял их, когда выполняю фактический поисковый запрос?
Спасибо!
Насколько я знаю, нет способа сделать это напрямую — вы должны указать каждое интересующее вас поле.
Однако, если вы можете составить список всех полей в индексе, то вы можете довольно легко сгенерировать необходимые агрегаты.
Итак, как создать этот список? Я могу придумать три способа может быть Работа
А) Создайте его, выполнив некоторую предварительную обработку, прежде чем индексировать каждый документ в ElasticSearch.
B) Используйте API GET MAPPING, чтобы увидеть, какие поля были созданы динамическим отображением (http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html)
C) Использовать Scriptted Metric Aggregation и писать сценарии, которые создают недопустимый список полей в документах (http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-scripted-metric-aggregation.html)
Других решений пока нет …