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

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