Как работает глобальная агрегация эластичного поиска? - PullRequest
0 голосов
/ 15 февраля 2019

Итак, вот сценарий:

Я выполняю эластичный поисковый запрос.Для простоты предположим, что я фильтрую по полям title и, по выбору, по полям category_id (запрос запроса) и price (запрос диапазона).

Я отфильтровал глобальную агрегацию в поле category_id (он фильтруется по тем же запросам, что и основной, за исключением запроса category_id term).

Я делаю так, поэтому после фильтрации основного запроса с помощью category_id я все еще вижу полное агрегирование всех других категорий.

Теперь проблема в том, что после того, как ядобавил это глобальное агрегирование общее время запроса в основном удвоилось.Значит ли это, что в фоновом режимеasticsearch, по сути, запускает один и тот же набор запросов дважды (1-й раз для создания набора фактических документов, соответствующих запросу, и 2-й раз для повторного сканирования всего индекса для построения агрегации)

Если дело обстоит так ... есть ли вообще какой-либо способ достичь желаемого результата без использования глобальной агрегации?Может быть, каким-то образом можно создать простую агрегацию контекста запроса, которая фильтруется по всем тем же предложениям, кроме одного?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...