SpringBoot-ElasticSearch聚合(分组)

分组(ES版本7.6.2)

  • 导包 编写配置类,注入RestHighLevelClient对象 步骤在这里

    https://blog.csdn.net/Wsl_Cn/article/details/108559607
    

第一步:指定要查询的索引

//指定要查询按个索引
SearchRequest skuinfo =new SearchRequest("skuinfo");

第二步:创建查询条件对象

//查询条件
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

第三步:创建聚合对象

//设置分组,terms表示分组之后的列名叫什么 field:根据按个字段进行分词
        AggregationBuilder aggregation = AggregationBuilders.terms("brandName").field("brandName");

第四步:将聚合对象放入到条件对象中

sourceBuilder.aggregation(aggregation);

第五步:

//调用查询的方法
        SearchResponse search = restHighLevelClient.search(skuinfo, RequestOptions.DEFAULT);

第六步:通过search对象获取聚合并解析

//得到聚合
Aggregations aggregations = search.getAggregations();
//得到上面设置的分组
Terms  brandName = aggregations.get("brandName");
//创建一个集合用来存放手机品牌
ArrayList<String> collect = new ArrayList<>();
//得到这个聚合的List对象
List<? extends Terms.Bucket> buckets = brandName.getBuckets();
//遍历这个List对象
for (Terms.Bucket bucket : buckets) {
    //得到分组后的每一个值
    String keyAsString = bucket.getKeyAsString();
    //存入到集合中
    collect.add(keyAsString);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值