📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 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();
    }