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

版本: 6.8-8.9

简而言之,当 Elasticsearch 中的字段缺少分析器时会出现此错误。分析器至关重要,因为它用于将数据转换为可搜索的词项。要解决此问题,您可以通过更新索引的映射为字段设置分析器。或者,您可以在查询时指定分析器。如果您想为所有字段使用相同的分析器,可以在索引设置中设置默认分析器。

日志上下文 #

日志 “Analyzer must be set for field [” + name + “] but wasn’t.” 的类名是 TokenCountFieldMapper.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

}  @Override
 public TokenCountFieldMapper build(MapperBuilderContext context) {
 if (analyzer.getValue() == null) {
 throw new MapperParsingException("Analyzer must be set for field [" + name + "] but wasn't.");
 }
 MappedFieldType ft = new TokenCountFieldType(
 context.buildFullName(name);
 index.getValue();
 store.getValue();