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上,因此他们不理解这个新参数.