[英]ElasticSearch Error: Invalid term-aggregator order path [_key]. Unknown aggregation [_key] while performing aggregation from Java
執行聚合錯誤時出現以下錯誤:無效的術語聚合器順序路徑 [_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 運行時,我成功地獲得了output 。
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 package 的問題還是我做錯了什么。
我正在使用Jest-5.x
和elasticsearch 7.4.2
請建議其他選擇
ElasticSearch 必須 5.X 那么問題就解決了
我有同樣的問題問題是Elasticsearch庫5和6及以上不兼容。 諸如“auto_generate_synonyms_phrase_query”、“_key”和“_doc”之類的問題。 Elasticsearch 版本 7 庫不支持 Elasticsearch 版本 5。您必須使用版本 org.elasticsearch:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.*.*</version>
</dependency>
更改為版本 5:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.*.*</version>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.