ElasticSearch java client 查询汇总(二

2019-10-26  本文已影响0人  背麻袋的袋鼠
1 分组聚合
SearchResponse searchResponse = 
        client.prepareSearch("product")
            .setTypes("digital")
            .setQuery(QueryBuilders.matchAllQuery())
            .setSearchType(SearchType.QUERY_THEN_FETCH)
            //根据name分组,并分别计算总价
           .addAggregation(
                 AggregationBuilders.terms("group_age").field("name")
         .subAggregation(AggregationBuilders.sum("sum_price").field("price")))
            .get();
    Terms terms = searchResponse.getAggregations().get("group_age");
    List<Terms.Bucket> buckets = terms.getBuckets();
    for (Terms.Bucket bucket : buckets) {
        Sum sum  = bucket.getAggregations().get("sum_price");
        System.out.println(bucket.getKey() + " " + bucket.getDocCount() + "  " + sum.getValue());
    }
2
上一篇 下一篇

猜你喜欢

热点阅读