{"error":{"root_cause":[{"type":"search_context_missing_exception","reason":"No search context found for id [2403842]"},{"type":"search_context_missing_exception","reason":"No search context found for id [2391790]"},{"type":"search_context_missing_exception","reason":"No search context found for id [2403839]"}],"type":"search_phase_execution_exception","reason":"all shards failed","phase":"query","grouped":true,"failed_shards":[{"shard":-1,"index":null,"reason":{"type":"search_context_missing_exception","reason":"No search context found for id [2403842]"}},{"shard":-1,"index":null,"reason":{"type":"search_context_missing_exception","reason":"No search context found for id [2391790]"}},{"shard":-1,"index":null,"reason":{"type":"search_context_missing_exception","reason":"No search context found for id [2403839]"}}],"caused_by":{"type":"search_context_missing_exception","reason":"No search context found for id [2403839]"}},"status":404}
这个错误信息来自Elasticsearch,属于搜索相关的问题。具体而言,这是一个search_phase_execution_exception,意指在执行搜索阶段时发生了错误,并且所有分片(shards)的操作都失败了。
具体错误提示中涉及到了三个不同的搜索上下文ID(2403842、2391790和2403839),均无法在Elasticsearch中找到。
- 搜索请求花费的时间过长,超过了Elasticsearch设置的搜索上下文超时时间,导致上下文被清理掉。
- Elasticsearch节点在处理搜索请求的过程中出现了故障,例如重启或网络中断,导致搜索上下文丢失。
- 搜索请求中的某些内部状态管理出现了问题。
为了解决这个问题,可以尝试以下措施:
- 检查并适当增加Elasticsearch中有关搜索上下文超时的设置(如果有相关设置)。
- 确保Elasticsearch集群稳定,不存在节点突然离线或重启的情况。
- 对于复杂的搜索请求,考虑优化查询性能,减少执行时间,或者分批处理数据。
- 清理和重启Elasticsearch节点,以清除可能遗留的无效搜索上下文。
总之,这个错误表明Elasticsearch在处理搜索请求时遇到内部状态管理问题,需要排查底层原因并相应调整配置或优化搜索逻辑。
最终查看es的日志发现是频繁gc了,原因是数据中增加了一个十分大的字段(图片的base64),后续调大内存limit,然后修改gc参数即可
No comments yet.