es中使用group by分组的实现统计不同bikeId的去重操作

该博客主要介绍在ES(Elasticsearch)中,运用group by分组功能来统计不同bikeId并进行去重操作,涉及信息技术领域的数据处理与统计相关内容。
在spring boot+springdata+es的代码中使用group by实现去重统计:

public int getDailyLeaseBike2(OperateAreasBo operateArea, String type, String type1, Long stime, Long etime, String queryDateField) {
    BoolQueryBuilder boolQueryBuilder = createBoolQueryBuilder(operateArea, stime, etime, queryDateField);
    boolQueryBuilder.must(QueryBuilders.matchQuery("orderStatus", 300));
    SearchQuery searchQuery = new NativeSearchQueryBuilder()
            .withQuery(boolQueryBuilder)
            .withIndices(ES_INDEX_NAME)
            .withTypes(ES_TYPE_NAME)
            .withSourceFilter(new FetchSourceFilter(new String[]{"bikeId", "id"}, null)) //查询只显示这个字段,两个参数分别是要显示的和不显示的
            .addAggregation(AggregationBuilders .terms("agg_data").field("bikeId").size(100000000))
            .build();
    int bikeLeaseCount = elasticsearchTemplate.query(searchQuery, response -> {
        LongTerms modelTerms = (LongTerms)response.getAggregations().asMap().get("agg_data");
        return   modelTerms.getBuckets().size();

    });
    return bikeLeaseCount;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值