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

版本: 6.8-8.9

简而言之,当在 Elasticsearch 中使用 constant_score 查询但未提供 filter 元素时,会出现此错误。constant_score 查询用于包装另一个查询并减少评分的影响。要解决此问题,您需要在 constant_score 查询中包含一个 filter 元素。该过滤器可以是任何有效的 Elasticsearch 查询。如果您不想过滤结果,可以使用 match_all 查询作为过滤器。

日志上下文 #

日志 “[constant_score] requires a ‘filter’ element” 的类名是 ConstantScoreQueryBuilder.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

} else {
 throw new ParsingException(parser.getTokenLocation(); "unexpected token [" + token + "]");
 }
 }
 if (queryFound == false) {
 throw new ParsingException(parser.getTokenLocation(); "[constant_score] requires a 'filter' element");
 }  ConstantScoreQueryBuilder constantScoreBuilder = new ConstantScoreQueryBuilder(query);
 constantScoreBuilder.boost(boost);
 constantScoreBuilder.queryName(queryName);