DBAtlas · データベース運用アトラス

search_context_missing_exception: No search context found for id (scroll expired)(id に対応する検索コンテキストがない (scroll 期限切れ))

Elasticsearch

意味

scroll クエリが使用する検索コンテキストがサーバー上にもう存在しない。通常、scroll コンテキストがタイムアウトまたはクリアされた後に、保存した scroll_id で続行しようとした場合に発生する。

原因

scroll に指定した keep-alive が期限切れになった (要求間の間隔が長すぎる)、コンテキストが手動でクリアされた (clear scroll)、またはノードの再起動でコンテキストが失われた。scroll コンテキストはノードのメモリに保持されるため、存続期間は限られている。

対処方法

すべての scroll 要求で十分な keep-alive を渡し (例: scroll=5m)、ページ間の遅延を短くする。最新の Elasticsearch では、深いページングに scroll ではなく search_after + Point in Time (PIT) を使用する。よりスケーラブルで推奨される方法である。終了したらコンテキストを解放し (clear scroll)、メモリを無駄にしない。

DBAtlas で開く →

同じデータベースの他の項目