java - ElasticSearch 错误:术语聚合器订单路径 [_key] 无效。从 Java 执行聚合时未知聚合 [_key]
问题描述
执行聚合时出现以下错误错误:无效的术语聚合器订单路径 [_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
请提出其他替代方案
解决方案
ElasticSearch 必须 5.X 那么问题就解决了
推荐阅读
- java - Java 中的 Winkler 表
- racket - 为什么在 case 表达式中忽略单引号?
- dmz - pfSense DMZ 家庭网络实验室
- hibernate - Hibernate 仅获取第一行,仅在 .hbm.xml 中使用?
- symfony - 我怎样才能离开一个带有教义(Symfony)的桌子/实体?
- python - Python,使用 Selenium 如何在页面中添加 JS 函数?
- angular - 从服务器加载 Angular 2+ 组件
- git - OpenSSL SSL_connect:SSL_ERROR_SYSCALL 连接到 gitlab.com:443
- android - 禁用 PRAGMA recursive_triggers
- android - 如何检测用户是否选择了飞行模式面板并随时显示其设置?