目录
一、TopHitsAggregation
二、TermsAggregation
三、CardinalityAggregation
四、DateHistogramAggregation
五、SumAggregation
六、AvgAggregation
七、MaxAggregation
八、MinAggregation
SpringBoot使用ES的Aggregation聚合查询总结
public TopHitsAggregationBuilder topHitsAggregationBuilder(String topHitsName, Integer size) {
return AggregationBuilders.topHits(topHitsName).sort("title", SortOrder.DESC).size(size);
}
public TermsAggregationBuilder termsAggregationBuilder(String termsAggName, String fieldName, Integer size) {
return AggregationBuilders.terms(termsAggName).field(fieldName).size(size).executionHint("map").collectMode(
Aggregator.SubAggCollectionMode.BREADTH_FIRST);
}
public CardinalityAggregationBuilder cardinalityAggregationBuilder(String cardinalityAggName, String fieldName) {
return AggregationBuilders.cardinality(cardinalityAggName).field(fieldName);
}
public DateHistogramAggregationBuilder dateHistogramAggregationBuilder(String dateHistogramName,
String dateHistogramFieldName, DateHistogramInterval interval, Long startTime, Long endTime) {
return AggregationBuilders.dateHistogram(dateHistogramName).fixedInterval(interval)
.field(dateHistogramFieldName).minDocCount(0).extendedBounds(new LongBounds(startTime, endTime))
.timeZone(ZoneId.of("Asia/Shanghai"));
}
public DateHistogramAggregationBuilder dateHistogramAggregationFormatBuilder(String dateHistogramName,
String dateHistogramFieldName, DateHistogramInterval interval, Long startTime, Long endTime) {
return AggregationBuilders.dateHistogram(dateHistogramName).fixedInterval(interval)
.field(dateHistogramFieldName).format("yyyy-MM-dd HH:mm").minDocCount(0)
.extendedBounds(new LongBounds(startTime, endTime)).timeZone(ZoneId.of("Asia/Shanghai"));
}
public SumAggregationBuilder sumAggregationBuilder(String sumAggName, String fieldName) {
return AggregationBuilders.sum(sumAggName).field(fieldName);
}
public AvgAggregationBuilder avgAggregationBuilder(String avgAggName, String fieldName) {
return AggregationBuilders.avg(avgAggName).field(fieldName);
}
public MaxAggregationBuilder maxAggregationBuilder(String maxAggName, String fieldName) {
return AggregationBuilders.max(maxAggName).field(fieldName);
}
public MinAggregationBuilder minAggregationBuilder(String maxAggName, String fieldName) {
return AggregationBuilders.min(maxAggName).field(fieldName);
}