ElasticSearch分组聚合查询

ElasticSearch分组聚合查询

// 根据直播间Id获取数据
NativeSearchQueryBuilder query = new NativeSearchQueryBuilder();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(QueryBuilders.matchQuery("classroomId", dto.getClassroomId()));
boolQueryBuilder.should(QueryBuilders.matchQuery("action", InteractConstant.UpAction.STUDENT_LIVE_START));
boolQueryBuilder.mustNot(QueryBuilders.matchQuery("identity", 0));
query.withQuery(boolQueryBuilder);

// 分组:terms分组名称、field分组字段、size分组数量
// TermsAggregationBuilder builder = AggregationBuilders.terms("action").field("action").size(9999);
// .size(10000).minDocCount(1); 解决桶默认10条数据问题
TermsAggregationBuilder builder = AggregationBuilders.terms("onlineUserCount").field("action").field("appUserId").size(10000).minDocCount(1);
query.addAggregation(builder);

// 数据分页:需求是聚合,数据本身我并不需要,所以只返回一条数据就行
Pageable page

你可能感兴趣的:(#,Java,#,Springboot,java,开发语言,elasticsearch,搜索引擎)