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





