执行聚合错误时,我收到以下错误:无效的术语聚合器顺序路径[_key]。从Java执行聚合时未知的聚合[_key]
代码:
public static void main(String[] args){
JestClient jestClient = getJestClient();
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.size(100);
searchSourceBuilder.aggregation(AggregationBuilders.terms("products").field("myField.keyword").
valueType(ValueType.STRING).size(100));
SearchRequest searchRequest = new SearchRequest();
searchRequest.source(searchSourceBuilder);
Search searchQuery = new Search.Builder(searchSourceBuilder.toString()).
setParameter(Parameters.SCROLL,"5m").setSearchType(SearchType.DFS_QUERY_THEN_FETCH).build();
JestResult hits = jestClient.execute(searchQuery);
System.out.println(hits.getJsonObject);
}
public static void getJestClient(){
JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(
new HttpClientConfig.Builder(hostname)
.multiThreaded(true)
.readTimeout(30000)
.build());
return factory.getObject()
}
错误:
{"error":{"root_cause":[{"type":"aggregation_execution_exception","reason":"Invalid term-
aggregator order path [_key]. Unknown aggregation [ .
_key]"}],"type":"search_phase_execution_exception","reason":"all shards
failed","phase":"dfs_query","grouped":true,"failed_shards":
[{"shard":0,"index":".kibana","node":"RwVYV0S-SVmiqfMuihkcHA","reason":
{"type":"aggregation_execution_exception","reason":"Invalid term-aggregator order path
[_key]. Unknown aggregation [_key]"}}]},"status":500}
- 当我从cURL运行时,我成功地获得了输出。*
curl:
curl -v -X GET "https://hostname/_search?pretty" -H 'Content-Type: application/json' -d
'{"aggs" : { "products" : {
"terms" : {"field" : "myField.keyword","size" : 5}
}}}'
不确定是什么错误,是ElasticSearch Java包的问题,还是我做错了什么。
我正在使用Jest-5.x
和elasticsearch 7.4.2
请推荐其他替代方案
2条答案
按热度按时间cbwuti441#
ElasticSearch必须使用5.X才能解决问题
ecfsfe2w2#
我也有同样的问题,那就是Elasticearch库5和6及以上版本的不兼容。‘AUTO_GENERATE_SYONERMS_PASSION_QUERY’、‘_KEY’和‘_DOC’等问题。ElasticSearch版本7库不支持ElasticSearch版本5。您必须将其版本设置为org.elasticearch:
更改为版本5: