--- title: "字段 currentFieldName 是元数据字段,无法在内部添加 - 如何解决此 Elasticsearch 异常" date: 2026-02-24 lastmod: 2026-02-24 description: "在 Elasticsearch 中尝试在文档内部添加元数据字段时会出现的错误及解决方法" tags: ["元数据字段", "字段映射", "异常处理"] summary: "版本: 6.8-7.9 简而言之,当您尝试在 Elasticsearch 中的文档内部添加元数据字段时,会发生此错误。元数据字段是系统字段,用于保存有关文档本身的信息,如 “_index”、"_type"、"_id" 等。它们不能被直接添加或修改。要解决此问题,您应该避免为自定义字段使用元数据字段名称。如果需要存储类似的信息,请使用不会与保留的元数据字段名称冲突的不同字段名称。 日志上下文 # 日志 “Field [” + currentFieldName + “] is a metadata field and cannot be added inside” 的类名是 DocumentParser.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: while (token != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); paths = splitAndValidatePath(currentFieldName); if (context.mapperService().isMetadataField(context.path().pathAsText(currentFieldName))) { throw new MapperParsingException("Field [" + currentFieldName + "] is a metadata field and cannot be added inside" + " a document." --- > **版本:** 6.8-7.9 简而言之,当您尝试在 Elasticsearch 中的文档内部添加元数据字段时,会发生此错误。元数据字段是系统字段,用于保存有关文档本身的信息,如 "_index"、"_type"、"_id" 等。它们不能被直接添加或修改。要解决此问题,您应该避免为自定义字段使用元数据字段名称。如果需要存储类似的信息,请使用不会与保留的元数据字段名称冲突的不同字段名称。 日志上下文 ----------- 日志 "Field [" + currentFieldName + "] is a metadata field and cannot be added inside" 的类名是 [DocumentParser.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java while (token != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); paths = splitAndValidatePath(currentFieldName); if (context.mapperService().isMetadataField(context.path().pathAsText(currentFieldName))) { throw new MapperParsingException("Field [" + currentFieldName + "] is a metadata field and cannot be added inside" + " a document. Use the index API request parameters."); } else if (containsDisabledObjectMapper(mapper; paths)) { parser.nextToken(); parser.skipChildren(); } ```