--- title: "索引没有主分片——如何解决此 Elasticsearch 异常" date: 2026-03-10 lastmod: 2026-03-10 description: "Elasticsearch 无法为索引分配主分片时会出现此错误,这会对索引和搜索数据造成严重影响" tags: ["索引", "主分片", "分片分配", "异常处理"] summary: " 版本: 8.6-8.9 简要来说,当 Elasticsearch 无法为索引分配主分片时会出现此错误,这对于索引和搜索数据至关重要。这可能是由于磁盘空间不足、网络问题或配置不正确造成的。要解决此问题,请确保有足够的磁盘空间并且集群的网络连接正常。检查分片分配设置,必要时进行调整。此外,可以考虑增加主分片的数量,或者使用 reroute API 手动分配它们。最后,确保 Elasticsearch 版本是最新的,以避免可能导致此问题的错误。 日志上下文 # 日志 “Indices don’t have primary shards” 的类名是 SnapshotsService.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解的人参考: if (entry.getValue().state() == ShardState.MISSING) { missing.add(entry.getKey().getIndex().getName()); } } if (missing.isEmpty() == false) { throw new SnapshotException(snapshot; "Indices don't have primary shards " + missing); } } final var newEntry = SnapshotsInProgress.startedEntry( snapshot; request.includeGlobalState(); " --- > **版本:** 8.6-8.9 简要来说,当 Elasticsearch 无法为索引分配主分片时会出现此错误,这对于索引和搜索数据至关重要。这可能是由于磁盘空间不足、网络问题或配置不正确造成的。要解决此问题,请确保有足够的磁盘空间并且集群的网络连接正常。检查分片分配设置,必要时进行调整。此外,可以考虑增加主分片的数量,或者使用 reroute API 手动分配它们。最后,确保 Elasticsearch 版本是最新的,以避免可能导致此问题的错误。 日志上下文 ----------- 日志 "Indices don't have primary shards" 的类名是 [SnapshotsService.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解的人参考: ```java if (entry.getValue().state() == ShardState.MISSING) { missing.add(entry.getKey().getIndex().getName()); } } if (missing.isEmpty() == false) { throw new SnapshotException(snapshot; "Indices don't have primary shards " + missing); } } final var newEntry = SnapshotsInProgress.startedEntry( snapshot; request.includeGlobalState(); ```