mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-25 22:36:20 +00:00
Migrate nested, reverse_nested, and children aggregations to NamedWriteable
Just another step in removing AggregationStreams in favor of NamedWriteable.
This commit is contained in:
parent
06bd896ce0
commit
f2978f41b9
@ -544,10 +544,10 @@ public class SearchModule extends AbstractModule {
|
|||||||
GeoDistanceAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalGeoDistance::new));
|
GeoDistanceAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalGeoDistance::new));
|
||||||
registerAggregation(new AggregationSpec(GeoGridAggregationBuilder::new, new GeoHashGridParser(),
|
registerAggregation(new AggregationSpec(GeoGridAggregationBuilder::new, new GeoHashGridParser(),
|
||||||
GeoGridAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalGeoHashGrid::new));
|
GeoGridAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalGeoHashGrid::new));
|
||||||
registerAggregation(NestedAggregationBuilder::new, NestedAggregationBuilder::parse,
|
registerAggregation(new AggregationSpec(NestedAggregationBuilder::new, NestedAggregationBuilder::parse,
|
||||||
NestedAggregationBuilder.AGGREGATION_FIELD_NAME);
|
NestedAggregationBuilder.AGGREGATION_FIELD_NAME).addResultReader(InternalNested::new));
|
||||||
registerAggregation(ReverseNestedAggregationBuilder::new, ReverseNestedAggregationBuilder::parse,
|
registerAggregation(new AggregationSpec(ReverseNestedAggregationBuilder::new, ReverseNestedAggregationBuilder::parse,
|
||||||
ReverseNestedAggregationBuilder.AGGREGATION_NAME_FIELD);
|
ReverseNestedAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalReverseNested::new));
|
||||||
registerAggregation(TopHitsAggregationBuilder::new, TopHitsAggregationBuilder::parse,
|
registerAggregation(TopHitsAggregationBuilder::new, TopHitsAggregationBuilder::parse,
|
||||||
TopHitsAggregationBuilder.AGGREGATION_NAME_FIELD);
|
TopHitsAggregationBuilder.AGGREGATION_NAME_FIELD);
|
||||||
registerAggregation(new AggregationSpec(GeoBoundsAggregationBuilder::new, new GeoBoundsParser(),
|
registerAggregation(new AggregationSpec(GeoBoundsAggregationBuilder::new, new GeoBoundsParser(),
|
||||||
@ -556,8 +556,8 @@ public class SearchModule extends AbstractModule {
|
|||||||
GeoCentroidAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalGeoCentroid::new));
|
GeoCentroidAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalGeoCentroid::new));
|
||||||
registerAggregation(new AggregationSpec(ScriptedMetricAggregationBuilder::new, ScriptedMetricAggregationBuilder::parse,
|
registerAggregation(new AggregationSpec(ScriptedMetricAggregationBuilder::new, ScriptedMetricAggregationBuilder::parse,
|
||||||
ScriptedMetricAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalScriptedMetric::new));
|
ScriptedMetricAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalScriptedMetric::new));
|
||||||
registerAggregation(ChildrenAggregationBuilder::new, ChildrenAggregationBuilder::parse,
|
registerAggregation(new AggregationSpec(ChildrenAggregationBuilder::new, ChildrenAggregationBuilder::parse,
|
||||||
ChildrenAggregationBuilder.AGGREGATION_NAME_FIELD);
|
ChildrenAggregationBuilder.AGGREGATION_NAME_FIELD).addResultReader(InternalChildren::new));
|
||||||
|
|
||||||
registerPipelineAggregation(DerivativePipelineAggregationBuilder::new, DerivativePipelineAggregationBuilder::parse,
|
registerPipelineAggregation(DerivativePipelineAggregationBuilder::new, DerivativePipelineAggregationBuilder::parse,
|
||||||
DerivativePipelineAggregationBuilder.AGGREGATION_NAME_FIELD);
|
DerivativePipelineAggregationBuilder.AGGREGATION_NAME_FIELD);
|
||||||
@ -824,10 +824,7 @@ public class SearchModule extends AbstractModule {
|
|||||||
// buckets
|
// buckets
|
||||||
InternalBinaryRange.registerStream();
|
InternalBinaryRange.registerStream();
|
||||||
InternalHistogram.registerStream();
|
InternalHistogram.registerStream();
|
||||||
InternalNested.registerStream();
|
|
||||||
InternalReverseNested.registerStream();
|
|
||||||
InternalTopHits.registerStreams();
|
InternalTopHits.registerStreams();
|
||||||
InternalChildren.registerStream();
|
|
||||||
|
|
||||||
// Pipeline Aggregations
|
// Pipeline Aggregations
|
||||||
DerivativePipelineAggregator.registerStreams();
|
DerivativePipelineAggregator.registerStreams();
|
||||||
|
@ -31,6 +31,7 @@ import org.elasticsearch.index.mapper.DocumentMapper;
|
|||||||
import org.elasticsearch.index.mapper.internal.ParentFieldMapper;
|
import org.elasticsearch.index.mapper.internal.ParentFieldMapper;
|
||||||
import org.elasticsearch.index.query.QueryParseContext;
|
import org.elasticsearch.index.query.QueryParseContext;
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
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.AggregatorFactory;
|
||||||
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
||||||
import org.elasticsearch.search.aggregations.support.FieldContext;
|
import org.elasticsearch.search.aggregations.support.FieldContext;
|
||||||
@ -45,7 +46,8 @@ import java.io.IOException;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ChildrenAggregationBuilder extends ValuesSourceAggregationBuilder<ParentChild, ChildrenAggregationBuilder> {
|
public class ChildrenAggregationBuilder extends ValuesSourceAggregationBuilder<ParentChild, ChildrenAggregationBuilder> {
|
||||||
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);
|
public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME);
|
||||||
|
|
||||||
private String parentType;
|
private String parentType;
|
||||||
@ -60,7 +62,7 @@ public class ChildrenAggregationBuilder extends ValuesSourceAggregationBuilder<P
|
|||||||
* the type of children documents
|
* the type of children documents
|
||||||
*/
|
*/
|
||||||
public ChildrenAggregationBuilder(String name, String childType) {
|
public ChildrenAggregationBuilder(String name, String childType) {
|
||||||
super(name, InternalChildren.TYPE, ValuesSourceType.BYTES, ValueType.STRING);
|
super(name, TYPE, ValuesSourceType.BYTES, ValueType.STRING);
|
||||||
if (childType == null) {
|
if (childType == null) {
|
||||||
throw new IllegalArgumentException("[childType] must not be null: [" + name + "]");
|
throw new IllegalArgumentException("[childType] must not be null: [" + name + "]");
|
||||||
}
|
}
|
||||||
@ -71,7 +73,7 @@ public class ChildrenAggregationBuilder extends ValuesSourceAggregationBuilder<P
|
|||||||
* Read from a stream.
|
* Read from a stream.
|
||||||
*/
|
*/
|
||||||
public ChildrenAggregationBuilder(StreamInput in) throws IOException {
|
public ChildrenAggregationBuilder(StreamInput in) throws IOException {
|
||||||
super(in, InternalChildren.TYPE, ValuesSourceType.BYTES, ValueType.STRING);
|
super(in, TYPE, ValuesSourceType.BYTES, ValueType.STRING);
|
||||||
childType = in.readString();
|
childType = in.readString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
package org.elasticsearch.search.aggregations.bucket.children;
|
package org.elasticsearch.search.aggregations.bucket.children;
|
||||||
|
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation;
|
import org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation;
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
@ -30,35 +29,24 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Results of the {@link ParentToChildrenAggregator}.
|
||||||
*/
|
*/
|
||||||
public class InternalChildren extends InternalSingleBucketAggregation implements Children {
|
public class InternalChildren extends InternalSingleBucketAggregation implements Children {
|
||||||
|
|
||||||
public static final Type TYPE = new Type("children");
|
|
||||||
|
|
||||||
public static final AggregationStreams.Stream STREAM = new AggregationStreams.Stream() {
|
|
||||||
@Override
|
|
||||||
public InternalChildren readResult(StreamInput in) throws IOException {
|
|
||||||
InternalChildren result = new InternalChildren();
|
|
||||||
result.readFrom(in);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStream() {
|
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
|
||||||
}
|
|
||||||
|
|
||||||
public InternalChildren() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public InternalChildren(String name, long docCount, InternalAggregations aggregations, List<PipelineAggregator> pipelineAggregators,
|
public InternalChildren(String name, long docCount, InternalAggregations aggregations, List<PipelineAggregator> pipelineAggregators,
|
||||||
Map<String, Object> metaData) {
|
Map<String, Object> metaData) {
|
||||||
super(name, docCount, aggregations, pipelineAggregators, metaData);
|
super(name, docCount, aggregations, pipelineAggregators, metaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read from a stream.
|
||||||
|
*/
|
||||||
|
public InternalChildren(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Type type() {
|
public String getWriteableName() {
|
||||||
return TYPE;
|
return ChildrenAggregationBuilder.NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
package org.elasticsearch.search.aggregations.bucket.nested;
|
package org.elasticsearch.search.aggregations.bucket.nested;
|
||||||
|
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation;
|
import org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation;
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
@ -29,36 +28,24 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* Result of the {@link NestedAggregator}.
|
||||||
*/
|
*/
|
||||||
public class InternalNested extends InternalSingleBucketAggregation implements Nested {
|
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<PipelineAggregator> pipelineAggregators,
|
public InternalNested(String name, long docCount, InternalAggregations aggregations, List<PipelineAggregator> pipelineAggregators,
|
||||||
Map<String, Object> metaData) {
|
Map<String, Object> metaData) {
|
||||||
super(name, docCount, aggregations, pipelineAggregators, metaData);
|
super(name, docCount, aggregations, pipelineAggregators, metaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read from a stream.
|
||||||
|
*/
|
||||||
|
public InternalNested(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Type type() {
|
public String getWriteableName() {
|
||||||
return TYPE;
|
return NestedAggregationBuilder.NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
package org.elasticsearch.search.aggregations.bucket.nested;
|
package org.elasticsearch.search.aggregations.bucket.nested;
|
||||||
|
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation;
|
import org.elasticsearch.search.aggregations.bucket.InternalSingleBucketAggregation;
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
@ -29,36 +28,24 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* Result of the {@link ReverseNestedAggregator}.
|
||||||
*/
|
*/
|
||||||
public class InternalReverseNested extends InternalSingleBucketAggregation implements ReverseNested {
|
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<PipelineAggregator> pipelineAggregators,
|
public InternalReverseNested(String name, long docCount, InternalAggregations aggregations, List<PipelineAggregator> pipelineAggregators,
|
||||||
Map<String, Object> metaData) {
|
Map<String, Object> metaData) {
|
||||||
super(name, docCount, aggregations, pipelineAggregators, metaData);
|
super(name, docCount, aggregations, pipelineAggregators, metaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read from a stream.
|
||||||
|
*/
|
||||||
|
public InternalReverseNested(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Type type() {
|
public String getWriteableName() {
|
||||||
return TYPE;
|
return ReverseNestedAggregationBuilder.NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -28,6 +28,7 @@ import org.elasticsearch.common.xcontent.XContentParser;
|
|||||||
import org.elasticsearch.index.query.QueryParseContext;
|
import org.elasticsearch.index.query.QueryParseContext;
|
||||||
import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
|
import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
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.AggregatorFactory;
|
||||||
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
||||||
|
|
||||||
@ -35,7 +36,8 @@ import java.io.IOException;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class NestedAggregationBuilder extends AbstractAggregationBuilder<NestedAggregationBuilder> {
|
public class NestedAggregationBuilder extends AbstractAggregationBuilder<NestedAggregationBuilder> {
|
||||||
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);
|
public static final ParseField AGGREGATION_FIELD_NAME = new ParseField(NAME);
|
||||||
|
|
||||||
private final String path;
|
private final String path;
|
||||||
@ -48,7 +50,7 @@ public class NestedAggregationBuilder extends AbstractAggregationBuilder<NestedA
|
|||||||
* match the path to a nested object in the mappings.
|
* match the path to a nested object in the mappings.
|
||||||
*/
|
*/
|
||||||
public NestedAggregationBuilder(String name, String path) {
|
public NestedAggregationBuilder(String name, String path) {
|
||||||
super(name, InternalNested.TYPE);
|
super(name, TYPE);
|
||||||
if (path == null) {
|
if (path == null) {
|
||||||
throw new IllegalArgumentException("[path] must not be null: [" + name + "]");
|
throw new IllegalArgumentException("[path] must not be null: [" + name + "]");
|
||||||
}
|
}
|
||||||
@ -59,7 +61,7 @@ public class NestedAggregationBuilder extends AbstractAggregationBuilder<NestedA
|
|||||||
* Read from a stream.
|
* Read from a stream.
|
||||||
*/
|
*/
|
||||||
public NestedAggregationBuilder(StreamInput in) throws IOException {
|
public NestedAggregationBuilder(StreamInput in) throws IOException {
|
||||||
super(in, InternalNested.TYPE);
|
super(in, TYPE);
|
||||||
path = in.readString();
|
path = in.readString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ import org.elasticsearch.common.xcontent.XContentParser;
|
|||||||
import org.elasticsearch.index.query.QueryParseContext;
|
import org.elasticsearch.index.query.QueryParseContext;
|
||||||
import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
|
import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
|
||||||
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
|
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.AggregatorFactory;
|
||||||
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
||||||
|
|
||||||
@ -35,20 +36,21 @@ import java.io.IOException;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ReverseNestedAggregationBuilder extends AbstractAggregationBuilder<ReverseNestedAggregationBuilder> {
|
public class ReverseNestedAggregationBuilder extends AbstractAggregationBuilder<ReverseNestedAggregationBuilder> {
|
||||||
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);
|
public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME);
|
||||||
|
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
public ReverseNestedAggregationBuilder(String name) {
|
public ReverseNestedAggregationBuilder(String name) {
|
||||||
super(name, InternalReverseNested.TYPE);
|
super(name, TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read from a stream.
|
* Read from a stream.
|
||||||
*/
|
*/
|
||||||
public ReverseNestedAggregationBuilder(StreamInput in) throws IOException {
|
public ReverseNestedAggregationBuilder(StreamInput in) throws IOException {
|
||||||
super(in, InternalReverseNested.TYPE);
|
super(in, TYPE);
|
||||||
path = in.readOptionalString();
|
path = in.readOptionalString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user