эластичный поиск, возвращающий все найденные скопления

Я использую пример приложения из github.com/searchly/searchly-php-sample с сервисом Searchly.

Я пришел к простому, когда я хочу, чтобы результаты поиска возвращали все результаты (продолженные как ‘aggs’) из результатов поиска, а не только те, которые я указал.

В настоящее время код для aggs:

$searchParams['body']['aggs']['resolution']['terms']['field'] = 'resolution';

это возвращает разрешение agg, но я не могу найти способ вернуть все возможные agg из результатов поиска.

Возможно ли это или требуется, чтобы я где-то сохранял агги, а затем просто перечислял их, когда выполняю фактический поисковый запрос?

Спасибо!

0

Решение

Насколько я знаю, нет способа сделать это напрямую — вы должны указать каждое интересующее вас поле.

Однако, если вы можете составить список всех полей в индексе, то вы можете довольно легко сгенерировать необходимые агрегаты.

Итак, как создать этот список? Я могу придумать три способа может быть Работа

А) Создайте его, выполнив некоторую предварительную обработку, прежде чем индексировать каждый документ в 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)

0

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

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

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