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

版本: 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);