mirror of
https://gitee.com/dromara/easy-es.git
synced 2025-12-07 09:39:04 +08:00
!34 #I5MOKM 添加聚合功能(terms,avg,min,max,sum)支持多参数传参,删除returnName参数
Merge pull request !34 from zhengjianjian/feature
This commit is contained in:
commit
db23fad6a2
@ -16,7 +16,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.BiPredicate;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* 链式
|
||||
@ -220,32 +219,32 @@ public abstract class AbstractChainWrapper<T, R, Children extends AbstractChainW
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children termsAggregation(boolean condition, boolean pipeline, String returnName, R column) {
|
||||
getWrapper().termsAggregation(condition, pipeline, returnName, column);
|
||||
public Children termsAggregation(boolean condition, boolean pipeline, R... column) {
|
||||
getWrapper().termsAggregation(condition, pipeline, column);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children avg(boolean condition, boolean pipeline, String returnName, R column) {
|
||||
getWrapper().avg(condition, pipeline, returnName, column);
|
||||
public Children avg(boolean condition, boolean pipeline, R... columns) {
|
||||
getWrapper().avg(condition, pipeline, columns);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children min(boolean condition, boolean pipeline, String returnName, R column) {
|
||||
getWrapper().min(condition, pipeline, returnName, column);
|
||||
public Children min(boolean condition, boolean pipeline, R... columns) {
|
||||
getWrapper().min(condition, pipeline, columns);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children max(boolean condition, boolean pipeline, String returnName, R column) {
|
||||
getWrapper().max(condition, pipeline, returnName, column);
|
||||
public Children max(boolean condition, boolean pipeline, R... columns) {
|
||||
getWrapper().max(condition, pipeline, columns);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children sum(boolean condition, boolean pipeline, String returnName, R column) {
|
||||
getWrapper().sum(condition, pipeline, returnName, column);
|
||||
public Children sum(boolean condition, boolean pipeline, R... columns) {
|
||||
getWrapper().sum(condition, pipeline, columns);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@ -589,32 +588,32 @@ public abstract class AbstractChainWrapper<T, R, Children extends AbstractChainW
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children termsAggregation(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
getWrapper().termsAggregation(condition, enablePipeline, returnName, column);
|
||||
public Children termsAggregation(boolean condition, boolean enablePipeline, String... column) {
|
||||
getWrapper().termsAggregation(condition, enablePipeline, column);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children avg(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
getWrapper().avg(condition, enablePipeline, returnName, column);
|
||||
public Children avg(boolean condition, boolean enablePipeline, String... columns) {
|
||||
getWrapper().avg(condition, enablePipeline, columns);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children min(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
getWrapper().min(condition, enablePipeline, returnName, column);
|
||||
public Children min(boolean condition, boolean enablePipeline, String... columns) {
|
||||
getWrapper().min(condition, enablePipeline, columns);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children max(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
getWrapper().max(condition, enablePipeline, returnName, column);
|
||||
public Children max(boolean condition, boolean enablePipeline, String... columns) {
|
||||
getWrapper().max(condition, enablePipeline, columns);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children sum(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
getWrapper().sum(condition, enablePipeline, returnName, column);
|
||||
public Children sum(boolean condition, boolean enablePipeline, String... columns) {
|
||||
getWrapper().sum(condition, enablePipeline, columns);
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
|
||||
@ -420,33 +420,53 @@ public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T,
|
||||
if (ArrayUtils.isEmpty(columns)) {
|
||||
return typedThis;
|
||||
}
|
||||
Arrays.stream(columns).forEach(column -> doIt(condition, enablePipeline, AggregationTypeEnum.TERMS, column, column));
|
||||
Arrays.stream(columns).forEach(column -> doIt(condition, enablePipeline, AggregationTypeEnum.TERMS, column));
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children termsAggregation(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
return doIt(condition, enablePipeline, AggregationTypeEnum.TERMS, returnName, column);
|
||||
public Children termsAggregation(boolean condition, boolean enablePipeline, String... columns) {
|
||||
if (ArrayUtils.isEmpty(columns)) {
|
||||
return typedThis;
|
||||
}
|
||||
Arrays.stream(columns).forEach(column -> doIt(condition, enablePipeline, AggregationTypeEnum.TERMS, column));
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children avg(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
return doIt(condition, enablePipeline, AggregationTypeEnum.AVG, returnName, column);
|
||||
public Children avg(boolean condition, boolean enablePipeline, String... columns) {
|
||||
if (ArrayUtils.isEmpty(columns)) {
|
||||
return typedThis;
|
||||
}
|
||||
Arrays.stream(columns).forEach(column -> doIt(condition, enablePipeline, AggregationTypeEnum.AVG, column));
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children min(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
return doIt(condition, enablePipeline, AggregationTypeEnum.MIN, returnName, column);
|
||||
public Children min(boolean condition, boolean enablePipeline, String... columns) {
|
||||
if (ArrayUtils.isEmpty(columns)) {
|
||||
return typedThis;
|
||||
}
|
||||
Arrays.stream(columns).forEach(column -> doIt(condition, enablePipeline, AggregationTypeEnum.MIN, column));
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children max(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
return doIt(condition, enablePipeline, AggregationTypeEnum.MAX, returnName, column);
|
||||
public Children max(boolean condition, boolean enablePipeline, String... columns) {
|
||||
if (ArrayUtils.isEmpty(columns)) {
|
||||
return typedThis;
|
||||
}
|
||||
Arrays.stream(columns).forEach(column -> doIt(condition, enablePipeline, AggregationTypeEnum.MAX, column));
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Children sum(boolean condition, boolean enablePipeline, String returnName, String column) {
|
||||
return doIt(condition, enablePipeline, AggregationTypeEnum.SUM, returnName, column);
|
||||
public Children sum(boolean condition, boolean enablePipeline, String... columns) {
|
||||
if (ArrayUtils.isEmpty(columns)) {
|
||||
return typedThis;
|
||||
}
|
||||
Arrays.stream(columns).forEach(column -> doIt(condition, enablePipeline, AggregationTypeEnum.SUM, column));
|
||||
return typedThis;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -531,15 +551,14 @@ public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T,
|
||||
* @param condition 条件
|
||||
* @param enablePipeline 是否管道聚合
|
||||
* @param aggregationTypeEnum 聚合类型
|
||||
* @param returnName 返回的聚合字段名称
|
||||
* @param column 列
|
||||
* @return 泛型
|
||||
*/
|
||||
private Children doIt(boolean condition, boolean enablePipeline, AggregationTypeEnum aggregationTypeEnum, String returnName, String column) {
|
||||
private Children doIt(boolean condition, boolean enablePipeline, AggregationTypeEnum aggregationTypeEnum, String column) {
|
||||
if (condition) {
|
||||
AggregationParam aggregationParam = new AggregationParam();
|
||||
aggregationParam.setEnablePipeline(enablePipeline);
|
||||
aggregationParam.setName(returnName);
|
||||
aggregationParam.setName(column);
|
||||
aggregationParam.setField(column);
|
||||
aggregationParam.setAggregationType(aggregationTypeEnum);
|
||||
aggregationParamList.add(aggregationParam);
|
||||
|
||||
@ -218,7 +218,7 @@ public interface Func<Children, R> extends Serializable {
|
||||
}
|
||||
|
||||
default Children orderByDistanceDesc(String column, double lat, double lon) {
|
||||
return orderByDistanceDesc(true,column, DistanceUnit.KILOMETERS, GeoDistance.PLANE, new GeoPoint(lat, lon));
|
||||
return orderByDistanceDesc(true, column, DistanceUnit.KILOMETERS, GeoDistance.PLANE, new GeoPoint(lat, lon));
|
||||
}
|
||||
|
||||
default Children orderByDistanceDesc(String column, DistanceUnit unit, double lat, double lon) {
|
||||
@ -469,39 +469,40 @@ public interface Func<Children, R> extends Serializable {
|
||||
Children groupBy(boolean condition, boolean enablePipeline, String... columns);
|
||||
|
||||
default Children termsAggregation(R column) {
|
||||
return termsAggregation(true, true, FieldUtils.getFieldName(column), column);
|
||||
return termsAggregation(true, true, column);
|
||||
}
|
||||
|
||||
default Children termsAggregation(boolean enablePipeline, R column) {
|
||||
return termsAggregation(true, enablePipeline, FieldUtils.getFieldName(column), column);
|
||||
return termsAggregation(true, enablePipeline, column);
|
||||
}
|
||||
|
||||
default Children termsAggregation(String returnName, R column) {
|
||||
return termsAggregation(true, true, returnName, column);
|
||||
default Children termsAggregation(R... columns) {
|
||||
return termsAggregation(true, true, columns);
|
||||
}
|
||||
|
||||
default Children termsAggregation(boolean enablePipeline, String returnName, R column) {
|
||||
return termsAggregation(true, enablePipeline, returnName, column);
|
||||
default Children termsAggregation(boolean enablePipeline, R... columns) {
|
||||
return termsAggregation(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
default Children termsAggregation(String column) {
|
||||
return termsAggregation(true, true, column, column);
|
||||
return termsAggregation(true, true, column);
|
||||
}
|
||||
|
||||
default Children termsAggregation(boolean enablePipeline, String column) {
|
||||
return termsAggregation(true, enablePipeline, column, column);
|
||||
return termsAggregation(true, enablePipeline, column);
|
||||
}
|
||||
|
||||
default Children termsAggregation(String returnName, String column) {
|
||||
return termsAggregation(true, true, returnName, column);
|
||||
default Children termsAggregation(String... columns) {
|
||||
return termsAggregation(true, true, columns);
|
||||
}
|
||||
|
||||
default Children termsAggregation(boolean enablePipeline, String returnName, String column) {
|
||||
return termsAggregation(true, enablePipeline, returnName, column);
|
||||
default Children termsAggregation(boolean enablePipeline, String... columns) {
|
||||
return termsAggregation(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
default Children termsAggregation(boolean condition, boolean enablePipeline, String returnName, R column) {
|
||||
return termsAggregation(condition, enablePipeline, returnName, FieldUtils.getFieldName(column));
|
||||
default Children termsAggregation(boolean condition, boolean enablePipeline, R... columns) {
|
||||
String[] fields = Arrays.stream(columns).map(FieldUtils::getFieldName).toArray(String[]::new);
|
||||
return termsAggregation(condition, enablePipeline, fields);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -509,48 +510,46 @@ public interface Func<Children, R> extends Serializable {
|
||||
*
|
||||
* @param condition 条件
|
||||
* @param enablePipeline 是否管道聚合
|
||||
* @param returnName 返回的聚合字段名称
|
||||
* @param column 列
|
||||
* @param columns 列,支持多列
|
||||
* @return 泛型
|
||||
*/
|
||||
Children termsAggregation(boolean condition, boolean enablePipeline, String returnName, String column);
|
||||
|
||||
Children termsAggregation(boolean condition, boolean enablePipeline, String... columns);
|
||||
|
||||
default Children avg(R column) {
|
||||
return avg(true, true, FieldUtils.getFieldName(column), column);
|
||||
return avg(true, true, column);
|
||||
}
|
||||
|
||||
default Children avg(boolean enablePipeline, R column) {
|
||||
return avg(true, enablePipeline, FieldUtils.getFieldName(column), column);
|
||||
return avg(true, enablePipeline, column);
|
||||
}
|
||||
|
||||
default Children avg(boolean enablePipeline, String returnName, R column) {
|
||||
return avg(true, enablePipeline, returnName, column);
|
||||
default Children avg(R... columns) {
|
||||
return avg(true, true, columns);
|
||||
}
|
||||
|
||||
default Children avg(String returnName, R column) {
|
||||
return avg(true, true, returnName, column);
|
||||
default Children avg(boolean enablePipeline, R... columns) {
|
||||
return avg(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
default Children avg(String column) {
|
||||
return avg(true, true, FieldUtils.getFieldName(column), column);
|
||||
return avg(true, true, column);
|
||||
}
|
||||
|
||||
default Children avg(boolean enablePipeline, String column) {
|
||||
return avg(true, enablePipeline, column, column);
|
||||
}
|
||||
|
||||
default Children avg(boolean enablePipeline, String returnName, String column) {
|
||||
return avg(true, enablePipeline, returnName, column);
|
||||
default Children avg(String... columns) {
|
||||
return avg(true, true, columns);
|
||||
}
|
||||
|
||||
default Children avg(String returnName, String column) {
|
||||
return avg(true, true, returnName, column);
|
||||
default Children avg(boolean enablePipeline, String... columns) {
|
||||
return avg(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
|
||||
default Children avg(boolean condition, boolean enablePipeline, String returnName, R column) {
|
||||
return avg(condition, enablePipeline, returnName, FieldUtils.getFieldName(column));
|
||||
default Children avg(boolean condition, boolean enablePipeline, R... columns) {
|
||||
String[] fields = Arrays.stream(columns).map(FieldUtils::getFieldName).toArray(String[]::new);
|
||||
return avg(condition, enablePipeline, fields);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -558,46 +557,46 @@ public interface Func<Children, R> extends Serializable {
|
||||
*
|
||||
* @param condition 条件
|
||||
* @param enablePipeline 是否管道聚合
|
||||
* @param returnName 返回的聚合字段名称
|
||||
* @param column 列
|
||||
* @param columns 列,支持多列
|
||||
* @return 泛型
|
||||
*/
|
||||
Children avg(boolean condition, boolean enablePipeline, String returnName, String column);
|
||||
Children avg(boolean condition, boolean enablePipeline, String... columns);
|
||||
|
||||
default Children min(R column) {
|
||||
return min(true, FieldUtils.getFieldName(column), column);
|
||||
return min(true, true, column);
|
||||
}
|
||||
|
||||
default Children min(boolean enablePipeline, R column) {
|
||||
return min(true, enablePipeline, FieldUtils.getFieldName(column), column);
|
||||
return min(true, enablePipeline, column);
|
||||
}
|
||||
|
||||
default Children min(boolean enablePipeline, String returnName, R column) {
|
||||
return min(true, enablePipeline, returnName, column);
|
||||
default Children min(R... column) {
|
||||
return min(true, true, column);
|
||||
}
|
||||
|
||||
default Children min(String returnName, R column) {
|
||||
return min(true, true, returnName, column);
|
||||
default Children min(boolean enablePipeline, R... columns) {
|
||||
return min(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
default Children min(String column) {
|
||||
return min(true, column, column);
|
||||
return min(true, true, column);
|
||||
}
|
||||
|
||||
default Children min(boolean enablePipeline, String column) {
|
||||
return min(true, enablePipeline, column, column);
|
||||
return min(true, enablePipeline, column);
|
||||
}
|
||||
|
||||
default Children min(boolean enablePipeline, String returnName, String column) {
|
||||
return min(true, enablePipeline, returnName, column);
|
||||
default Children min(String... columns) {
|
||||
return min(true, true, columns);
|
||||
}
|
||||
|
||||
default Children min(String returnName, String column) {
|
||||
return min(true, true, returnName, column);
|
||||
default Children min(boolean enablePipeline, String... columns) {
|
||||
return min(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
default Children min(boolean condition, boolean enablePipeline, String returnName, R column) {
|
||||
return min(condition, enablePipeline, returnName, FieldUtils.getFieldName(column));
|
||||
default Children min(boolean condition, boolean enablePipeline, R... columns) {
|
||||
String[] fields = Arrays.stream(columns).map(FieldUtils::getFieldName).toArray(String[]::new);
|
||||
return min(condition, enablePipeline, fields);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -605,47 +604,46 @@ public interface Func<Children, R> extends Serializable {
|
||||
*
|
||||
* @param condition 条件
|
||||
* @param enablePipeline 是否管道聚合
|
||||
* @param returnName 返回的聚合字段名称
|
||||
* @param column 列
|
||||
* @param columns 列,支持多列
|
||||
* @return 泛型
|
||||
*/
|
||||
Children min(boolean condition, boolean enablePipeline, String returnName, String column);
|
||||
|
||||
Children min(boolean condition, boolean enablePipeline, String... columns);
|
||||
|
||||
default Children max(R column) {
|
||||
return max(true, FieldUtils.getFieldName(column), column);
|
||||
return max(true, true, column);
|
||||
}
|
||||
|
||||
default Children max(boolean enablePipeline, R column) {
|
||||
return max(true, enablePipeline, FieldUtils.getFieldName(column), column);
|
||||
return max(true, enablePipeline, column);
|
||||
}
|
||||
|
||||
default Children max(boolean enablePipeline, String returnName, R column) {
|
||||
return max(true, enablePipeline, returnName, column);
|
||||
default Children max(R... columns) {
|
||||
return max(true, true, columns);
|
||||
}
|
||||
|
||||
default Children max(String returnName, R column) {
|
||||
return max(true, true, returnName, column);
|
||||
default Children max(boolean enablePipeline, R... columns) {
|
||||
return max(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
default Children max(String column) {
|
||||
return max(true, column, column);
|
||||
return max(true, true, column);
|
||||
}
|
||||
|
||||
default Children max(boolean enablePipeline, String column) {
|
||||
return max(true, enablePipeline, column, column);
|
||||
return max(true, enablePipeline, column);
|
||||
}
|
||||
|
||||
default Children max(boolean enablePipeline, String returnName, String column) {
|
||||
return max(true, enablePipeline, returnName, column);
|
||||
default Children max(String... columns) {
|
||||
return max(true, true, columns);
|
||||
}
|
||||
|
||||
default Children max(String returnName, String column) {
|
||||
return max(true, true, returnName, column);
|
||||
default Children max(boolean enablePipeline, String... columns) {
|
||||
return max(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
default Children max(boolean condition, boolean enablePipeline, String returnName, R column) {
|
||||
return max(condition, enablePipeline, returnName, FieldUtils.getFieldName(column));
|
||||
default Children max(boolean condition, boolean enablePipeline, R... columns) {
|
||||
String[] fields = Arrays.stream(columns).map(FieldUtils::getFieldName).toArray(String[]::new);
|
||||
return max(condition, enablePipeline, fields);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -653,47 +651,46 @@ public interface Func<Children, R> extends Serializable {
|
||||
*
|
||||
* @param condition 条件
|
||||
* @param enablePipeline 是否管道聚合
|
||||
* @param returnName 返回的聚合字段名称
|
||||
* @param column 列
|
||||
* @param columns 列,支持多列
|
||||
* @return 泛型
|
||||
*/
|
||||
Children max(boolean condition, boolean enablePipeline, String returnName, String column);
|
||||
|
||||
Children max(boolean condition, boolean enablePipeline, String... columns);
|
||||
|
||||
default Children sum(R column) {
|
||||
return sum(true, FieldUtils.getFieldName(column), column);
|
||||
return sum(true, true, column);
|
||||
}
|
||||
|
||||
default Children sum(boolean enablePipeline, R column) {
|
||||
return sum(true, enablePipeline, FieldUtils.getFieldName(column), column);
|
||||
return sum(true, enablePipeline, column);
|
||||
}
|
||||
|
||||
default Children sum(boolean enablePipeline, String returnName, R column) {
|
||||
return sum(true, enablePipeline, returnName, column);
|
||||
default Children sum(R... columns) {
|
||||
return sum(true, true, columns);
|
||||
}
|
||||
|
||||
default Children sum(String returnName, R column) {
|
||||
return sum(true, true, returnName, column);
|
||||
default Children sum(boolean enablePipeline, R... columns) {
|
||||
return sum(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
default Children sum(String column) {
|
||||
return sum(true, column, column);
|
||||
return sum(true, true, column);
|
||||
}
|
||||
|
||||
default Children sum(boolean enablePipeline, String column) {
|
||||
return sum(true, enablePipeline, column, column);
|
||||
return sum(true, enablePipeline, column);
|
||||
}
|
||||
|
||||
default Children sum(boolean enablePipeline, String returnName, String column) {
|
||||
return sum(true, enablePipeline, returnName, column);
|
||||
default Children sum(String... columns) {
|
||||
return sum(true, true, columns);
|
||||
}
|
||||
|
||||
default Children sum(String returnName, String column) {
|
||||
return sum(true, true, returnName, column);
|
||||
default Children sum(boolean enablePipeline, String... columns) {
|
||||
return sum(true, enablePipeline, columns);
|
||||
}
|
||||
|
||||
default Children sum(boolean condition, boolean enablePipeline, String returnName, R column) {
|
||||
return sum(condition, enablePipeline, returnName, FieldUtils.getFieldName(column));
|
||||
default Children sum(boolean condition, boolean enablePipeline, R... columns) {
|
||||
String[] fields = Arrays.stream(columns).map(FieldUtils::getFieldName).toArray(String[]::new);
|
||||
return sum(condition, enablePipeline, fields);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -701,12 +698,10 @@ public interface Func<Children, R> extends Serializable {
|
||||
*
|
||||
* @param condition 条件
|
||||
* @param enablePipeline 是否管道聚合
|
||||
* @param returnName 返回的聚合字段名称
|
||||
* @param column 列
|
||||
* @param columns 列,支持多列
|
||||
* @return 泛型
|
||||
*/
|
||||
Children sum(boolean condition, boolean enablePipeline, String returnName, String column);
|
||||
|
||||
Children sum(boolean condition, boolean enablePipeline, String... columns);
|
||||
|
||||
default Children sort(SortBuilder<?> sortBuilder) {
|
||||
return sort(true, sortBuilder);
|
||||
|
||||
@ -59,6 +59,38 @@ public class AggTest {
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void testTermsFuncAgg() {
|
||||
// 根据标题和副标题聚合,聚合完在该桶中再次根据点赞数聚合
|
||||
// 注意:指定的多个聚合参数为链式聚合,就是第一个聚合参数聚合之后的结果,再根据第二个参数聚合,对应Pipeline聚合
|
||||
LambdaEsQueryWrapper<Document> wrapper = new LambdaEsQueryWrapper<>();
|
||||
wrapper.eq(Document::getTitle, "老汉")
|
||||
.termsAggregation(Document::getTitle, Document::getSubTitle)
|
||||
.avg(Document::getStarNum, Document::getScore)
|
||||
.min(true, Document::getStarNum, Document::getScore)
|
||||
.max(false, Document::getStarNum, Document::getScore)
|
||||
.sum(false, false, Document::getStarNum, Document::getScore);
|
||||
SearchResponse response = documentMapper.search(wrapper);
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTermsStrAgg() {
|
||||
// 根据标题和副标题聚合,聚合完在该桶中再次根据点赞数聚合
|
||||
// 注意:指定的多个聚合参数为链式聚合,就是第一个聚合参数聚合之后的结果,再根据第二个参数聚合,对应Pipeline聚合
|
||||
LambdaEsQueryWrapper<Document> wrapper = new LambdaEsQueryWrapper<>();
|
||||
wrapper.eq(Document::getTitle, "老汉")
|
||||
.termsAggregation("title", "subTitle")
|
||||
.avg("starNum", "score")
|
||||
.min(true, "starNum", "score")
|
||||
.max(false, "starNum", "score")
|
||||
.sum(false, false, "starNum", "score");
|
||||
SearchResponse response = documentMapper.search(wrapper);
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testAggNotPipeline() {
|
||||
// 对于下面两个字段,如果不想以pipeline管道聚合,各自聚合的结果在各自的桶中展示的话,我们也提供了支持
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user