Java 使用ElasticsearchTemplate和聚合器获取聚合值
我在提取聚合值时遇到问题 配置为spring和spring引导启动器数据elasticsearch 文档用户在数据库中多次索引 我想返回字段“commentsCnt”的总和Java 使用ElasticsearchTemplate和聚合器获取聚合值,java,spring-boot,elasticsearch,Java,Spring Boot,elasticsearch,我在提取聚合值时遇到问题 配置为spring和spring引导启动器数据elasticsearch 文档用户在数据库中多次索引 我想返回字段“commentsCnt”的总和 @Autowired ElasticsearchTemplate elasticsearchTemplate; SearchQuery searchQuery = new NativeSearchQueryBuilder() .withIndices("comment") .wit
@Autowired
ElasticsearchTemplate elasticsearchTemplate;
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withIndices("comment")
.withQuery(matchQuery("user", userName))
.addAggregation(AggregationBuilders.sum("sum_of_comments").field("commentsCnt"))
.build();
Aggregations aggregations = elasticsearchTemplate.query(searchQuery,
new ResultsExtractor<Aggregations>() {
@Override
public Aggregations extract(SearchResponse response) {
return response.getAggregations();
}
});
Aggregation ret = aggregations.get("sum_of_comments");
@Autowired
ElasticsearchTemplate ElasticsearchTemplate;
SearchQuery SearchQuery=new NativeSearchQueryBuilder()
.带索引(“评论”)
.withQuery(匹配查询(“用户”,用户名))
.addAggregation(AggregationBuilders.sum(“注释之和”).field(“注释之和”))
.build();
聚合聚合=elasticsearchTemplate.query(searchQuery,
新结果提取程序(){
@凌驾
公共聚合摘录(SearchResponse响应){
返回response.getAggregations();
}
});
Aggregation ret=aggregations.get(“注释的总和”);
如何提取价值?也许有更好的方法
for (Aggregation aggs : aggregations) {
Sum sum = (Sum) aggs;
double sumValue = sum.getValue();
System.out.println("sumValue=" + sumValue);
}