Перейти к основному содержимому

Асинхронный поиск

Асинхронные поиски позволяют запустить поиск в фоновом режиме.

Это особенно полезно, когда нужно выполнить поиск, время выполнения которого достаточно большое: обычно это агрегации и гистограммы. С помощью асинхронного поиска можно искать и документы, указав поле with_docs в запросе StartAsyncSearch, но все-таки основной способ использования это гистограммы.

Больше информации о публичном API асинхронных поисков можно найти в документации

Данные асинхронных поисков сохраняются на диск на время, указанное в поле retention запроса StartAsyncSearch Минимальное время жизни поиска - 5 минут, маскимальное - 30 дней. Данные поиска будут удалены после того, как выйдет время его жизни.

Если размер данных превышает лимиты, то включается режим чтения: запрещено создавать новые асинхронные поиски, выполнение существующих незавершенных поисков будет заморожено до момента, когда появится свободное место после удаления данных истекших поисков.

Конфигурация

Есть следующие параметры конфигурации:

  • data_dir [string] - определяет директорию, в которой будут лежать данные асинхронных поисков. По умолчанию равен поддиректории в config.storage.data_dir.
  • concurrency [int] - определяет максимальное количество одновременно выполняемых асинхронных поисков.
  • max_total_size [bytes] - определяет максимальный размер данных всех асинхронных поисков на одном сторе.
  • max_size_per_request [bytes] - определяет максимальный размер данных одного поиска на одном сторе.

Параметры конфигурации содержатся внутри объекта async_search в конфигурационном файле.