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

版本: 6.8-7.4

简而言之,当 Elasticsearch 尝试基于一个在索引映射中不存在的字段来折叠结果时,会出现此错误。Elasticsearch 无法识别你尝试用于折叠的字段。要解决此问题,你可以将缺失的字段添加到索引映射中,或者将尝试折叠的字段更改为索引映射中存在的字段。此外,请确保用于折叠的字段不是分析型字段,因为 Elasticsearch 不支持在分析型字段上进行折叠。

日志上下文 #

日志 “no mapping found for " + field + " in order to collapse on” 的类名是 CollapseBuilder.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

throw new SearchContextException(context; "cannot use `collapse` in conjunction with `rescore`");
}  MappedFieldType fieldType = context.getQueryShardContext().fieldMapper(field);
if (fieldType == null) {
    throw new SearchContextException(context; "no mapping found for `" + field + "` in order to collapse on");
}
if (fieldType instanceof KeywordFieldMapper.KeywordFieldType == false &&
    fieldType instanceof NumberFieldMapper.NumberFieldType == false) {
    throw new SearchContextException(context; "unknown type for collapse field `" + field +
        "`; only keywords and numbers are accepted");