--- title: "搜索上下文丢失 (search_context_missing_exception) 错误排查与解决" date: 2026-01-08 lastmod: 2026-01-08 description: "search_context_missing_exception 表示搜索上下文不存在,通常在使用 scroll 时上下文已过期,需要重新执行搜索或使用更长的 scroll 时间。" tags: ["搜索", "滚动查询"] summary: "为什么这个错误发生 # search_context_missing_exception 表示搜索上下文不存在,通常发生在使用 scroll 时上下文已过期。 如何修复 # 1. 重新执行搜索 # POST /<index>/_search?scroll=1m { "size": 100, "query": { "match_all": {} } } 2. 使用更长的 scroll 时间 # POST /<index>/_search?scroll=5m 3. 使用 search_after 代替 scroll # GET /<index>/_search { "size": 100, "query": { "match_all": {} }, "sort": [{"_id": "asc"}], "search_after": [<last_id>] } 预防措施 # 使用合理的 scroll 超时时间 及时清理 scroll 上下文 考虑使用 search_after 或 PIT " --- ## 为什么这个错误发生 `search_context_missing_exception` 表示搜索上下文不存在,通常发生在使用 scroll 时上下文已过期。 ## 如何修复 ### 1. 重新执行搜索 ```bash POST //_search?scroll=1m { "size": 100, "query": { "match_all": {} } } ``` ### 2. 使用更长的 scroll 时间 ```bash POST //_search?scroll=5m ``` ### 3. 使用 search_after 代替 scroll ```bash GET //_search { "size": 100, "query": { "match_all": {} }, "sort": [{"_id": "asc"}], "search_after": [] } ``` ### 预防措施 - 使用合理的 scroll 超时时间 - 及时清理 scroll 上下文 - 考虑使用 search_after 或 PIT