版本: 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. Use the index API request parameters.");
} else if (containsDisabledObjectMapper(mapper; paths)) {
parser.nextToken();
parser.skipChildren();
}





