diff --git a/core/src/main/java/org/elasticsearch/search/SearchModule.java b/core/src/main/java/org/elasticsearch/search/SearchModule.java index b43aaef974d..dcfd8fd60cb 100644 --- a/core/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/core/src/main/java/org/elasticsearch/search/SearchModule.java @@ -544,10 +544,10 @@ public class SearchModule extends AbstractModule { GeoDistanceAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalGeoDistance::new)); registerAggregation(new AggregationSpec(GeoGridAggregationBuilder::new, new GeoHashGridParser(), GeoGridAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalGeoHashGrid::new)); - registerAggregation(NestedAggregationBuilder::new, NestedAggregationBuilder::parse, - NestedAggregationBuilder.AGGREGATION_FIELD_NAME); - registerAggregation(ReverseNestedAggregationBuilder::new, ReverseNestedAggregationBuilder::parse, - ReverseNestedAggregationBuilder.AGGREGATION_NAME_FIELD); + registerAggregation(new AggregationSpec(NestedAggregationBuilder::new, NestedAggregationBuilder::parse, + NestedAggregationBuilder.AGGREGATION_FIELD_NAME).addResultReader(InternalNested::new)); + registerAggregation(new AggregationSpec(ReverseNestedAggregationBuilder::new, ReverseNestedAggregationBuilder::parse, + ReverseNestedAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalReverseNested::new)); registerAggregation(TopHitsAggregationBuilder::new, TopHitsAggregationBuilder::parse, TopHitsAggregationBuilder.AGGREGATION_NAME_FIELD); registerAggregation(new AggregationSpec(GeoBoundsAggregationBuilder::new, new GeoBoundsParser(), @@ -556,8 +556,8 @@ public class SearchModule extends AbstractModule { GeoCentroidAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalGeoCentroid::new)); registerAggregation(new AggregationSpec(ScriptedMetricAggregationBuilder::new, ScriptedMetricAggregationBuilder::parse, ScriptedMetricAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalScriptedMetric::new)); - registerAggregation(ChildrenAggregationBuilder::new, ChildrenAggregationBuilder::parse, - ChildrenAggregationBuilder.AGGREGATION_NAME_FIELD); + registerAggregation(new AggregationSpec(ChildrenAggregationBuilder::new, ChildrenAggregationBuilder::parse, + ChildrenAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalChildren::new)); registerPipelineAggregation(DerivativePipelineAggregationBuilder::new, DerivativePipelineAggregationBuilder::parse, DerivativePipelineAggregationBuilder.AGGREGATION_NAME_FIELD); @@ -824,10 +824,7 @@ public class SearchModule extends AbstractModule { // buckets InternalBinaryRange.registerStream(); InternalHistogram.registerStream(); - InternalNested.registerStream(); - InternalReverseNested.registerStream(); InternalTopHits.registerStreams(); - InternalChildren.registerStream(); // Pipeline Aggregations DerivativePipelineAggregator.registerStreams(); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ChildrenAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ChildrenAggregationBuilder.java index 3749d2b2edd..3bd26ea70fc 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ChildrenAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ChildrenAggregationBuilder.java @@ -31,6 +31,7 @@ import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.internal.ParentFieldMapper; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.FieldContext; @@ -45,7 +46,8 @@ import java.io.IOException; import java.util.Objects; public class ChildrenAggregationBuilder extends ValuesSourceAggregationBuilder { - public static final String NAME = InternalChildren.TYPE.name(); + public static final String NAME = "children"; + private static final Type TYPE = new Type(NAME); public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME); private String parentType; @@ -60,7 +62,7 @@ public class ChildrenAggregationBuilder extends ValuesSourceAggregationBuilder

pipelineAggregators, Map metaData) { super(name, docCount, aggregations, pipelineAggregators, metaData); } + /** + * Read from a stream. + */ + public InternalChildren(StreamInput in) throws IOException { + super(in); + } + @Override - public Type type() { - return TYPE; + public String getWriteableName() { + return ChildrenAggregationBuilder.NAME; } @Override diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/InternalNested.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/InternalNested.java index cdceade65ad..7f10a1a8929 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/InternalNested.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/InternalNested.java @@ -19,7 +19,6 @@ package org.elasticsearch.search.aggregations.bucket.nested; import org.elasticsearch.common.io.stream.StreamInput; -import org.elasticsearch.search.aggregations.AggregationStreams; import org.elasticsearch.search.aggregations.InternalAggregations; import org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; @@ -29,36 +28,24 @@ import java.util.List; import java.util.Map; /** - * + * Result of the {@link NestedAggregator}. */ public class InternalNested extends InternalSingleBucketAggregation implements Nested { - - public static final Type TYPE = new Type("nested"); - - public static final AggregationStreams.Stream STREAM = new AggregationStreams.Stream() { - @Override - public InternalNested readResult(StreamInput in) throws IOException { - InternalNested result = new InternalNested(); - result.readFrom(in); - return result; - } - }; - - public static void registerStream() { - AggregationStreams.registerStream(STREAM, TYPE.stream()); - } - - public InternalNested() { - } - public InternalNested(String name, long docCount, InternalAggregations aggregations, List pipelineAggregators, Map metaData) { super(name, docCount, aggregations, pipelineAggregators, metaData); } + /** + * Read from a stream. + */ + public InternalNested(StreamInput in) throws IOException { + super(in); + } + @Override - public Type type() { - return TYPE; + public String getWriteableName() { + return NestedAggregationBuilder.NAME; } @Override diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/InternalReverseNested.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/InternalReverseNested.java index 60d4920e177..4eedc6a3530 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/InternalReverseNested.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/InternalReverseNested.java @@ -19,7 +19,6 @@ package org.elasticsearch.search.aggregations.bucket.nested; import org.elasticsearch.common.io.stream.StreamInput; -import org.elasticsearch.search.aggregations.AggregationStreams; import org.elasticsearch.search.aggregations.InternalAggregations; import org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; @@ -29,36 +28,24 @@ import java.util.List; import java.util.Map; /** - * + * Result of the {@link ReverseNestedAggregator}. */ public class InternalReverseNested extends InternalSingleBucketAggregation implements ReverseNested { - - public static final Type TYPE = new Type("reverse_nested"); - - public static final AggregationStreams.Stream STREAM = new AggregationStreams.Stream() { - @Override - public InternalReverseNested readResult(StreamInput in) throws IOException { - InternalReverseNested result = new InternalReverseNested(); - result.readFrom(in); - return result; - } - }; - - public static void registerStream() { - AggregationStreams.registerStream(STREAM, TYPE.stream()); - } - - public InternalReverseNested() { - } - public InternalReverseNested(String name, long docCount, InternalAggregations aggregations, List pipelineAggregators, Map metaData) { super(name, docCount, aggregations, pipelineAggregators, metaData); } + /** + * Read from a stream. + */ + public InternalReverseNested(StreamInput in) throws IOException { + super(in); + } + @Override - public Type type() { - return TYPE; + public String getWriteableName() { + return ReverseNestedAggregationBuilder.NAME; } @Override diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java index 9cde938fb4f..dc47cc09578 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -35,7 +36,8 @@ import java.io.IOException; import java.util.Objects; public class NestedAggregationBuilder extends AbstractAggregationBuilder { - public static final String NAME = InternalNested.TYPE.name(); + public static final String NAME = "nested"; + private static final Type TYPE = new Type(NAME); public static final ParseField AGGREGATION_FIELD_NAME = new ParseField(NAME); private final String path; @@ -48,7 +50,7 @@ public class NestedAggregationBuilder extends AbstractAggregationBuilder { - public static final String NAME = InternalReverseNested.TYPE.name(); + public static final String NAME = "reverse_nested"; + private static final Type TYPE = new Type(NAME); public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME); private String path; public ReverseNestedAggregationBuilder(String name) { - super(name, InternalReverseNested.TYPE); + super(name, TYPE); } /** * Read from a stream. */ public ReverseNestedAggregationBuilder(StreamInput in) throws IOException { - super(in, InternalReverseNested.TYPE); + super(in, TYPE); path = in.readOptionalString(); }