diff options
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile')
3 files changed, 40 insertions, 76 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java index badbb9411a..059d72a8e1 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java @@ -23,7 +23,6 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.DocValueFormat; -import org.elasticsearch.search.aggregations.AggregationStreams; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.metrics.InternalNumericMetricsAggregation; import org.elasticsearch.search.aggregations.metrics.max.InternalMax; @@ -38,28 +37,9 @@ import java.util.List; import java.util.Map; public class InternalPercentilesBucket extends InternalNumericMetricsAggregation.MultiValue implements PercentilesBucket { - - public static final Type TYPE = new Type("percentiles_bucket"); - - public static final AggregationStreams.Stream STREAM = new AggregationStreams.Stream() { - @Override - public InternalPercentilesBucket readResult(StreamInput in) throws IOException { - InternalPercentilesBucket result = new InternalPercentilesBucket(); - result.readFrom(in); - return result; - } - }; - - public static void registerStreams() { - AggregationStreams.registerStream(STREAM, TYPE.stream()); - } - private double[] percentiles; private double[] percents; - protected InternalPercentilesBucket() { - } // for serialization - public InternalPercentilesBucket(String name, double[] percents, double[] percentiles, DocValueFormat formatter, List<PipelineAggregator> pipelineAggregators, Map<String, Object> metaData) { @@ -69,6 +49,28 @@ public class InternalPercentilesBucket extends InternalNumericMetricsAggregation this.percents = percents; } + /** + * Read from a stream. + */ + public InternalPercentilesBucket(StreamInput in) throws IOException { + super(in); + format = in.readNamedWriteable(DocValueFormat.class); + percentiles = in.readDoubleArray(); + percents = in.readDoubleArray(); + } + + @Override + protected void doWriteTo(StreamOutput out) throws IOException { + out.writeNamedWriteable(format); + out.writeDoubleArray(percentiles); + out.writeDoubleArray(percents); + } + + @Override + public String getWriteableName() { + return PercentilesBucketPipelineAggregationBuilder.NAME; + } + @Override public double percentile(double percent) throws IllegalArgumentException { int index = Arrays.binarySearch(percents, percent); @@ -95,30 +97,11 @@ public class InternalPercentilesBucket extends InternalNumericMetricsAggregation } @Override - public Type type() { - return TYPE; - } - - @Override public InternalMax doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { throw new UnsupportedOperationException("Not supported"); } @Override - protected void doReadFrom(StreamInput in) throws IOException { - format = in.readNamedWriteable(DocValueFormat.class); - percentiles = in.readDoubleArray(); - percents = in.readDoubleArray(); - } - - @Override - protected void doWriteTo(StreamOutput out) throws IOException { - out.writeNamedWriteable(format); - out.writeDoubleArray(percentiles); - out.writeDoubleArray(percents); - } - - @Override public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException { builder.startObject("values"); for (double percent : percents) { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/PercentilesBucketPipelineAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/PercentilesBucketPipelineAggregationBuilder.java index 06a1b06dff..d0f0e29bdb 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/PercentilesBucketPipelineAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/PercentilesBucketPipelineAggregationBuilder.java @@ -40,7 +40,7 @@ import java.util.Objects; public class PercentilesBucketPipelineAggregationBuilder extends BucketMetricsPipelineAggregationBuilder<PercentilesBucketPipelineAggregationBuilder> { - public static final String NAME = PercentilesBucketPipelineAggregator.TYPE.name(); + public static final String NAME = "percentiles_bucket"; public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME); private static final ParseField PERCENTS_FIELD = new ParseField("percents"); @@ -48,7 +48,7 @@ public class PercentilesBucketPipelineAggregationBuilder private double[] percents = new double[] { 1.0, 5.0, 25.0, 50.0, 75.0, 95.0, 99.0 }; public PercentilesBucketPipelineAggregationBuilder(String name, String bucketsPath) { - super(name, PercentilesBucketPipelineAggregator.TYPE.name(), new String[] { bucketsPath }); + super(name, NAME, new String[] { bucketsPath }); } /** diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/PercentilesBucketPipelineAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/PercentilesBucketPipelineAggregator.java index 12769680e9..2818d0f3f5 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/PercentilesBucketPipelineAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/PercentilesBucketPipelineAggregator.java @@ -24,10 +24,8 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.InternalAggregation; -import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.BucketHelpers.GapPolicy; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.pipeline.PipelineAggregatorStreams; import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.BucketMetricsPipelineAggregator; import java.io.IOException; @@ -37,39 +35,33 @@ import java.util.List; import java.util.Map; public class PercentilesBucketPipelineAggregator extends BucketMetricsPipelineAggregator { - - public static final Type TYPE = new Type("percentiles_bucket"); public final ParseField PERCENTS_FIELD = new ParseField("percents"); - public static final PipelineAggregatorStreams.Stream STREAM = new PipelineAggregatorStreams.Stream() { - @Override - public PercentilesBucketPipelineAggregator readResult(StreamInput in) throws IOException { - PercentilesBucketPipelineAggregator result = new PercentilesBucketPipelineAggregator(); - result.readFrom(in); - return result; - } - }; - - public static void registerStreams() { - PipelineAggregatorStreams.registerStream(STREAM, TYPE.stream()); - InternalPercentilesBucket.registerStreams(); - } - - private double[] percents; + private final double[] percents; private List<Double> data; - private PercentilesBucketPipelineAggregator() { - } - protected PercentilesBucketPipelineAggregator(String name, double[] percents, String[] bucketsPaths, GapPolicy gapPolicy, DocValueFormat formatter, Map<String, Object> metaData) { super(name, bucketsPaths, gapPolicy, formatter, metaData); this.percents = percents; } + /** + * Read from a stream. + */ + public PercentilesBucketPipelineAggregator(StreamInput in) throws IOException { + super(in); + percents = in.readDoubleArray(); + } + @Override - public Type type() { - return TYPE; + public void innerWriteTo(StreamOutput out) throws IOException { + out.writeDoubleArray(percents); + } + + @Override + public String getWriteableName() { + return PercentilesBucketPipelineAggregationBuilder.NAME; } @Override @@ -105,15 +97,4 @@ public class PercentilesBucketPipelineAggregator extends BucketMetricsPipelineAg return new InternalPercentilesBucket(name(), percents, percentiles, format, pipelineAggregators, metadata); } - - @Override - public void innerReadFrom(StreamInput in) throws IOException { - percents = in.readDoubleArray(); - } - - @Override - public void innerWriteTo(StreamOutput out) throws IOException { - out.writeDoubleArray(percents); - } - } |