有没有行内懂这个新版的API怎么用的?
Springdata Elasticsearch 5.1.0
我这里想要获取查询中的聚合结果(聚合结果肯定是有的),但是我不知道要怎么获得,拿什么类来接收。
翻网上帖子都是以前用 .get 的的方式获取,返回的是respone。
这里新版直接返回 SearchHits 这个类。听说新版本对 返回结果 做了些调整。
有没有人知道!
总之就是我想要获得查询结果中的聚合结果
有没有行内懂这个新版的API怎么用的?
Springdata Elasticsearch 5.1.0
我这里想要获取查询中的聚合结果(聚合结果肯定是有的),但是我不知道要怎么获得,拿什么类来接收。
翻网上帖子都是以前用 .get 的的方式获取,返回的是respone。
这里新版直接返回 SearchHits 这个类。听说新版本对 返回结果 做了些调整。
有没有人知道!
总之就是我想要获得查询结果中的聚合结果
根据您提供的信息,我假设您正在使用 Spring Data Elasticsearch 5.1.0 和 Elasticsearch 5.x 版本。在这个版本中,SearchResponse 对象的 API 已经进行了一些更改,因此您可以通过以下方式获取聚合结果:
java
Copy
SearchHits hits = searchResponse.getHits();
Aggregations aggregations = hits.getAggregations();
在这里,SearchHits 对象代表查询结果中的所有命中文档,而 Aggregations 对象代表查询结果中的所有聚合结果。您可以使用 Aggregations 对象的方法来获取具体的聚合结果。例如,如果您的查询包含一个名为"sum_agg"的汇总聚合,则可以使用以下方式获取聚合结果:
java
Copy
Aggregations aggregations = searchResponse.getHits().getAggregations();
Sum sumAgg = aggregations.get("sum_agg");
double sumValue = sumAgg.getValue();
在这里,Sum 对象表示名为 "sum_agg" 的聚合结果,而 getValue() 方法返回聚合结果的实际值。
请注意,如果您的查询中没有包含任何聚合,则 getAggregations() 方法将返回 null。因此,在使用聚合结果之前,最好先检查 Aggregations 对象是否为 null。
回答整理自chatgpt,如果能解决问题,麻烦采纳一下,谢谢啦!