【问题标题】:Parsing_Exception [match] query does not support [auto_generate_synonyms_phrase_query]Parsing_Exception [match] 查询不支持 [auto_generate_synonyms_phrase_query]
【发布时间】:2018-01-10 05:52:54
【问题描述】:

下面是我的代码:

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchQuery("field", "value to search"));
Search search = new Search.Builder(searchSourceBuilder.toString()).build();
JestResult result = jestc.execute(search);

运行此代码时出现异常: {"error":{"root_cause":[{"type":"parsing_exception","re​​ason":"[match] 查询不支持 [auto_generate_synonyms_phrase_query]","line":1,"col":213}] ,"type":"parsing_exception","re​​ason":"[match] 查询不支持 [auto_generate_synonyms_phrase_query]","line":1,"col":213},"status":400}

需要帮助来解决此问题.... 尝试了 match_all 查询,它起作用了。不知道为什么会失败。

我正在使用 6.1.1 版本的“org.elasticsearch”和“org.elasticsearch.client”,开玩笑的版本是 5.3.3。不确定是否重要。

提前致谢

【问题讨论】:

    标签: java elasticsearch query-builder


    【解决方案1】:

    发现问题。我使用的是 6.1.1 API 版本,但我的弹性节点在 5.x 上,不支持 auto_generate_synonyms_phrase_query 参数。

    我将“org.elasticsearch”和“org.elasticsearch.client”移至版本 5.6.0,这为我修复了它。 6.1.1 客户端中的某些方法(例如 QueryBuilders.matchQuery(...))添加了新参数,因此破坏了向后兼容性。我正在执行查询的 elasticsearch 节点位于 5.x 上,因此它们无法理解这个新参数。

    【讨论】:

    • 我在运行 Elasticsearch 6.0 版(由 AWS Elasticsearch Service 提供)时遇到了这个问题。我认为运行最新的客户端 (6.1.2) 可以,但事实证明我实际需要使用客户端版本6.0.0。
    • 嗨,我的 java 客户端和 AWS elasticsearch 版本是一致的,即 6.0.1,但我仍然遇到这个错误。你有没有做过什么(也许是破解)来修复这个?
    • @Orvyl 我可以确认切换到 6.0.1 高级 Java 客户端可以解决问题。
    • 我将 elasticsearch-rest-high-level-client 与 elasticsearch 一起使用,并切换到 6.0.0 版本,并且可以正常工作。 6.2.3 版本出错。
    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2021-12-23
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 2021-11-04
    相关资源
    最近更新 更多