SearchRequest searchRequest = new SearchRequest("order");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
boolQueryBuilder.must(QueryBuilders.matchQuery("userCode", userCode));
boolQueryBuilder.must(QueryBuilders.rangeQuery("createTime")
.gte(startTime).lte(endTime));
searchSourceBuilder.query(boolQueryBuilder);
searchSourceBuilder.size(0);
CardinalityAggregationBuilder groupByCityName = AggregationBuilders.cardinality("group_by_cityName").field("cityName");
searchSourceBuilder.aggregation(groupByCityName);
searchRequest.source(searchSourceBuilder);
try {
SearchResponse search = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
Aggregations aggregations = search.getAggregations();
if (null != aggregations) {
ParsedCardinality cityNameAggregation = aggregations.get("group_by_cityName");
return cityNameAggregation.getValue();
}
return 0;
} catch (IOException e) {
log.error("es search error:{}", e);
}
es 聚合查询,cardinality 去重
于 2022-05-12 19:27:55 首次发布