Cut max, min, stats, and extended stats aggregations over to registerAggregation
and remove their PROTOTYPEs. Relates to #17085
This commit is contained in:
parent
f6d141a29c
commit
ed7b759a45
|
@ -167,8 +167,10 @@ import org.elasticsearch.search.aggregations.metrics.geocentroid.GeoCentroidAggr
|
||||||
import org.elasticsearch.search.aggregations.metrics.geocentroid.GeoCentroidParser;
|
import org.elasticsearch.search.aggregations.metrics.geocentroid.GeoCentroidParser;
|
||||||
import org.elasticsearch.search.aggregations.metrics.geocentroid.InternalGeoCentroid;
|
import org.elasticsearch.search.aggregations.metrics.geocentroid.InternalGeoCentroid;
|
||||||
import org.elasticsearch.search.aggregations.metrics.max.InternalMax;
|
import org.elasticsearch.search.aggregations.metrics.max.InternalMax;
|
||||||
|
import org.elasticsearch.search.aggregations.metrics.max.MaxAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.metrics.max.MaxParser;
|
import org.elasticsearch.search.aggregations.metrics.max.MaxParser;
|
||||||
import org.elasticsearch.search.aggregations.metrics.min.InternalMin;
|
import org.elasticsearch.search.aggregations.metrics.min.InternalMin;
|
||||||
|
import org.elasticsearch.search.aggregations.metrics.min.MinAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.metrics.min.MinParser;
|
import org.elasticsearch.search.aggregations.metrics.min.MinParser;
|
||||||
import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanksAggregatorBuilder;
|
import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanksAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanksParser;
|
import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanksParser;
|
||||||
|
@ -181,10 +183,13 @@ import org.elasticsearch.search.aggregations.metrics.percentiles.tdigest.Interna
|
||||||
import org.elasticsearch.search.aggregations.metrics.scripted.InternalScriptedMetric;
|
import org.elasticsearch.search.aggregations.metrics.scripted.InternalScriptedMetric;
|
||||||
import org.elasticsearch.search.aggregations.metrics.scripted.ScriptedMetricAggregatorBuilder;
|
import org.elasticsearch.search.aggregations.metrics.scripted.ScriptedMetricAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.metrics.stats.InternalStats;
|
import org.elasticsearch.search.aggregations.metrics.stats.InternalStats;
|
||||||
|
import org.elasticsearch.search.aggregations.metrics.stats.StatsAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.metrics.stats.StatsParser;
|
import org.elasticsearch.search.aggregations.metrics.stats.StatsParser;
|
||||||
|
import org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStatsAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStatsParser;
|
import org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStatsParser;
|
||||||
import org.elasticsearch.search.aggregations.metrics.stats.extended.InternalExtendedStats;
|
import org.elasticsearch.search.aggregations.metrics.stats.extended.InternalExtendedStats;
|
||||||
import org.elasticsearch.search.aggregations.metrics.sum.InternalSum;
|
import org.elasticsearch.search.aggregations.metrics.sum.InternalSum;
|
||||||
|
import org.elasticsearch.search.aggregations.metrics.sum.SumAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.metrics.sum.SumParser;
|
import org.elasticsearch.search.aggregations.metrics.sum.SumParser;
|
||||||
import org.elasticsearch.search.aggregations.metrics.tophits.InternalTopHits;
|
import org.elasticsearch.search.aggregations.metrics.tophits.InternalTopHits;
|
||||||
import org.elasticsearch.search.aggregations.metrics.tophits.TopHitsAggregatorBuilder;
|
import org.elasticsearch.search.aggregations.metrics.tophits.TopHitsAggregatorBuilder;
|
||||||
|
@ -457,11 +462,12 @@ public class SearchModule extends AbstractModule {
|
||||||
SignificanceHeuristicParserMapper significanceHeuristicParserMapper = new SignificanceHeuristicParserMapper(heuristicParsers);
|
SignificanceHeuristicParserMapper significanceHeuristicParserMapper = new SignificanceHeuristicParserMapper(heuristicParsers);
|
||||||
|
|
||||||
registerAggregation(AvgAggregatorBuilder::new, new AvgParser(), AvgAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
registerAggregation(AvgAggregatorBuilder::new, new AvgParser(), AvgAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
||||||
registerAggregatorParser(new SumParser());
|
registerAggregation(SumAggregatorBuilder::new, new SumParser(), SumAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
||||||
registerAggregatorParser(new MinParser());
|
registerAggregation(MinAggregatorBuilder::new, new MinParser(), MinAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
||||||
registerAggregatorParser(new MaxParser());
|
registerAggregation(MaxAggregatorBuilder::new, new MaxParser(), MaxAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
||||||
registerAggregatorParser(new StatsParser());
|
registerAggregation(StatsAggregatorBuilder::new, new StatsParser(), StatsAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
||||||
registerAggregatorParser(new ExtendedStatsParser());
|
registerAggregation(ExtendedStatsAggregatorBuilder::new, new ExtendedStatsParser(),
|
||||||
|
ExtendedStatsAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
||||||
registerAggregation(ValueCountAggregatorBuilder::new, new ValueCountParser(), ValueCountAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
registerAggregation(ValueCountAggregatorBuilder::new, new ValueCountParser(), ValueCountAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
||||||
registerAggregation(PercentilesAggregatorBuilder::new, new PercentilesParser(),
|
registerAggregation(PercentilesAggregatorBuilder::new, new PercentilesParser(),
|
||||||
PercentilesAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
PercentilesAggregatorBuilder.AGGREGATION_NAME_FIELD);
|
||||||
|
|
|
@ -19,47 +19,53 @@
|
||||||
|
|
||||||
package org.elasticsearch.search.aggregations.metrics.max;
|
package org.elasticsearch.search.aggregations.metrics.max;
|
||||||
|
|
||||||
|
import org.elasticsearch.common.ParseField;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.common.xcontent.ToXContent.Params;
|
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
||||||
|
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
||||||
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
||||||
|
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class MaxAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, MaxAggregatorBuilder> {
|
public class MaxAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, MaxAggregatorBuilder> {
|
||||||
|
public static final String NAME = InternalMax.TYPE.name();
|
||||||
static final MaxAggregatorBuilder PROTOTYPE = new MaxAggregatorBuilder("");
|
public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME);
|
||||||
|
|
||||||
public MaxAggregatorBuilder(String name) {
|
public MaxAggregatorBuilder(String name) {
|
||||||
super(name, InternalMax.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
super(name, InternalMax.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read from a stream.
|
||||||
|
*/
|
||||||
|
public MaxAggregatorBuilder(StreamInput in) throws IOException {
|
||||||
|
super(in, InternalMax.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void innerWriteTo(StreamOutput out) {
|
||||||
|
// Do nothing, no extra state to write to stream
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean usesNewStyleSerialization() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected MaxAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig<Numeric> config,
|
protected MaxAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig<Numeric> config,
|
||||||
AggregatorFactory<?> parent, Builder subFactoriesBuilder) throws IOException {
|
AggregatorFactory<?> parent, Builder subFactoriesBuilder) throws IOException {
|
||||||
return new MaxAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData);
|
return new MaxAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected MaxAggregatorBuilder innerReadFrom(String name, ValuesSourceType valuesSourceType,
|
|
||||||
ValueType targetValueType, StreamInput in) {
|
|
||||||
return new MaxAggregatorBuilder(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void innerWriteTo(StreamOutput out) {
|
|
||||||
// Do nothing, no extra state to write to stream
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException {
|
public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException {
|
||||||
return builder;
|
return builder;
|
||||||
|
@ -75,4 +81,8 @@ public class MaxAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getWriteableName() {
|
||||||
|
return NAME;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -37,11 +37,6 @@ public class MaxParser extends NumericValuesSourceParser {
|
||||||
super(true, true, false);
|
super(true, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String type() {
|
|
||||||
return InternalMax.TYPE.name();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, XContentParser parser,
|
protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, XContentParser parser,
|
||||||
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
||||||
|
@ -53,10 +48,4 @@ public class MaxParser extends NumericValuesSourceParser {
|
||||||
ValueType targetValueType, Map<ParseField, Object> otherOptions) {
|
ValueType targetValueType, Map<ParseField, Object> otherOptions) {
|
||||||
return new MaxAggregatorBuilder(aggregationName);
|
return new MaxAggregatorBuilder(aggregationName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public MaxAggregatorBuilder getFactoryPrototypes() {
|
|
||||||
return MaxAggregatorBuilder.PROTOTYPE;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,47 +19,53 @@
|
||||||
|
|
||||||
package org.elasticsearch.search.aggregations.metrics.min;
|
package org.elasticsearch.search.aggregations.metrics.min;
|
||||||
|
|
||||||
|
import org.elasticsearch.common.ParseField;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.common.xcontent.ToXContent.Params;
|
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
||||||
|
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
||||||
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
||||||
|
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class MinAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, MinAggregatorBuilder> {
|
public class MinAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, MinAggregatorBuilder> {
|
||||||
|
public static final String NAME = InternalMin.TYPE.name();
|
||||||
static final MinAggregatorBuilder PROTOTYPE = new MinAggregatorBuilder("");
|
public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME);
|
||||||
|
|
||||||
public MinAggregatorBuilder(String name) {
|
public MinAggregatorBuilder(String name) {
|
||||||
super(name, InternalMin.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
super(name, InternalMin.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read from a stream.
|
||||||
|
*/
|
||||||
|
public MinAggregatorBuilder(StreamInput in) throws IOException {
|
||||||
|
super(in, InternalMin.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void innerWriteTo(StreamOutput out) {
|
||||||
|
// Do nothing, no extra state to write to stream
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean usesNewStyleSerialization() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected MinAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig<Numeric> config,
|
protected MinAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig<Numeric> config,
|
||||||
AggregatorFactory<?> parent, Builder subFactoriesBuilder) throws IOException {
|
AggregatorFactory<?> parent, Builder subFactoriesBuilder) throws IOException {
|
||||||
return new MinAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData);
|
return new MinAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected MinAggregatorBuilder innerReadFrom(String name, ValuesSourceType valuesSourceType,
|
|
||||||
ValueType targetValueType, StreamInput in) {
|
|
||||||
return new MinAggregatorBuilder(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void innerWriteTo(StreamOutput out) {
|
|
||||||
// Do nothing, no extra state to write to stream
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException {
|
public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException {
|
||||||
return builder;
|
return builder;
|
||||||
|
@ -74,4 +80,9 @@ public class MinAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly
|
||||||
protected boolean innerEquals(Object obj) {
|
protected boolean innerEquals(Object obj) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getWriteableName() {
|
||||||
|
return NAME;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -38,11 +38,6 @@ public class MinParser extends NumericValuesSourceParser {
|
||||||
super(true, true, false);
|
super(true, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String type() {
|
|
||||||
return InternalMin.TYPE.name();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean token(String aggregationName, String currentFieldName, Token token, XContentParser parser,
|
protected boolean token(String aggregationName, String currentFieldName, Token token, XContentParser parser,
|
||||||
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
||||||
|
@ -54,9 +49,4 @@ public class MinParser extends NumericValuesSourceParser {
|
||||||
ValueType targetValueType, Map<ParseField, Object> otherOptions) {
|
ValueType targetValueType, Map<ParseField, Object> otherOptions) {
|
||||||
return new MinAggregatorBuilder(aggregationName);
|
return new MinAggregatorBuilder(aggregationName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public MinAggregatorBuilder getFactoryPrototypes() {
|
|
||||||
return MinAggregatorBuilder.PROTOTYPE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,30 +19,42 @@
|
||||||
|
|
||||||
package org.elasticsearch.search.aggregations.metrics.stats;
|
package org.elasticsearch.search.aggregations.metrics.stats;
|
||||||
|
|
||||||
|
import org.elasticsearch.common.ParseField;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.common.xcontent.ToXContent.Params;
|
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
||||||
|
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
||||||
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
||||||
|
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class StatsAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, StatsAggregatorBuilder> {
|
public class StatsAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, StatsAggregatorBuilder> {
|
||||||
|
public static final String NAME = InternalStats.TYPE.name();
|
||||||
static final StatsAggregatorBuilder PROTOTYPE = new StatsAggregatorBuilder("");
|
public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME);
|
||||||
|
|
||||||
public StatsAggregatorBuilder(String name) {
|
public StatsAggregatorBuilder(String name) {
|
||||||
super(name, InternalStats.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
super(name, InternalStats.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read from a stream.
|
||||||
|
*/
|
||||||
|
public StatsAggregatorBuilder(StreamInput in) throws IOException {
|
||||||
|
super(in, InternalStats.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void innerWriteTo(StreamOutput out) {
|
||||||
|
// Do nothing, no extra state to write to stream
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected StatsAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig<Numeric> config,
|
protected StatsAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig<Numeric> config,
|
||||||
AggregatorFactory<?> parent, Builder subFactoriesBuilder) throws IOException {
|
AggregatorFactory<?> parent, Builder subFactoriesBuilder) throws IOException {
|
||||||
|
@ -50,14 +62,8 @@ public class StatsAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOn
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected StatsAggregatorBuilder innerReadFrom(String name, ValuesSourceType valuesSourceType,
|
protected boolean usesNewStyleSerialization() {
|
||||||
ValueType targetValueType, StreamInput in) {
|
return true;
|
||||||
return new StatsAggregatorBuilder(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void innerWriteTo(StreamOutput out) {
|
|
||||||
// Do nothing, no extra state to write to stream
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -74,4 +80,9 @@ public class StatsAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOn
|
||||||
protected boolean innerEquals(Object obj) {
|
protected boolean innerEquals(Object obj) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getWriteableName() {
|
||||||
|
return NAME;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -21,7 +21,6 @@ package org.elasticsearch.search.aggregations.metrics.stats;
|
||||||
import org.elasticsearch.common.ParseField;
|
import org.elasticsearch.common.ParseField;
|
||||||
import org.elasticsearch.common.ParseFieldMatcher;
|
import org.elasticsearch.common.ParseFieldMatcher;
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
import org.elasticsearch.search.aggregations.AggregatorBuilder;
|
|
||||||
import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser;
|
import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
||||||
|
@ -38,11 +37,6 @@ public class StatsParser extends NumericValuesSourceParser {
|
||||||
super(true, true, false);
|
super(true, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String type() {
|
|
||||||
return InternalStats.TYPE.name();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, XContentParser parser,
|
protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, XContentParser parser,
|
||||||
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
||||||
|
@ -54,9 +48,4 @@ public class StatsParser extends NumericValuesSourceParser {
|
||||||
ValueType targetValueType, Map<ParseField, Object> otherOptions) {
|
ValueType targetValueType, Map<ParseField, Object> otherOptions) {
|
||||||
return new StatsAggregatorBuilder(aggregationName);
|
return new StatsAggregatorBuilder(aggregationName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public AggregatorBuilder<?> getFactoryPrototypes() {
|
|
||||||
return StatsAggregatorBuilder.PROTOTYPE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,26 +19,27 @@
|
||||||
|
|
||||||
package org.elasticsearch.search.aggregations.metrics.stats.extended;
|
package org.elasticsearch.search.aggregations.metrics.stats.extended;
|
||||||
|
|
||||||
|
import org.elasticsearch.common.ParseField;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
||||||
|
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
||||||
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
||||||
|
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ExtendedStatsAggregatorBuilder
|
public class ExtendedStatsAggregatorBuilder
|
||||||
extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, ExtendedStatsAggregatorBuilder> {
|
extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, ExtendedStatsAggregatorBuilder> {
|
||||||
|
public static final String NAME = InternalExtendedStats.TYPE.name();
|
||||||
static final ExtendedStatsAggregatorBuilder PROTOTYPE = new ExtendedStatsAggregatorBuilder("");
|
public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME);
|
||||||
|
|
||||||
private double sigma = 2.0;
|
private double sigma = 2.0;
|
||||||
|
|
||||||
|
@ -46,6 +47,24 @@ public class ExtendedStatsAggregatorBuilder
|
||||||
super(name, InternalExtendedStats.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
super(name, InternalExtendedStats.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read from a stream.
|
||||||
|
*/
|
||||||
|
public ExtendedStatsAggregatorBuilder(StreamInput in) throws IOException {
|
||||||
|
super(in, InternalExtendedStats.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
|
sigma = in.readDouble();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void innerWriteTo(StreamOutput out) throws IOException {
|
||||||
|
out.writeDouble(sigma);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean usesNewStyleSerialization() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public ExtendedStatsAggregatorBuilder sigma(double sigma) {
|
public ExtendedStatsAggregatorBuilder sigma(double sigma) {
|
||||||
if (sigma < 0.0) {
|
if (sigma < 0.0) {
|
||||||
throw new IllegalArgumentException("[sigma] must be greater than or equal to 0. Found [" + sigma + "] in [" + name + "]");
|
throw new IllegalArgumentException("[sigma] must be greater than or equal to 0. Found [" + sigma + "] in [" + name + "]");
|
||||||
|
@ -64,19 +83,6 @@ public class ExtendedStatsAggregatorBuilder
|
||||||
return new ExtendedStatsAggregatorFactory(name, type, config, sigma, context, parent, subFactoriesBuilder, metaData);
|
return new ExtendedStatsAggregatorFactory(name, type, config, sigma, context, parent, subFactoriesBuilder, metaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected ExtendedStatsAggregatorBuilder innerReadFrom(String name, ValuesSourceType valuesSourceType,
|
|
||||||
ValueType targetValueType, StreamInput in) throws IOException {
|
|
||||||
ExtendedStatsAggregatorBuilder factory = new ExtendedStatsAggregatorBuilder(name);
|
|
||||||
factory.sigma = in.readDouble();
|
|
||||||
return factory;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void innerWriteTo(StreamOutput out) throws IOException {
|
|
||||||
out.writeDouble(sigma);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException {
|
public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException {
|
||||||
builder.field(ExtendedStatsAggregator.SIGMA_FIELD.getPreferredName(), sigma);
|
builder.field(ExtendedStatsAggregator.SIGMA_FIELD.getPreferredName(), sigma);
|
||||||
|
@ -93,4 +99,9 @@ public class ExtendedStatsAggregatorBuilder
|
||||||
ExtendedStatsAggregatorBuilder other = (ExtendedStatsAggregatorBuilder) obj;
|
ExtendedStatsAggregatorBuilder other = (ExtendedStatsAggregatorBuilder) obj;
|
||||||
return Objects.equals(sigma, other.sigma);
|
return Objects.equals(sigma, other.sigma);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getWriteableName() {
|
||||||
|
return NAME;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -21,7 +21,6 @@ package org.elasticsearch.search.aggregations.metrics.stats.extended;
|
||||||
import org.elasticsearch.common.ParseField;
|
import org.elasticsearch.common.ParseField;
|
||||||
import org.elasticsearch.common.ParseFieldMatcher;
|
import org.elasticsearch.common.ParseFieldMatcher;
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
import org.elasticsearch.search.aggregations.AggregatorBuilder;
|
|
||||||
import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser;
|
import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
||||||
|
@ -38,11 +37,6 @@ public class ExtendedStatsParser extends NumericValuesSourceParser {
|
||||||
super(true, true, false);
|
super(true, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String type() {
|
|
||||||
return InternalExtendedStats.TYPE.name();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, XContentParser parser,
|
protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, XContentParser parser,
|
||||||
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
||||||
|
@ -65,9 +59,4 @@ public class ExtendedStatsParser extends NumericValuesSourceParser {
|
||||||
}
|
}
|
||||||
return factory;
|
return factory;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public AggregatorBuilder<?> getFactoryPrototypes() {
|
|
||||||
return ExtendedStatsAggregatorBuilder.PROTOTYPE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,46 +19,53 @@
|
||||||
|
|
||||||
package org.elasticsearch.search.aggregations.metrics.sum;
|
package org.elasticsearch.search.aggregations.metrics.sum;
|
||||||
|
|
||||||
|
import org.elasticsearch.common.ParseField;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
||||||
|
import org.elasticsearch.search.aggregations.AggregatorFactory;
|
||||||
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
import org.elasticsearch.search.aggregations.support.ValuesSource;
|
||||||
|
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorBuilder;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceConfig;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class SumAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, SumAggregatorBuilder> {
|
public class SumAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly<ValuesSource.Numeric, SumAggregatorBuilder> {
|
||||||
|
public static final String NAME = InternalSum.TYPE.name();
|
||||||
static final SumAggregatorBuilder PROTOTYPE = new SumAggregatorBuilder("");
|
public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME);
|
||||||
|
|
||||||
public SumAggregatorBuilder(String name) {
|
public SumAggregatorBuilder(String name) {
|
||||||
super(name, InternalSum.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
super(name, InternalSum.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read from a stream.
|
||||||
|
*/
|
||||||
|
public SumAggregatorBuilder(StreamInput in) throws IOException {
|
||||||
|
super(in, InternalSum.TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void innerWriteTo(StreamOutput out) {
|
||||||
|
// Do nothing, no extra state to write to stream
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean usesNewStyleSerialization() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected SumAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig<Numeric> config,
|
protected SumAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig<Numeric> config,
|
||||||
AggregatorFactory<?> parent, Builder subFactoriesBuilder) throws IOException {
|
AggregatorFactory<?> parent, Builder subFactoriesBuilder) throws IOException {
|
||||||
return new SumAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData);
|
return new SumAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected ValuesSourceAggregatorBuilder<Numeric, SumAggregatorBuilder> innerReadFrom(String name, ValuesSourceType valuesSourceType,
|
|
||||||
ValueType targetValueType, StreamInput in) {
|
|
||||||
return new SumAggregatorBuilder(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void innerWriteTo(StreamOutput out) {
|
|
||||||
// Do nothing, no extra state to write to stream
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException {
|
public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException {
|
||||||
return builder;
|
return builder;
|
||||||
|
@ -73,4 +80,9 @@ public class SumAggregatorBuilder extends ValuesSourceAggregatorBuilder.LeafOnly
|
||||||
protected boolean innerEquals(Object obj) {
|
protected boolean innerEquals(Object obj) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getWriteableName() {
|
||||||
|
return NAME;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -21,7 +21,6 @@ package org.elasticsearch.search.aggregations.metrics.sum;
|
||||||
import org.elasticsearch.common.ParseField;
|
import org.elasticsearch.common.ParseField;
|
||||||
import org.elasticsearch.common.ParseFieldMatcher;
|
import org.elasticsearch.common.ParseFieldMatcher;
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
import org.elasticsearch.search.aggregations.AggregatorBuilder;
|
|
||||||
import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser;
|
import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
import org.elasticsearch.search.aggregations.support.ValuesSourceType;
|
||||||
|
@ -38,11 +37,6 @@ public class SumParser extends NumericValuesSourceParser {
|
||||||
super(true, true, false);
|
super(true, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String type() {
|
|
||||||
return InternalSum.TYPE.name();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, XContentParser parser,
|
protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, XContentParser parser,
|
||||||
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
ParseFieldMatcher parseFieldMatcher, Map<ParseField, Object> otherOptions) throws IOException {
|
||||||
|
@ -54,9 +48,4 @@ public class SumParser extends NumericValuesSourceParser {
|
||||||
ValueType targetValueType, Map<ParseField, Object> otherOptions) {
|
ValueType targetValueType, Map<ParseField, Object> otherOptions) {
|
||||||
return new SumAggregatorBuilder(aggregationName);
|
return new SumAggregatorBuilder(aggregationName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public AggregatorBuilder<?> getFactoryPrototypes() {
|
|
||||||
return SumAggregatorBuilder.PROTOTYPE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue