版本: 7.7-7.15
简而言之,当在 Elasticsearch 上尝试执行 ‘fuzzy’ 查询,而 ‘fuzziness’ 参数未正确设置或被禁用时,会出现此错误。模糊查询允许进行近似搜索,但它们需要特定的配置。要解决此问题,您可以在 Elasticsearch 设置中启用 ‘fuzziness’ 参数,或者如果不必要,修改查询以不使用 ‘fuzzy’。此外,确保您查询的字段支持 ‘fuzzy’ 查询,因为并非所有字段类型都支持。
日志上下文 #
日志 “[fuzzy] queries cannot be executed when ‘” 的类名是 StringFieldType.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用:
@Override
public Query fuzzyQuery(Object value; Fuzziness fuzziness; int prefixLength; int maxExpansions;
boolean transpositions; SearchExecutionContext context) {
if (context.allowExpensiveQueries() == false) {
throw new ElasticsearchException("[fuzzy] queries cannot be executed when '" +
ALLOW_EXPENSIVE_QUERIES.getKey() + "' is set to false.");
}
failIfNotIndexed();
return new FuzzyQuery(new Term(name(); indexedValueForSearch(value));
fuzziness.asDistance(BytesRefs.toString(value)); prefixLength; maxExpansions; transpositions);





