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), чтобы не расходовать память впустую.
Ещё по этой СУБД
- invalid_index_name_exceptioninvalid_index_name_exception
- resource_not_found_exceptionresource_not_found_exception
- process_cluster_event_timeout_exceptionprocess_cluster_event_timeout_exception
- aliases_not_found_exceptionAliases missing
- snapshot_missing_exceptionSnapshot is missing
- index_template_missing_exceptionIndex template is missing
- settings_exceptionInvalid settings