版本: 7.16-8.9
简而言之,当 Elasticsearch 在 SimpleQueryStringBuilder 中无法找到指定的分析器时会发生此错误。分析器用于将文本分解为标记以进行索引。该错误表明查询中指定的分析器不存在。要解决此问题,你可以使用指定名称创建自定义分析器,或使用 Elasticsearch 提供的内置分析器之一。确保分析器名称拼写正确,并且区分大小写。如果你使用的是自定义分析器,请确保它已正确定义并加载到 Elasticsearch 中。
日志上下文 #
日志"[" + SimpleQueryStringBuilder.NAME + “] analyzer [” + analyzer + “] not found"类名是 SimpleQueryStringBuilder.java。我们从 Elasticsearch 源代码中提取了以下内容,以供那些寻求深入上下文的人参考:
if (analyzer == null) {
sqp = new SimpleQueryStringQueryParser(resolvedFieldsAndWeights; flags; newSettings; context);
} else {
Analyzer luceneAnalyzer = context.getIndexAnalyzers().get(analyzer);
if (luceneAnalyzer == null) {
throw new QueryShardException(context; "[" + SimpleQueryStringBuilder.NAME + "] analyzer [" + analyzer + "] not found");
}
sqp = new SimpleQueryStringQueryParser(luceneAnalyzer; resolvedFieldsAndWeights; flags; newSettings; context);
}
sqp.setDefaultOperator(defaultOperator.toBooleanClauseOccur());
Query query = sqp.parse(queryText);





