|
@@ -6,13 +6,14 @@
|
|
|
package org.elasticsearch.xpack.sql.querydsl.agg;
|
|
|
|
|
|
import org.elasticsearch.search.aggregations.AggregationBuilder;
|
|
|
+import org.elasticsearch.search.aggregations.AggregationBuilders;
|
|
|
import org.elasticsearch.search.aggregations.metrics.PercentilesAggregationBuilder;
|
|
|
+import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.function.Function;
|
|
|
|
|
|
-import static org.elasticsearch.search.aggregations.AggregationBuilders.percentiles;
|
|
|
-
|
|
|
-public class PercentilesAgg extends LeafAgg {
|
|
|
+public class PercentilesAgg extends DefaultAggSourceLeafAgg {
|
|
|
|
|
|
private final List<Double> percents;
|
|
|
|
|
@@ -20,11 +21,16 @@ public class PercentilesAgg extends LeafAgg {
|
|
|
super(id, source);
|
|
|
this.percents = percents;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
AggregationBuilder toBuilder() {
|
|
|
// TODO: look at keyed
|
|
|
- PercentilesAggregationBuilder builder = (PercentilesAggregationBuilder) addAggSource(percentiles(id()));
|
|
|
+ PercentilesAggregationBuilder builder = (PercentilesAggregationBuilder) super.toBuilder();
|
|
|
return builder.percentiles(percents.stream().mapToDouble(Double::doubleValue).toArray());
|
|
|
}
|
|
|
-}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ Function<String, ValuesSourceAggregationBuilder<?>> builder() {
|
|
|
+ return AggregationBuilders::percentiles;
|
|
|
+ }
|
|
|
+}
|