parent
44badf58b8
commit
3269c84c7a
|
@ -1,77 +0,0 @@
|
||||||
/*
|
|
||||||
* Licensed to Elasticsearch under one or more contributor
|
|
||||||
* license agreements. See the NOTICE file distributed with
|
|
||||||
* this work for additional information regarding copyright
|
|
||||||
* ownership. Elasticsearch licenses this file to you under
|
|
||||||
* the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
* not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.elasticsearch.search.aggregations.bucket;
|
|
||||||
|
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
|
||||||
import org.elasticsearch.common.io.stream.Streamable;
|
|
||||||
import org.elasticsearch.search.DocValueFormat;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class BucketStreamContext implements Streamable {
|
|
||||||
|
|
||||||
private DocValueFormat format;
|
|
||||||
private boolean keyed;
|
|
||||||
private Map<String, Object> attributes;
|
|
||||||
|
|
||||||
public BucketStreamContext() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public void format(DocValueFormat format) {
|
|
||||||
this.format = format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DocValueFormat format() {
|
|
||||||
return format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void keyed(boolean keyed) {
|
|
||||||
this.keyed = keyed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean keyed() {
|
|
||||||
return keyed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void attributes(Map<String, Object> attributes) {
|
|
||||||
this.attributes = attributes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Object> attributes() {
|
|
||||||
return attributes;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void readFrom(StreamInput in) throws IOException {
|
|
||||||
format = in.readNamedWriteable(DocValueFormat.class);
|
|
||||||
keyed = in.readBoolean();
|
|
||||||
attributes = in.readMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void writeTo(StreamOutput out) throws IOException {
|
|
||||||
out.writeNamedWriteable(format);
|
|
||||||
out.writeBoolean(keyed);
|
|
||||||
out.writeMap(attributes);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,67 +0,0 @@
|
||||||
/*
|
|
||||||
* Licensed to Elasticsearch under one or more contributor
|
|
||||||
* license agreements. See the NOTICE file distributed with
|
|
||||||
* this work for additional information regarding copyright
|
|
||||||
* ownership. Elasticsearch licenses this file to you under
|
|
||||||
* the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
* not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.elasticsearch.search.aggregations.bucket;
|
|
||||||
|
|
||||||
import org.elasticsearch.common.bytes.BytesReference;
|
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static java.util.Collections.emptyMap;
|
|
||||||
import static java.util.Collections.unmodifiableMap;
|
|
||||||
|
|
||||||
public class BucketStreams {
|
|
||||||
private static Map<BytesReference, Stream> streams = emptyMap();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A stream that knows how to read a bucket from the input.
|
|
||||||
*/
|
|
||||||
public interface Stream<B extends MultiBucketsAggregation.Bucket> {
|
|
||||||
B readResult(StreamInput in, BucketStreamContext context) throws IOException;
|
|
||||||
BucketStreamContext getBucketStreamContext(B bucket);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers the given stream and associate it with the given types.
|
|
||||||
*
|
|
||||||
* @param stream The streams to register
|
|
||||||
* @param types The types associated with the streams
|
|
||||||
*/
|
|
||||||
public static synchronized void registerStream(Stream stream, BytesReference... types) {
|
|
||||||
Map<BytesReference, Stream> newStreams = new HashMap<>(streams);
|
|
||||||
for (BytesReference type : types) {
|
|
||||||
newStreams.put(type, stream);
|
|
||||||
}
|
|
||||||
streams = unmodifiableMap(newStreams);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the stream that is registered for the given type
|
|
||||||
*
|
|
||||||
* @param type The given type
|
|
||||||
* @return The associated stream
|
|
||||||
*/
|
|
||||||
public static Stream stream(BytesReference type) {
|
|
||||||
return streams.get(type);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -18,8 +18,8 @@
|
||||||
*/
|
*/
|
||||||
package org.elasticsearch.search.aggregations.bucket.geogrid;
|
package org.elasticsearch.search.aggregations.bucket.geogrid;
|
||||||
|
|
||||||
import org.elasticsearch.common.geo.GeoHashUtils;
|
|
||||||
import org.apache.lucene.util.PriorityQueue;
|
import org.apache.lucene.util.PriorityQueue;
|
||||||
|
import org.elasticsearch.common.geo.GeoHashUtils;
|
||||||
import org.elasticsearch.common.geo.GeoPoint;
|
import org.elasticsearch.common.geo.GeoPoint;
|
||||||
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;
|
||||||
|
@ -30,8 +30,6 @@ import org.elasticsearch.search.aggregations.Aggregations;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregation;
|
import org.elasticsearch.search.aggregations.InternalAggregation;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation;
|
import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -60,25 +58,8 @@ public class InternalGeoHashGrid extends InternalMultiBucketAggregation<Internal
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
public static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket bucket = new Bucket();
|
|
||||||
bucket.readFrom(in);
|
|
||||||
return bucket;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStreams() {
|
public static void registerStreams() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -31,8 +31,6 @@ import org.elasticsearch.search.aggregations.Aggregations;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregation;
|
import org.elasticsearch.search.aggregations.InternalAggregation;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation;
|
import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
|
|
||||||
|
@ -64,31 +62,9 @@ public class InternalHistogram<B extends InternalHistogram.Bucket> extends Inter
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Factory<?> factory = (Factory<?>) context.attributes().get("factory");
|
|
||||||
if (factory == null) {
|
|
||||||
throw new IllegalStateException("No factory found for histogram buckets");
|
|
||||||
}
|
|
||||||
Bucket histogram = new Bucket(context.keyed(), context.format(), factory);
|
|
||||||
histogram.readFrom(in);
|
|
||||||
return histogram;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
context.format(bucket.format);
|
|
||||||
context.keyed(bucket.keyed);
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStream() {
|
public static void registerStream() {
|
||||||
|
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Bucket extends InternalMultiBucketAggregation.InternalBucket implements Histogram.Bucket {
|
public static class Bucket extends InternalMultiBucketAggregation.InternalBucket implements Histogram.Bucket {
|
||||||
|
|
|
@ -18,11 +18,6 @@
|
||||||
*/
|
*/
|
||||||
package org.elasticsearch.search.aggregations.bucket.range;
|
package org.elasticsearch.search.aggregations.bucket.range;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.apache.lucene.util.BytesRef;
|
import org.apache.lucene.util.BytesRef;
|
||||||
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;
|
||||||
|
@ -33,10 +28,13 @@ import org.elasticsearch.search.aggregations.Aggregations;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregation;
|
import org.elasticsearch.search.aggregations.InternalAggregation;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation;
|
import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/** A range aggregation for data that is encoded in doc values using a binary representation. */
|
/** A range aggregation for data that is encoded in doc values using a binary representation. */
|
||||||
public final class InternalBinaryRange
|
public final class InternalBinaryRange
|
||||||
extends InternalMultiBucketAggregation<InternalBinaryRange, InternalBinaryRange.Bucket>
|
extends InternalMultiBucketAggregation<InternalBinaryRange, InternalBinaryRange.Bucket>
|
||||||
|
@ -53,26 +51,8 @@ public final class InternalBinaryRange
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket bucket = new Bucket(context.format(), context.keyed());
|
|
||||||
bucket.readFrom(in);
|
|
||||||
return bucket;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
context.format(bucket.format);
|
|
||||||
context.keyed(bucket.keyed);
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStream() {
|
public static void registerStream() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Bucket extends InternalMultiBucketAggregation.InternalBucket implements Range.Bucket {
|
public static class Bucket extends InternalMultiBucketAggregation.InternalBucket implements Range.Bucket {
|
||||||
|
|
|
@ -27,8 +27,6 @@ import org.elasticsearch.search.aggregations.Aggregations;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregation;
|
import org.elasticsearch.search.aggregations.InternalAggregation;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation;
|
import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
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;
|
||||||
|
@ -57,26 +55,8 @@ public class InternalRange<B extends InternalRange.Bucket, R extends InternalRan
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket buckets = new Bucket(context.keyed(), context.format());
|
|
||||||
buckets.readFrom(in);
|
|
||||||
return buckets;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
context.format(bucket.format);
|
|
||||||
context.keyed(bucket.keyed);
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStream() {
|
public static void registerStream() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Bucket extends InternalMultiBucketAggregation.InternalBucket implements Range.Bucket {
|
public static class Bucket extends InternalMultiBucketAggregation.InternalBucket implements Range.Bucket {
|
||||||
|
|
|
@ -23,8 +23,6 @@ import org.elasticsearch.search.DocValueFormat;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
import org.elasticsearch.search.aggregations.AggregationStreams;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregation;
|
import org.elasticsearch.search.aggregations.InternalAggregation;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.range.InternalRange;
|
import org.elasticsearch.search.aggregations.bucket.range.InternalRange;
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
|
@ -51,26 +49,8 @@ public class InternalDateRange extends InternalRange<InternalDateRange.Bucket, I
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket buckets = new Bucket(context.keyed(), context.format());
|
|
||||||
buckets.readFrom(in);
|
|
||||||
return buckets;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
context.format(bucket.format());
|
|
||||||
context.keyed(bucket.keyed());
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStream() {
|
public static void registerStream() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Factory FACTORY = new Factory();
|
public static final Factory FACTORY = new Factory();
|
||||||
|
|
|
@ -23,8 +23,6 @@ import org.elasticsearch.search.DocValueFormat;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
import org.elasticsearch.search.aggregations.AggregationStreams;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregation;
|
import org.elasticsearch.search.aggregations.InternalAggregation;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.range.InternalRange;
|
import org.elasticsearch.search.aggregations.bucket.range.InternalRange;
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
import org.elasticsearch.search.aggregations.support.ValueType;
|
import org.elasticsearch.search.aggregations.support.ValueType;
|
||||||
|
@ -50,26 +48,8 @@ public class InternalGeoDistance extends InternalRange<InternalGeoDistance.Bucke
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket buckets = new Bucket(context.keyed());
|
|
||||||
buckets.readFrom(in);
|
|
||||||
return buckets;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
context.format(DocValueFormat.RAW);
|
|
||||||
context.keyed(bucket.keyed());
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStream() {
|
public static void registerStream() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Factory FACTORY = new Factory();
|
public static final Factory FACTORY = new Factory();
|
||||||
|
|
|
@ -24,17 +24,13 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.search.DocValueFormat;
|
import org.elasticsearch.search.DocValueFormat;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
import org.elasticsearch.search.aggregations.AggregationStreams;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic;
|
import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic;
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -52,30 +48,8 @@ public class SignificantLongTerms extends InternalSignificantTerms<SignificantLo
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket buckets = new Bucket((long) context.attributes().get("subsetSize"), (long) context.attributes().get("supersetSize"),
|
|
||||||
context.format());
|
|
||||||
buckets.readFrom(in);
|
|
||||||
return buckets;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
Map<String, Object> attributes = new HashMap<>();
|
|
||||||
attributes.put("subsetSize", bucket.subsetSize);
|
|
||||||
attributes.put("supersetSize", bucket.supersetSize);
|
|
||||||
context.attributes(attributes);
|
|
||||||
context.format(bucket.format);
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStreams() {
|
public static void registerStreams() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Bucket extends InternalSignificantTerms.Bucket {
|
static class Bucket extends InternalSignificantTerms.Bucket {
|
||||||
|
|
|
@ -26,14 +26,11 @@ import org.elasticsearch.search.DocValueFormat;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
import org.elasticsearch.search.aggregations.AggregationStreams;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregation;
|
import org.elasticsearch.search.aggregations.InternalAggregation;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic;
|
import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic;
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -53,29 +50,8 @@ public class SignificantStringTerms extends InternalSignificantTerms<Significant
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket buckets = new Bucket((long) context.attributes().get("subsetSize"),
|
|
||||||
(long) context.attributes().get("supersetSize"), context.format());
|
|
||||||
buckets.readFrom(in);
|
|
||||||
return buckets;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
Map<String, Object> attributes = new HashMap<>();
|
|
||||||
attributes.put("subsetSize", bucket.subsetSize);
|
|
||||||
attributes.put("supersetSize", bucket.supersetSize);
|
|
||||||
context.attributes(attributes);
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStream() {
|
public static void registerStream() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerStreams() {
|
public static void registerStreams() {
|
||||||
|
|
|
@ -24,13 +24,10 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.search.DocValueFormat;
|
import org.elasticsearch.search.DocValueFormat;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
import org.elasticsearch.search.aggregations.AggregationStreams;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -50,28 +47,8 @@ public class DoubleTerms extends InternalTerms<DoubleTerms, DoubleTerms.Bucket>
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket buckets = new Bucket(context.format(), (boolean) context.attributes().get("showDocCountError"));
|
|
||||||
buckets.readFrom(in);
|
|
||||||
return buckets;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
Map<String, Object> attributes = new HashMap<>();
|
|
||||||
attributes.put("showDocCountError", bucket.showDocCountError);
|
|
||||||
context.attributes(attributes);
|
|
||||||
context.format(bucket.format);
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStreams() {
|
public static void registerStreams() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Bucket extends InternalTerms.Bucket {
|
static class Bucket extends InternalTerms.Bucket {
|
||||||
|
|
|
@ -24,13 +24,10 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.search.DocValueFormat;
|
import org.elasticsearch.search.DocValueFormat;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
import org.elasticsearch.search.aggregations.AggregationStreams;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -50,28 +47,8 @@ public class LongTerms extends InternalTerms<LongTerms, LongTerms.Bucket> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket buckets = new Bucket(context.format(), (boolean) context.attributes().get("showDocCountError"));
|
|
||||||
buckets.readFrom(in);
|
|
||||||
return buckets;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
Map<String, Object> attributes = new HashMap<>();
|
|
||||||
attributes.put("showDocCountError", bucket.showDocCountError);
|
|
||||||
context.attributes(attributes);
|
|
||||||
context.format(bucket.format);
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStreams() {
|
public static void registerStreams() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Bucket extends InternalTerms.Bucket {
|
static class Bucket extends InternalTerms.Bucket {
|
||||||
|
|
|
@ -26,13 +26,10 @@ import org.elasticsearch.search.DocValueFormat;
|
||||||
import org.elasticsearch.search.aggregations.AggregationStreams;
|
import org.elasticsearch.search.aggregations.AggregationStreams;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregation;
|
import org.elasticsearch.search.aggregations.InternalAggregation;
|
||||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreamContext;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.BucketStreams;
|
|
||||||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -52,29 +49,8 @@ public class StringTerms extends InternalTerms<StringTerms, StringTerms.Bucket>
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final BucketStreams.Stream<Bucket> BUCKET_STREAM = new BucketStreams.Stream<Bucket>() {
|
|
||||||
@Override
|
|
||||||
public Bucket readResult(StreamInput in, BucketStreamContext context) throws IOException {
|
|
||||||
Bucket buckets = new Bucket(
|
|
||||||
context.format(),
|
|
||||||
(boolean) context.attributes().get("showDocCountError"));
|
|
||||||
buckets.readFrom(in);
|
|
||||||
return buckets;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BucketStreamContext getBucketStreamContext(Bucket bucket) {
|
|
||||||
BucketStreamContext context = new BucketStreamContext();
|
|
||||||
Map<String, Object> attributes = new HashMap<>();
|
|
||||||
attributes.put("showDocCountError", bucket.showDocCountError);
|
|
||||||
context.attributes(attributes);
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static void registerStreams() {
|
public static void registerStreams() {
|
||||||
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
AggregationStreams.registerStream(STREAM, TYPE.stream());
|
||||||
BucketStreams.registerStream(BUCKET_STREAM, TYPE.stream());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Bucket extends InternalTerms.Bucket {
|
public static class Bucket extends InternalTerms.Bucket {
|
||||||
|
|
Loading…
Reference in New Issue