diff options
author | Christoph Büscher <christoph@elastic.co> | 2017-04-28 16:42:55 +0200 |
---|---|---|
committer | Christoph Büscher <christoph@elastic.co> | 2017-04-28 16:42:55 +0200 |
commit | db07a3471879de0dbd6133ce2750ab608690a85c (patch) | |
tree | 1da066fa01a05f2010baae72576e7e9f74ba50f2 /core/src/main/java/org/elasticsearch/search/aggregations/metrics | |
parent | 0d5cca8feb94850d1a6651b95bc09eccf8326c27 (diff) | |
parent | 16a7cbe4635747909f4112eb4e162fb40cef9da6 (diff) |
Merge branch 'master' into feature/client_aggs_parsing
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/aggregations/metrics')
-rw-r--r-- | core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/InternalGeoCentroid.java | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/InternalGeoCentroid.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/InternalGeoCentroid.java index da69115ac6..c5578813c8 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/InternalGeoCentroid.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/InternalGeoCentroid.java @@ -20,6 +20,7 @@ package org.elasticsearch.search.aggregations.metrics.geocentroid; import org.apache.lucene.geo.GeoEncodingUtils; +import org.elasticsearch.common.ParseField; import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; @@ -36,8 +37,8 @@ import java.util.Objects; * Serialization and merge logic for {@link GeoCentroidAggregator}. */ public class InternalGeoCentroid extends InternalAggregation implements GeoCentroid { - protected final GeoPoint centroid; - protected final long count; + private final GeoPoint centroid; + private final long count; public static long encodeLatLon(double lat, double lon) { return (Integer.toUnsignedLong(GeoEncodingUtils.encodeLatitude(lat)) << 32) | Integer.toUnsignedLong(GeoEncodingUtils.encodeLongitude(lon)); @@ -136,6 +137,8 @@ public class InternalGeoCentroid extends InternalAggregation implements GeoCentr return centroid.lat(); case "lon": return centroid.lon(); + case "count": + return count; default: throw new IllegalArgumentException("Found unknown path element [" + coordinate + "] in [" + getName() + "]"); } @@ -145,14 +148,27 @@ public class InternalGeoCentroid extends InternalAggregation implements GeoCentr } static class Fields { - static final String CENTROID = "location"; + static final ParseField CENTROID = new ParseField("location"); + static final ParseField CENTROID_LAT = new ParseField("lat"); + static final ParseField CENTROID_LON = new ParseField("lon"); + static final ParseField COUNT = new ParseField("count"); } @Override public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException { + return renderXContent(builder, params, centroid, count); + } + + static XContentBuilder renderXContent(XContentBuilder builder, Params params, GeoPoint centroid, long count) throws IOException { if (centroid != null) { - builder.startObject(Fields.CENTROID).field("lat", centroid.lat()).field("lon", centroid.lon()).endObject(); + builder.startObject(Fields.CENTROID.getPreferredName()); + { + builder.field(Fields.CENTROID_LAT.getPreferredName(), centroid.lat()); + builder.field(Fields.CENTROID_LON.getPreferredName(), centroid.lon()); + } + builder.endObject(); } + builder.field(Fields.COUNT.getPreferredName(), count); return builder; } |