java - 使用 ElasticsearchTemplate 和聚合器获取聚合值

标签 java spring-boot elasticsearch

我在提取聚合值时遇到问题。

配置是 spring 和 spring-boot-starter-data-elasticsearch。

文档用户在数据库中多次索引。

我想返回字段“commentsCnt”的总和

@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");

如何提取值?也许有更好的方法?

最佳答案

    for (Aggregation aggs : aggregations) {

         Sum sum = (Sum) aggs;
         double sumValue = sum.getValue();
          System.out.println("sumValue=" + sumValue);
  }

关于java - 使用 ElasticsearchTemplate 和聚合器获取聚合值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51265208/

相关文章:

elasticsearch - AWS Elasticsearch : Signing requests made by elasticsearch-rest-high-level-client

ruby-on-rails - Rails、Tire 和 CircleCI:在创建 Tire-Searchable 对象时运行 rspec 测试时出现 Errno::ECONNREFUSED 错误

javascript - 图像未插入到 Spring Boot 中

java - 在不区分大小写的情况下检查 ArrayList 是否包含某个字符串

java - Play 框架占用磁盘空间

java - 如何根据请求类型使用Spring Security管理 session ?

java - 如果发生异常,则记录http请求正文

apache-spark - Spark 无法检测 ES 版本 - 如果网络/Elasticsearch 集群不可访问,通常会发生这种情况

java - 在 pom.xml 中获取错误

java - Spring boot 和 Quartz - 作业未立即执行