下面是我的代码:
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",”原因:“match query不支持auto_generate_synonyms_phrase_query”、"line":1、"col":213}、“type”:“parsing_exception”、“parsing_exception”、“parsing_exception”:“match query不支持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。不确定这是否重要。
提前感谢
发布于 2018-01-10 06:32:24
发现问题了。我使用的是6.1.1API版本,但我的弹性节点位于5.x上,它不支持auto_generate_synonyms_phrase_query参数。
我将"org.elasticsearch“和"org.elasticsearch.client”移到5.6.0版本,这为我修复了它。有一些方法,如QueryBuilders.matchQuery(.)在6.1.1客户机中添加新参数,从而破坏向后兼容性。我正在执行查询的elasticsearch节点位于5.x上,因此它们不理解这个新参数。
https://stackoverflow.com/questions/48181093
复制相似问题