目录
SpringBoot使用ES的Aggregation聚合查询总结
一、TopHitsAggregation
public TopHitsAggregationBuilder topHitsAggregationBuilder(String topHitsName, Integer size) {
return AggregationBuilders.topHits(topHitsName).sort("title", SortOrder.DESC).size(size);
}
二、TermsAggregation
public TermsAggregationBuilder termsAggregationBuilder(String termsAggName, String fieldName, Integer size) {
return AggregationBuilders.terms(termsAggName).field(fieldName).size(size).executionHint("map");
}
三、CardinalityAggregation
public CardinalityAggregationBuilder cardinalityAggregationBuilder(String cardinalityAggName, String fieldName) {
return AggregationBuilders.cardinality(cardinalityAggName).field(fieldName);
}
四、DateHistogramAggregation
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"));
}
五、SumAggregation
public SumAggregationBuilder sumAggregationBuilder(String sumAggName, String fieldName) {
return AggregationBuilders.sum(sumAggName).field(fieldName);
}
六、AvgAggregation
public AvgAggregationBuilder avgAggregationBuilder(String avgAggName, String fieldName) {
return AggregationBuilders.avg(avgAggName).field(fieldName);
}
七、MaxAggregation
public MaxAggregationBuilder maxAggregationBuilder(String maxAggName, String fieldName) {
return AggregationBuilders.max(maxAggName).field(fieldName);
}
八、MinAggregation
public MinAggregationBuilder minAggregationBuilder(String maxAggName, String fieldName) {
return AggregationBuilders.min(maxAggName).field(fieldName);
}