版本: 6.8-7.4
简而言之,当您在Elasticsearch中尝试基于某个字段折叠结果,但该字段的类型不支持折叠时,就会发生此错误。折叠仅支持某些字段类型,如keyword、integer等。要解决此问题,您可以将字段类型更改为支持的类型,或选择其他字段进行折叠。另一个解决方案是创建一个具有支持类型的新字段,将值从不支持的字段复制到新字段,然后使用新字段进行折叠。
日志上下文 #
Log “unknown type for collapse field `” 的类名是 CollapseBuilder.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入理解的人参考:
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");
}
if (fieldType.hasDocValues() == false) {
throw new SearchContextException(context; "cannot collapse on field `" + field + "` without `doc_values`");





