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

版本: 6.8-7.15

简而言之,当 Elasticsearch 无法识别分片内的任何损坏时,会发生此错误。这可能是由于误报或对分片状态的错误解释所致。要解决此问题,您可以尝试以下方法:1) 使用集群健康 API 验证分片的健康状态。2) 如果分片未分配,使用集群重新路由 API 手动分配它。3) 如果错误仍然存在,考虑重启 Elasticsearch 节点。始终确保您有数据备份以防止任何丢失。

日志上下文 #

日志 “Shard does not seem to be corrupted at” 的类名是 RemoveCorruptedShardDataCommand.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

////////// Drop corrupted data
 final CleanStatus indexStatus = indexCleanStatus.v1();
 final CleanStatus translogStatus = translogCleanStatus.v1();  if (indexStatus == CleanStatus.CLEAN && translogStatus == CleanStatus.CLEAN) {
 throw new ElasticsearchException("Shard does not seem to be corrupted at " + shardPath.getDataPath()
 + " (pass --" + TRUNCATE_CLEAN_TRANSLOG_FLAG + " to truncate the translog anyway)");
 }  if (indexStatus == CleanStatus.UNRECOVERABLE) {
 if (indexCleanStatus.v2() != null) {