版本: 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) {





