Parsing_Exception [match]查询不支持[auto_generate_synonyms_phrase_query]

use*_*038 2 java query-builder elasticsearch

下面给出的是我的代码:

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);
Run Code Online (Sandbox Code Playgroud)

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

需要帮助来解决这个问题....尝试match_all查询,它的工作原理.不知道为什么会失败.

我正在使用6.1.1版本的"org.elasticsearch"和"org.elasticsearch.client",而jest版本是5.3.3.不确定是否重要.

提前致谢

use*_*038 15

发现了问题.我使用的是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.0. (2认同)
  • 我使用elasticsearch-rest-high-level-client和elasticsearch并切换到版本6.0.0,我得到了它的工作.版本6.2.3出错了. (2认同)