版本: 8.3-8.9
简而言之,当 Elasticsearch 中的正则表达式查询使用的正则表达式存在问题时,会发生此错误。问题可能是由于无效或不支持的正则表达式模式导致的。要解决此问题,请确保正则表达式模式有效且受 Elasticsearch 支持。另外,检查您查询的字段是否为 ‘text’ 或 ‘keyword’ 类型。如果字段不是这些类型,请考虑更改其映射或使用不同的查询。最后,确保正则表达式不超过 Elasticsearch 中设置的 max_determinized_states 限制。
日志上下文 #
日志 “regexp query” 类名是 PlaceHolderFieldMapper.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人使用:
int matchFlags;
int maxDeterminizedStates;
@Nullable MultiTermQuery.RewriteMethod method;
SearchExecutionContext context
) {
throw new QueryShardException(context; fail("regexp query"));
} @Override
public Query phraseQuery(TokenStream stream; int slop; boolean enablePositionIncrements; SearchExecutionContext context) {
throw new QueryShardException(context; fail("phrase query"));





