Получить последние счета заказов по номеру телефона в последних 2000 документов в Elasticsearch - PullRequest
0 голосов
/ 31 октября 2019

В нашем эластичном поиске хранятся заказные документы. В каждом документе есть поле, позволяющее указать номер телефона.

мы хотим узнать количество телефонных номеров (сколько раз заказ был получен с номера телефона).

Каждый (я повторяю каждый) номер телефона сделал 10 миллионов + заказов по всем нашим данным. Таким образом, агрегирование по всем данным занимает слишком много времени. мы пришли к выводу, что ограничение должно быть установлено, потому что данных слишком много. мы добавили в запрос terminate_after и время отклика улучшилось до желаемого предела, но затем появилась новая проблема. Если мы собираемся установить ограничение, мы хотим ограничить результаты самых последних 2000 документов вместо любых 2000 документов.

Итак, в двух словах, мы хотим узнать количество заказов по номеру телефона в последних 2000 документах.

Как этого добиться вasticsearch.

то, что мы пробовали до сих пор:

  • сортировка сегментов (применяется только после того, как сегменты уже созданы)
  • свойство terminate_after в запросе (это не учитывает то, что мы хотим считать в последних 2000 совпадениях)
  • Агрегатор TopNhits (также работает после подсчета хитов)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...