【发布时间】:2020-01-02 21:53:11
【问题描述】:
执行聚合时出现以下错误 错误:术语聚合器订单路径 [_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 -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
请提出其他替代方案
【问题讨论】:
标签: java elasticsearch aws-elasticsearch elasticsearch-jest