--- title: "获取 ID 失败 - 如何解决此 Elasticsearch 异常" date: 2026-02-06 lastmod: 2026-02-06 description: "当 Elasticsearch 无法检索文档时会出现此错误,通常是因为指定的 ID 在索引中不存在。" tags: ["文档获取", "ID 错误", "索引操作", "数据查询"] summary: "版本: 8-8.9 简而言之,当 Elasticsearch 无法检索文档时会出现此错误,因为指定的 ID 在索引中不存在。这可能是由于 ID 输入错误、文档已被删除,或者在最近更新后索引未刷新。要解决此问题,您可以验证 ID、确保文档存在,或刷新索引。如果问题仍然存在,请检查 Elasticsearch 日志以获取更详细的错误信息。 日志上下文 # 日志 “Failed to get id [” + id + “]” 的类名是 ShardGetService.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: StoredFieldLoader storedFieldLoader = buildStoredFieldLoader(storedFields; fetchSourceContext; loader); LeafStoredFieldLoader leafStoredFieldLoader = storedFieldLoader.getLoader(docIdAndVersion.reader.getContext(); null); try { leafStoredFieldLoader.advanceTo(docIdAndVersion.docId); } catch (IOException e) { throw new ElasticsearchException("Failed to get id [" + id + "]"; e); } // put stored fields into result objects if (leafStoredFieldLoader." --- > **版本:** 8-8.9 简而言之,当 Elasticsearch 无法检索文档时会出现此错误,因为指定的 ID 在索引中不存在。这可能是由于 ID 输入错误、文档已被删除,或者在最近更新后索引未刷新。要解决此问题,您可以验证 ID、确保文档存在,或刷新索引。如果问题仍然存在,请检查 Elasticsearch 日志以获取更详细的错误信息。 日志上下文 ----------- 日志 "Failed to get id [" + id + "]" 的类名是 [ShardGetService.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java StoredFieldLoader storedFieldLoader = buildStoredFieldLoader(storedFields; fetchSourceContext; loader); LeafStoredFieldLoader leafStoredFieldLoader = storedFieldLoader.getLoader(docIdAndVersion.reader.getContext(); null); try { leafStoredFieldLoader.advanceTo(docIdAndVersion.docId); } catch (IOException e) { throw new ElasticsearchException("Failed to get id [" + id + "]"; e); } // put stored fields into result objects if (leafStoredFieldLoader.storedFields().isEmpty() == false) { Setneeded = new HashSet<>(); ```