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

版本: 6.8-6.8

简要来说,当Elasticsearch尝试索引子文档时未提供父文档ID,就会发生此错误。Elasticsearch使用父子关系来关联文档。该错误表明父文档ID在文档内部或外部均缺失。要解决此问题,请确保在索引子文档时提供父文档ID。或者,如果父子关系并非必要,您可以重构数据结构以避免使用父子关系。此外,请检查应用程序代码,确保在创建子文档时正确分配了父文档ID。

日志上下文 #

“No parent id provided; not within the document; and not externally"日志的类名是 ParentFieldMapper.java。 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入了解上下文的人参考:

String parsedParentId = context.doc().get(Defaults.NAME);
if (context.sourceToParse().parent() != null) {
    String parentId = context.sourceToParse().parent();
    if (parsedParentId == null) {
        if (parentId == null) {
            throw new MapperParsingException("No parent id provided; not within the document; and not externally");
        }
        // we did not add it in the parsing phase; add it now
        fields.add(new SortedDocValuesField(fieldType.name(); new BytesRef(parentId)));
    } else if (parentId != null && !parsedParentId.equals(Uid.createUid(parentType; parentId))) {
        throw new MapperParsingException("Parent id mismatch; document value is [" + Uid.createUid(parsedParentId).id()