DBAtlas · Атлас эксплуатации баз данных

search_context_missing_exception: No search context found for id (scroll expired)

Elasticsearch

Что это значит?

Контекст поиска, используемый scroll-запросом, больше не существует на сервере. Обычно появляется при продолжении с сохранённым scroll_id после того, как контекст scroll истёк по тайм-ауту или был очищен.

Почему возникает?

Истёк keep-alive, указанный для scroll (слишком длинная пауза между запросами); контекст очищен вручную (clear scroll); либо контекст потерян при перезапуске узла. Контексты scroll хранятся в памяти узла, поэтому их время жизни ограничено.

Как исправить

Передавайте достаточный keep-alive в каждом запросе scroll (например, scroll=5m) и сокращайте задержку между страницами. В современном Elasticsearch для глубокой пагинации используйте search_after + Point in Time (PIT) вместо scroll; это более масштабируемый и рекомендуемый метод. Освобождайте контексты по завершении (clear scroll), чтобы не расходовать память впустую.

Открыть в DBAtlas →

Ещё по этой СУБД