📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

为什么这个错误发生 #

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