栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

ES Java分组查询,类似于MySQL的group by

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ES Java分组查询,类似于MySQL的group by

public Map getCountGroup(String index,String startTime,String endTime,String groupFiled) throws IOException {
        Map resultMap = new HashMap(16);
        SearchRequest searchRequest = new SearchRequest(index);
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
        SearchSourceBuilder builder = new SearchSourceBuilder();

        //等于条件
        boolQueryBuilder.must(QueryBuilders.termsQuery("字段" + ".keyword", 值));

        //不等于条件
       boolQueryBuilder.mustNot(QueryBuilders.termsQuery("字段" + ".keyword", 值));

        //时间范围查询
        if (StringUtils.isNotBlank(startTime)) {
               boolQueryBuilder.must(QueryBuilders.rangeQuery("startTime"+".keyword").from(startTime));
        }
        if (StringUtils.isNotBlank(endTime)) {
            boolQueryBuilder.must(QueryBuilders.rangeQuery("startTime"+".keyword").to(endTime));
        }

        builder.query(boolQueryBuilder);
        //分组
        AggregationBuilder aggregationBuilder = AggregationBuilders.terms("count")
                .field(groupFiled + ".keyword");
        builder.aggregation(aggregationBuilder);
        searchRequest.source(builder);

        SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
        Terms terms = response.getAggregations().get("count");
        for (Terms.Bucket bucket : terms.getBuckets()) {
            resultMap.put(bucket.getKey().toString(), bucket.getDocCount());
        }
        return resultMap;
    }

分组相关语句为:

        AggregationBuilder aggregationBuilder = AggregationBuilders.terms("count")
                .field("分组字段"+ ".keyword");
        builder.aggregation(aggregationBuilder);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/897175.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号