From 285ef0f06d607c9e1a0e954082445d5d4f346947 Mon Sep 17 00:00:00 2001 From: Colin Goodheart-Smithe Date: Fri, 9 Jan 2015 15:20:05 +0000 Subject: [PATCH] Aggregations: Clean up response API for Aggregations This change makes the response API object for Histogram Aggregations the same for all types of Histogram, and does the same for all types of Ranges. The change removes getBucketByKey() from all aggregations except filters and terms. It also reduces the methods on the Bucket class to just getKey() and getKeyAsString(). The getKey() method returns Object and the actual Type is returns will be appropriate for the type of aggregation being run. e.g. date_histogram will return a DateTime for this method and Histogram will return a Number. --- docs/reference/migration/migrate_2_0.asciidoc | 17 +- .../aggregations/AggregationBuilders.java | 5 +- .../bucket/MultiBucketsAggregation.java | 18 +- .../aggregations/bucket/filters/Filters.java | 2 - .../bucket/filters/InternalFilters.java | 14 +- .../bucket/geogrid/GeoHashGrid.java | 20 - .../bucket/geogrid/InternalGeoHashGrid.java | 51 +- .../bucket/histogram/DateHistogram.java | 95 --- .../histogram/DateHistogramBuilder.java | 4 +- .../histogram/DateHistogramInterval.java | 66 ++ .../bucket/histogram/Histogram.java | 21 - .../histogram/InternalDateHistogram.java | 33 +- .../bucket/histogram/InternalHistogram.java | 35 +- .../bucket/range/InternalRange.java | 31 +- .../aggregations/bucket/range/Range.java | 7 +- .../bucket/range/date/DateRange.java | 45 -- .../bucket/range/date/InternalDateRange.java | 12 +- .../bucket/range/geodistance/GeoDistance.java | 42 -- .../geodistance/InternalGeoDistance.java | 4 +- .../bucket/range/ipv4/IPv4Range.java | 39 -- .../bucket/range/ipv4/InternalIPv4Range.java | 8 +- .../significant/InternalSignificantTerms.java | 12 +- .../significant/SignificantLongTerms.java | 19 +- .../significant/SignificantStringTerms.java | 16 +- .../bucket/significant/SignificantTerms.java | 10 +- .../bucket/terms/DoubleTerms.java | 15 +- .../bucket/terms/DoubleTermsAggregator.java | 2 +- .../GlobalOrdinalsStringTermsAggregator.java | 10 +- .../bucket/terms/InternalTerms.java | 15 +- .../aggregations/bucket/terms/LongTerms.java | 16 +- .../bucket/terms/StringTerms.java | 21 +- .../aggregations/bucket/terms/Terms.java | 2 +- .../FieldDataFilterIntegrationTests.java | 6 +- .../PercolatorFacetsAndAggregationsTests.java | 2 +- .../search/aggregations/CombiTests.java | 7 +- .../search/aggregations/RandomTests.java | 65 +- .../aggregations/bucket/ChildrenTests.java | 17 +- .../bucket/DateHistogramOffsetTests.java | 88 ++- .../bucket/DateHistogramTests.java | 633 ++++++++++-------- .../aggregations/bucket/DateRangeTests.java | 625 ++++++++--------- .../aggregations/bucket/DoubleTermsTests.java | 12 +- .../aggregations/bucket/FilterTests.java | 2 +- .../aggregations/bucket/FiltersTests.java | 4 +- .../aggregations/bucket/GeoDistanceTests.java | 187 +++--- .../aggregations/bucket/GeoHashGridTests.java | 14 +- .../aggregations/bucket/HistogramTests.java | 116 ++-- .../aggregations/bucket/IPv4RangeTests.java | 410 ++++++------ .../aggregations/bucket/LongTermsTests.java | 6 +- .../aggregations/bucket/MinDocCountTests.java | 38 +- .../aggregations/bucket/MissingTests.java | 2 +- .../aggregations/bucket/NestedTests.java | 20 +- .../aggregations/bucket/RangeTests.java | 449 +++++++------ .../bucket/ReverseNestedTests.java | 145 ++-- .../aggregations/bucket/ShardReduceTests.java | 80 ++- .../bucket/ShardSizeTermsTests.java | 9 +- ...ficantTermsBackwardCompatibilityTests.java | 9 +- ...ignificantTermsSignificanceScoreTests.java | 32 +- .../bucket/SignificantTermsTests.java | 24 +- .../aggregations/bucket/StringTermsTests.java | 4 +- .../bucket/TermsDocCountErrorTests.java | 13 +- .../aggregations/bucket/TopHitsTests.java | 4 +- .../search/aggregations/metrics/AvgTests.java | 2 +- .../metrics/ExtendedStatsTests.java | 2 +- .../search/aggregations/metrics/MaxTests.java | 2 +- .../search/aggregations/metrics/MinTests.java | 2 +- .../metrics/PercentileRanksTests.java | 3 +- .../metrics/PercentilesTests.java | 2 +- .../metrics/ScriptedMetricTests.java | 2 +- .../aggregations/metrics/StatsTests.java | 2 +- .../search/aggregations/metrics/SumTests.java | 2 +- .../child/SimpleChildQuerySearchTests.java | 56 +- .../functionscore/FunctionScoreTests.java | 14 +- 72 files changed, 1861 insertions(+), 1958 deletions(-) delete mode 100644 src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogram.java create mode 100644 src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramInterval.java delete mode 100644 src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRange.java delete mode 100644 src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistance.java delete mode 100644 src/main/java/org/elasticsearch/search/aggregations/bucket/range/ipv4/IPv4Range.java diff --git a/docs/reference/migration/migrate_2_0.asciidoc b/docs/reference/migration/migrate_2_0.asciidoc index fef37973c2a..cad4a27fa36 100644 --- a/docs/reference/migration/migrate_2_0.asciidoc +++ b/docs/reference/migration/migrate_2_0.asciidoc @@ -11,7 +11,7 @@ if a requested index does not exist. This change brings the defaults for this AP line with the other Indices APIs. The <> options can be used on a request to change this behavior -`GetIndexRequest.features()` now returns an array of Feature Enums instrad of an array of String values. +`GetIndexRequest.features()` now returns an array of Feature Enums instead of an array of String values. The following deprecated methods have been removed: * `GetIndexRequest.addFeatures(String[])` - Please use `GetIndexRequest.addFeatures(Feature[])` instead * `GetIndexRequest.features(String[])` - Please use `GetIndexRequest.features(Feature[])` instead @@ -107,6 +107,20 @@ Some query builders have been removed or renamed: * `filtered(...)` removed. Use `filteredQuery(...)` instead. * `inQuery(...)` removed. +==== Aggregations + +The `date_histogram` aggregation now returns a `Histogram` object in the response, and the `DateHistogram` class has been removed. Similarly +the `date_range`, `ipv4_range`, and `geo_distance` aggregations all return a `Range` object in the response, and the `IPV4Range`, `DateRange`, +and `GeoDistance` classes have been removed. The motivation for this is to have a single response API for the Range and Histogram aggregations +regardless of the type of data being queried. To support this some changes were made in the `MultiBucketAggregation` interface which applies +to all bucket aggregations: + +* The `getKey()` method now returns `Object` instead of `String`. The actual object type returned depends on the type of aggregation requested +(e.g. the `date_histogram` will return a `DateTime` object for this method whereas a `histogram` will return a `Number`). +* A `getKeyAsString()` method has been added to return the String representation of the key. +* All other `getKeyAsX()` methods have been removed. +* The `getBucketAsKey(String)` methods have been removed on all aggregations except the `filters` and `terms` aggregations. + === Terms filter lookup caching The terms filter lookup mechanism does not support the `cache` option anymore @@ -132,3 +146,4 @@ primary shards. === Mappings The setting `index.mapping.allow_type_wrapper` has been removed. Documents should always be sent without the type as the root element. + diff --git a/src/main/java/org/elasticsearch/search/aggregations/AggregationBuilders.java b/src/main/java/org/elasticsearch/search/aggregations/AggregationBuilders.java index 985061059af..1019ef76298 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/AggregationBuilders.java +++ b/src/main/java/org/elasticsearch/search/aggregations/AggregationBuilders.java @@ -18,6 +18,7 @@ */ package org.elasticsearch.search.aggregations; +import org.elasticsearch.common.geo.GeoDistance; import org.elasticsearch.search.aggregations.bucket.children.Children; import org.elasticsearch.search.aggregations.bucket.children.ChildrenBuilder; import org.elasticsearch.search.aggregations.bucket.filter.Filter; @@ -28,7 +29,6 @@ import org.elasticsearch.search.aggregations.bucket.geogrid.GeoHashGrid; import org.elasticsearch.search.aggregations.bucket.geogrid.GeoHashGridBuilder; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.global.GlobalBuilder; -import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.histogram.HistogramBuilder; @@ -40,11 +40,8 @@ import org.elasticsearch.search.aggregations.bucket.nested.ReverseNested; import org.elasticsearch.search.aggregations.bucket.nested.ReverseNestedBuilder; import org.elasticsearch.search.aggregations.bucket.range.Range; import org.elasticsearch.search.aggregations.bucket.range.RangeBuilder; -import org.elasticsearch.search.aggregations.bucket.range.date.DateRange; import org.elasticsearch.search.aggregations.bucket.range.date.DateRangeBuilder; -import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistance; import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceBuilder; -import org.elasticsearch.search.aggregations.bucket.range.ipv4.IPv4Range; import org.elasticsearch.search.aggregations.bucket.range.ipv4.IPv4RangeBuilder; import org.elasticsearch.search.aggregations.bucket.significant.SignificantTerms; import org.elasticsearch.search.aggregations.bucket.significant.SignificantTermsBuilder; diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/MultiBucketsAggregation.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/MultiBucketsAggregation.java index f24c05dac24..fa6bfbe0153 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/MultiBucketsAggregation.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/MultiBucketsAggregation.java @@ -20,7 +20,6 @@ package org.elasticsearch.search.aggregations.bucket; import org.elasticsearch.common.io.stream.Streamable; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.util.Comparators; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.search.aggregations.Aggregation; @@ -28,7 +27,6 @@ import org.elasticsearch.search.aggregations.Aggregations; import org.elasticsearch.search.aggregations.HasAggregations; import org.elasticsearch.search.aggregations.support.AggregationPath; -import java.util.Collection; import java.util.List; /** @@ -44,14 +42,14 @@ public interface MultiBucketsAggregation extends Aggregation { public interface Bucket extends HasAggregations, ToXContent, Streamable { /** - * @return The key associated with the bucket as a string + * @return The key associated with the bucket */ - String getKey(); + Object getKey(); /** - * @return The key associated with the bucket as text (ideal for further streaming this instance) + * @return The key associated with the bucket as a string */ - Text getKeyAsText(); + String getKeyAsString(); /** * @return The number of documents that fall within this bucket @@ -96,12 +94,4 @@ public interface MultiBucketsAggregation extends Aggregation { * @return The buckets of this aggregation. */ List getBuckets(); - - /** - * The bucket that is associated with the given key. - * - * @param key The key of the requested bucket. - * @return The bucket - */ - B getBucketByKey(String key); } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/Filters.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/Filters.java index a5515e7538f..afa0836b840 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/Filters.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/Filters.java @@ -21,7 +21,6 @@ package org.elasticsearch.search.aggregations.bucket.filters; import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; -import java.util.Collection; import java.util.List; /** @@ -41,7 +40,6 @@ public interface Filters extends MultiBucketsAggregation { */ List getBuckets(); - @Override Bucket getBucketByKey(String key); } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/InternalFilters.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/InternalFilters.java index 23cd1a66a10..2642c99a2de 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/InternalFilters.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/InternalFilters.java @@ -20,12 +20,15 @@ package org.elasticsearch.search.aggregations.bucket.filters; import com.google.common.collect.Lists; + import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.text.StringText; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.search.aggregations.*; +import org.elasticsearch.search.aggregations.AggregationStreams; +import org.elasticsearch.search.aggregations.Aggregations; +import org.elasticsearch.search.aggregations.InternalAggregation; +import org.elasticsearch.search.aggregations.InternalAggregations; +import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation; import org.elasticsearch.search.aggregations.bucket.BucketStreamContext; import org.elasticsearch.search.aggregations.bucket.BucketStreams; @@ -91,13 +94,14 @@ public class InternalFilters extends InternalMultiBucketAggregation implements F this.keyed = keyed; } + @Override public String getKey() { return key; } @Override - public Text getKeyAsText() { - return new StringText(getKey()); + public String getKeyAsString() { + return key; } @Override diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGrid.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGrid.java index 3fbc5ead187..71ee3b14490 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGrid.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGrid.java @@ -18,11 +18,8 @@ */ package org.elasticsearch.search.aggregations.bucket.geogrid; -import org.elasticsearch.common.geo.GeoPoint; -import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; -import java.util.Collection; import java.util.List; /** @@ -36,16 +33,6 @@ public interface GeoHashGrid extends MultiBucketsAggregation { */ public static interface Bucket extends MultiBucketsAggregation.Bucket { - /** - * @return The geohash of the cell as a geo point - */ - GeoPoint getKeyAsGeoPoint(); - - /** - * @return A numeric representation of the geohash of the cell - */ - Number getKeyAsNumber(); - } /** @@ -54,11 +41,4 @@ public interface GeoHashGrid extends MultiBucketsAggregation { @Override List getBuckets(); - @Override - Bucket getBucketByKey(String key); - - Bucket getBucketByKey(Number key); - - Bucket getBucketByKey(GeoPoint key); - } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/InternalGeoHashGrid.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/InternalGeoHashGrid.java index 571e58e93c2..0d09f05694d 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/InternalGeoHashGrid.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/InternalGeoHashGrid.java @@ -23,16 +23,22 @@ import org.elasticsearch.common.geo.GeoHashUtils; import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.text.StringText; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.util.LongObjectPagedHashMap; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.search.aggregations.*; +import org.elasticsearch.search.aggregations.AggregationStreams; +import org.elasticsearch.search.aggregations.Aggregations; +import org.elasticsearch.search.aggregations.InternalAggregation; +import org.elasticsearch.search.aggregations.InternalAggregations; +import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation; import org.elasticsearch.search.aggregations.bucket.BucketStreamContext; import org.elasticsearch.search.aggregations.bucket.BucketStreams; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; /** * Represents a grid of cells where each cell's location is determined by a geohash. @@ -90,16 +96,13 @@ public class InternalGeoHashGrid extends InternalMultiBucketAggregation implemen this.geohashAsLong = geohashAsLong; } - public String getKey() { + @Override + public String getKeyAsString() { return GeoHashUtils.toString(geohashAsLong); } @Override - public Text getKeyAsText() { - return new StringText(getKey()); - } - - public GeoPoint getKeyAsGeoPoint() { + public GeoPoint getKey() { return GeoHashUtils.decode(geohashAsLong); } @@ -135,11 +138,6 @@ public class InternalGeoHashGrid extends InternalMultiBucketAggregation implemen return new Bucket(geohashAsLong, docCount, aggs); } - @Override - public Number getKeyAsNumber() { - return geohashAsLong; - } - @Override public void readFrom(StreamInput in) throws IOException { geohashAsLong = in.readLong(); @@ -157,7 +155,7 @@ public class InternalGeoHashGrid extends InternalMultiBucketAggregation implemen @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { builder.startObject(); - builder.field(CommonFields.KEY, getKeyAsText()); + builder.field(CommonFields.KEY, getKeyAsString()); builder.field(CommonFields.DOC_COUNT, docCount); aggregations.toXContentInternal(builder, params); builder.endObject(); @@ -189,27 +187,6 @@ public class InternalGeoHashGrid extends InternalMultiBucketAggregation implemen return (List) o; } - @Override - public GeoHashGrid.Bucket getBucketByKey(String geohash) { - if (bucketMap == null) { - bucketMap = new HashMap<>(buckets.size()); - for (Bucket bucket : buckets) { - bucketMap.put(bucket.getKey(), bucket); - } - } - return bucketMap.get(geohash); - } - - @Override - public GeoHashGrid.Bucket getBucketByKey(Number key) { - return getBucketByKey(GeoHashUtils.toString(key.longValue())); - } - - @Override - public GeoHashGrid.Bucket getBucketByKey(GeoPoint key) { - return getBucketByKey(key.geohash()); - } - @Override public InternalGeoHashGrid reduce(ReduceContext reduceContext) { List aggregations = reduceContext.aggregations(); diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogram.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogram.java deleted file mode 100644 index b36e82c4dcb..00000000000 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogram.java +++ /dev/null @@ -1,95 +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.histogram; - -import org.joda.time.DateTime; - -import java.util.List; - -/** - * A {@code date_histogram} aggregation. - */ -public interface DateHistogram extends Histogram { - - static interface Bucket extends Histogram.Bucket { - - /** - * @return the key as a date construct (in UTC timezone). - */ - DateTime getKeyAsDate(); - - } - - @Override - List getBuckets(); - - @Override - Bucket getBucketByKey(String key); - - @Override - Bucket getBucketByKey(Number key); - - Bucket getBucketByKey(DateTime key); - - /** - * The interval the date histogram is based on. - */ - static class Interval { - - public static final Interval SECOND = new Interval("1s"); - public static final Interval MINUTE = new Interval("1m"); - public static final Interval HOUR = new Interval("1h"); - public static final Interval DAY = new Interval("1d"); - public static final Interval WEEK = new Interval("1w"); - public static final Interval MONTH = new Interval("1M"); - public static final Interval QUARTER = new Interval("1q"); - public static final Interval YEAR = new Interval("1y"); - - public static Interval seconds(int sec) { - return new Interval(sec + "s"); - } - - public static Interval minutes(int min) { - return new Interval(min + "m"); - } - - public static Interval hours(int hours) { - return new Interval(hours + "h"); - } - - public static Interval days(int days) { - return new Interval(days + "d"); - } - - public static Interval weeks(int weeks) { - return new Interval(weeks + "w"); - } - - private final String expression; - - public Interval(String expression) { - this.expression = expression; - } - - @Override - public String toString() { - return expression; - } - } -} diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramBuilder.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramBuilder.java index 6cfd2a223a2..eba49b5a2d4 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramBuilder.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramBuilder.java @@ -63,7 +63,7 @@ public class DateHistogramBuilder extends ValuesSourceAggregationBuilder getBuckets(); - /** - * Returns a bucket by the key associated with it. - * - * @param key The key of the bucket. - * @return The bucket that is associated with the given key. - */ - Bucket getBucketByKey(String key); - - /** - * Returns a bucket by the key associated with it. - * - * @param key The key of the bucket. - * @return The bucket that is associated with the given key. - */ - Bucket getBucketByKey(Number key); - /** * A strategy defining the order in which the buckets in this histogram are ordered. diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalDateHistogram.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalDateHistogram.java index 358617a9c7c..338127e0c7d 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalDateHistogram.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalDateHistogram.java @@ -19,6 +19,7 @@ package org.elasticsearch.search.aggregations.bucket.histogram; import com.carrotsearch.hppc.ObjectObjectOpenHashMap; + import org.elasticsearch.common.Nullable; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.search.aggregations.AggregationStreams; @@ -36,7 +37,7 @@ import java.util.Map; /** * */ -public class InternalDateHistogram extends InternalHistogram implements DateHistogram { +public class InternalDateHistogram extends InternalHistogram { final static Type TYPE = new Type("date_histogram", "dhisto"); final static Factory FACTORY = new Factory(); @@ -71,7 +72,7 @@ public class InternalDateHistogram extends InternalHistogram(); - for (InternalDateHistogram.Bucket bucket : buckets) { - bucketsMap.put(bucket.getKey(), bucket); - } - } - return bucketsMap.get(key); - } - - @Override - public DateHistogram.Bucket getBucketByKey(DateTime key) { - return getBucketByKey(key.getMillis()); - } - @Override protected InternalDateHistogram.Bucket createBucket(long key, long docCount, InternalAggregations aggregations, boolean keyed, ValueFormatter formatter) { return new Bucket(key, docCount, aggregations, keyed, formatter); diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalHistogram.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalHistogram.java index b0ac9ce877e..2b49b403d2f 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalHistogram.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalHistogram.java @@ -23,16 +23,18 @@ import com.google.common.collect.Lists; import org.apache.lucene.util.CollectionUtil; import org.apache.lucene.util.PriorityQueue; -import org.elasticsearch.Version; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.rounding.Rounding; import org.elasticsearch.common.text.StringText; import org.elasticsearch.common.text.Text; -import org.elasticsearch.common.util.LongObjectPagedHashMap; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.search.aggregations.*; +import org.elasticsearch.search.aggregations.AggregationStreams; +import org.elasticsearch.search.aggregations.Aggregations; +import org.elasticsearch.search.aggregations.InternalAggregation; +import org.elasticsearch.search.aggregations.InternalAggregations; +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.support.format.ValueFormatter; @@ -110,17 +112,12 @@ public class InternalHistogram extends Inter } @Override - public String getKey() { + public String getKeyAsString() { return formatter != null ? formatter.format(key) : ValueFormatter.RAW.format(key); } @Override - public Text getKeyAsText() { - return new StringText(getKey()); - } - - @Override - public Number getKeyAsNumber() { + public Object getKey() { return key; } @@ -157,7 +154,7 @@ public class InternalHistogram extends Inter builder.field(CommonFields.KEY_AS_STRING, keyTxt); } else { if (keyed) { - builder.startObject(String.valueOf(getKeyAsNumber())); + builder.startObject(String.valueOf(getKey())); } else { builder.startObject(); } @@ -272,22 +269,6 @@ public class InternalHistogram extends Inter return buckets; } - @Override - public B getBucketByKey(String key) { - return getBucketByKey(Long.valueOf(key)); - } - - @Override - public B getBucketByKey(Number key) { - if (bucketsMap == null) { - bucketsMap = new LongObjectOpenHashMap<>(buckets.size()); - for (B bucket : buckets) { - bucketsMap.put(bucket.key, bucket); - } - } - return bucketsMap.get(key.longValue()); - } - protected Factory getFactory() { return FACTORY; } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java index 72ff01e9200..d436e139287 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java @@ -23,8 +23,6 @@ import com.google.common.collect.Lists; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.text.StringText; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.AggregationStreams; import org.elasticsearch.search.aggregations.Aggregations; @@ -38,7 +36,6 @@ import org.elasticsearch.search.aggregations.support.format.ValueFormatterStream import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -86,8 +83,8 @@ public class InternalRange extends InternalMulti protected transient final boolean keyed; protected transient final ValueFormatter formatter; - private double from; - private double to; + protected double from; + protected double to; private long docCount; InternalAggregations aggregations; private String key; @@ -107,21 +104,20 @@ public class InternalRange extends InternalMulti } public String getKey() { + return getKeyAsString(); + } + + public String getKeyAsString() { return key; } @Override - public Text getKeyAsText() { - return new StringText(getKey()); - } - - @Override - public Number getFrom() { + public Object getFrom() { return from; } @Override - public Number getTo() { + public Object getTo() { return to; } @@ -257,17 +253,6 @@ public class InternalRange extends InternalMulti return ranges; } - @Override - public B getBucketByKey(String key) { - if (rangeMap == null) { - rangeMap = new HashMap<>(ranges.size()); - for (Range.Bucket bucket : ranges) { - rangeMap.put(bucket.getKey(), (B) bucket); - } - } - return rangeMap.get(key); - } - protected Factory getFactory() { return FACTORY; } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/Range.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/Range.java index 9fd153d7dc2..60e6a5500e7 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/Range.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/Range.java @@ -36,7 +36,7 @@ public interface Range extends MultiBucketsAggregation { /** * @return The lower bound of the range */ - Number getFrom(); + Object getFrom(); /** * @return The string value for the lower bound of the range @@ -46,7 +46,7 @@ public interface Range extends MultiBucketsAggregation { /** * @return The upper bound of the range (excluding) */ - Number getTo(); + Object getTo(); /** * @return The string value for the upper bound of the range (excluding) @@ -59,7 +59,4 @@ public interface Range extends MultiBucketsAggregation { */ List getBuckets(); - @Override - Bucket getBucketByKey(String key); - } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRange.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRange.java deleted file mode 100644 index aaec2ee84bb..00000000000 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRange.java +++ /dev/null @@ -1,45 +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.range.date; - -import org.elasticsearch.search.aggregations.bucket.range.Range; -import org.joda.time.DateTime; - -import java.util.Collection; -import java.util.List; - -/** - * A range aggregation on date values. - */ -public interface DateRange extends Range { - - static interface Bucket extends Range.Bucket { - - DateTime getFromAsDate(); - - DateTime getToAsDate(); - } - - @Override - List getBuckets(); - - @Override - DateRange.Bucket getBucketByKey(String key); - -} diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/InternalDateRange.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/InternalDateRange.java index 864219e8831..785df76e824 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/InternalDateRange.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/InternalDateRange.java @@ -37,7 +37,7 @@ import java.util.Map; /** * */ -public class InternalDateRange extends InternalRange implements DateRange { +public class InternalDateRange extends InternalRange { public final static Type TYPE = new Type("date_range", "drange"); @@ -74,7 +74,7 @@ public class InternalDateRange extends InternalRange i public static final Factory FACTORY = new Factory(); - public static class Bucket extends InternalRange.Bucket implements DateRange.Bucket { + public static class Bucket extends InternalRange.Bucket { public Bucket(boolean keyed, @Nullable ValueFormatter formatter) { super(keyed, formatter); @@ -89,13 +89,13 @@ public class InternalDateRange extends InternalRange i } @Override - public DateTime getFromAsDate() { - return Double.isInfinite(getFrom().doubleValue()) ? null : new DateTime(getFrom().longValue(), DateTimeZone.UTC); + public Object getFrom() { + return Double.isInfinite(((Number) from).doubleValue()) ? null : new DateTime(((Number) from).longValue(), DateTimeZone.UTC); } @Override - public DateTime getToAsDate() { - return Double.isInfinite(getTo().doubleValue()) ? null : new DateTime(getTo().longValue(), DateTimeZone.UTC); + public Object getTo() { + return Double.isInfinite(((Number) to).doubleValue()) ? null : new DateTime(((Number) to).longValue(), DateTimeZone.UTC); } @Override diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistance.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistance.java deleted file mode 100644 index 05a53ead3ba..00000000000 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistance.java +++ /dev/null @@ -1,42 +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.range.geodistance; - -import org.elasticsearch.search.aggregations.bucket.range.Range; - -import java.util.Collection; -import java.util.List; - -/** - * An aggregation that computes ranges of geo distances. - */ -public interface GeoDistance extends Range { - - /** - * A range bucket. - */ - public static interface Bucket extends Range.Bucket { - } - - @Override - List getBuckets(); - - @Override - GeoDistance.Bucket getBucketByKey(String key); -} \ No newline at end of file diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/InternalGeoDistance.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/InternalGeoDistance.java index 777fde7037f..da2c41d5233 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/InternalGeoDistance.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/InternalGeoDistance.java @@ -35,7 +35,7 @@ import java.util.Map; /** * */ -public class InternalGeoDistance extends InternalRange implements GeoDistance { +public class InternalGeoDistance extends InternalRange { public static final Type TYPE = new Type("geo_distance", "gdist"); @@ -72,7 +72,7 @@ public class InternalGeoDistance extends InternalRange getBuckets(); - - @Override - IPv4Range.Bucket getBucketByKey(String key); -} diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ipv4/InternalIPv4Range.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ipv4/InternalIPv4Range.java index c23cdd70fd4..9b608aa42d4 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ipv4/InternalIPv4Range.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ipv4/InternalIPv4Range.java @@ -35,7 +35,7 @@ import java.util.Map; /** * */ -public class InternalIPv4Range extends InternalRange implements IPv4Range { +public class InternalIPv4Range extends InternalRange { public static final long MAX_IP = 4294967296l; @@ -73,7 +73,7 @@ public class InternalIPv4Range extends InternalRange i public static final Factory FACTORY = new Factory(); - public static class Bucket extends InternalRange.Bucket implements IPv4Range.Bucket { + public static class Bucket extends InternalRange.Bucket { public Bucket(boolean keyed) { super(keyed, ValueFormatter.IPv4); @@ -89,13 +89,13 @@ public class InternalIPv4Range extends InternalRange i @Override public String getFromAsString() { - double from = getFrom().doubleValue(); + double from = ((Number) this.from).doubleValue(); return Double.isInfinite(from) ? null : from == 0 ? null : ValueFormatter.IPv4.format(from); } @Override public String getToAsString() { - double to = getTo().doubleValue(); + double to = ((Number) this.to).doubleValue(); return Double.isInfinite(to) ? null : MAX_IP == to ? null : ValueFormatter.IPv4.format(to); } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/InternalSignificantTerms.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/InternalSignificantTerms.java index e7855c9137c..199daecf5da 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/InternalSignificantTerms.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/InternalSignificantTerms.java @@ -19,6 +19,7 @@ package org.elasticsearch.search.aggregations.bucket.significant; import com.google.common.collect.Maps; + import org.elasticsearch.common.io.stream.Streamable; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.search.aggregations.Aggregations; @@ -27,7 +28,12 @@ import org.elasticsearch.search.aggregations.InternalAggregations; import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation; import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; /** * @@ -143,7 +149,7 @@ public abstract class InternalSignificantTerms extends InternalMultiBucketAggreg if (bucketMap == null) { bucketMap = Maps.newHashMapWithExpectedSize(buckets.size()); for (Bucket bucket : buckets) { - bucketMap.put(bucket.getKey(), bucket); + bucketMap.put(bucket.getKeyAsString(), bucket); } } return bucketMap.get(term); @@ -169,7 +175,7 @@ public abstract class InternalSignificantTerms extends InternalMultiBucketAggreg List existingBuckets = buckets.get(bucket.getKey()); if (existingBuckets == null) { existingBuckets = new ArrayList<>(aggregations.size()); - buckets.put(bucket.getKey(), existingBuckets); + buckets.put(bucket.getKeyAsString(), existingBuckets); } // Adjust the buckets with the global stats representing the // total size of the pots from which the stats are drawn diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantLongTerms.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantLongTerms.java index dbd9ab3921c..c4f97942ef2 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantLongTerms.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantLongTerms.java @@ -18,12 +18,9 @@ */ package org.elasticsearch.search.aggregations.bucket.significant; -import org.elasticsearch.Version; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.text.StringText; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.AggregationStreams; import org.elasticsearch.search.aggregations.InternalAggregations; @@ -100,25 +97,25 @@ public class SignificantLongTerms extends InternalSignificantTerms { } @Override - public Text getKeyAsText() { - return new StringText(String.valueOf(term)); - } - - @Override - public Number getKeyAsNumber() { + public Object getKey() { return term; } @Override int compareTerm(SignificantTerms.Bucket other) { - return Long.compare(term, other.getKeyAsNumber().longValue()); + return Long.compare(term, ((Number) other.getKey()).longValue()); } @Override - public String getKey() { + public String getKeyAsString() { return Long.toString(term); } + @Override + public Number getKeyAsNumber() { + return term; + } + @Override Bucket newBucket(long subsetDf, long subsetSize, long supersetDf, long supersetSize, InternalAggregations aggregations) { return new Bucket(subsetDf, subsetSize, supersetDf, supersetSize, term, aggregations, formatter); diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantStringTerms.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantStringTerms.java index 2c4eebfcbac..ff4d5c94e05 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantStringTerms.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantStringTerms.java @@ -19,12 +19,8 @@ package org.elasticsearch.search.aggregations.bucket.significant; import org.apache.lucene.util.BytesRef; -import org.elasticsearch.Version; -import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.text.BytesText; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.AggregationStreams; import org.elasticsearch.search.aggregations.InternalAggregation; @@ -98,11 +94,6 @@ public class SignificantStringTerms extends InternalSignificantTerms { this.termBytes = term; } - @Override - public Text getKeyAsText() { - return new BytesText(new BytesArray(termBytes)); - } - @Override public Number getKeyAsNumber() { // this method is needed for scripted numeric aggregations @@ -115,10 +106,15 @@ public class SignificantStringTerms extends InternalSignificantTerms { } @Override - public String getKey() { + public String getKeyAsString() { return termBytes.utf8ToString(); } + @Override + public String getKey() { + return getKeyAsString(); + } + @Override Bucket newBucket(long subsetDf, long subsetSize, long supersetDf, long supersetSize, InternalAggregations aggregations) { return new Bucket(termBytes, subsetDf, subsetSize, supersetDf, supersetSize, aggregations); diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTerms.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTerms.java index ae3258a123d..ef0a4f2d469 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTerms.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTerms.java @@ -48,12 +48,12 @@ public interface SignificantTerms extends MultiBucketsAggregation, Iterable getBuckets(); - @Override - Bucket getBucketByKey(String key); + /** + * Get the bucket for the given term, or null if there is no such bucket. + */ + Bucket getBucketByKey(String term); } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTerms.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTerms.java index c493497ba08..c004f6e1e90 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTerms.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTerms.java @@ -22,8 +22,6 @@ import org.elasticsearch.Version; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.text.StringText; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.AggregationStreams; import org.elasticsearch.search.aggregations.InternalAggregations; @@ -92,13 +90,13 @@ public class DoubleTerms extends InternalTerms { } @Override - public String getKey() { + public String getKeyAsString() { return String.valueOf(term); } @Override - public Text getKeyAsText() { - return new StringText(String.valueOf(term)); + public Object getKey() { + return term; } @Override @@ -108,12 +106,7 @@ public class DoubleTerms extends InternalTerms { @Override int compareTerm(Terms.Bucket other) { - return Double.compare(term, other.getKeyAsNumber().doubleValue()); - } - - @Override - Object getKeyAsObject() { - return getKeyAsNumber(); + return Double.compare(term, ((Number) other.getKey()).doubleValue()); } @Override diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTermsAggregator.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTermsAggregator.java index 3eab05e97fb..1a2133111bf 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTermsAggregator.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTermsAggregator.java @@ -62,7 +62,7 @@ public class DoubleTermsAggregator extends LongTermsAggregator { } private static DoubleTerms.Bucket convertToDouble(InternalTerms.Bucket bucket) { - final long term = bucket.getKeyAsNumber().longValue(); + final long term = ((Number) bucket.getKey()).longValue(); final double value = NumericUtils.sortableLongToDouble(term); return new DoubleTerms.Bucket(value, bucket.docCount, bucket.aggregations, bucket.showDocCountError, bucket.docCountError, bucket.formatter); } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/GlobalOrdinalsStringTermsAggregator.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/GlobalOrdinalsStringTermsAggregator.java index cc9487fb470..7a7711bb350 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/GlobalOrdinalsStringTermsAggregator.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/GlobalOrdinalsStringTermsAggregator.java @@ -31,7 +31,6 @@ import org.elasticsearch.ExceptionsHelper; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.lease.Releasables; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.util.IntArray; import org.elasticsearch.common.util.LongHash; import org.elasticsearch.common.xcontent.XContentBuilder; @@ -221,17 +220,12 @@ public class GlobalOrdinalsStringTermsAggregator extends AbstractStringTermsAggr } @Override - public String getKey() { + public String getKeyAsString() { throw new UnsupportedOperationException(); } @Override - public Text getKeyAsText() { - throw new UnsupportedOperationException(); - } - - @Override - Object getKeyAsObject() { + public Object getKey() { throw new UnsupportedOperationException(); } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/InternalTerms.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/InternalTerms.java index 5761cf45ecf..b8b45e20ce7 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/InternalTerms.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/InternalTerms.java @@ -21,6 +21,7 @@ package org.elasticsearch.search.aggregations.bucket.terms; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; + import org.elasticsearch.ElasticsearchIllegalStateException; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.io.stream.Streamable; @@ -32,7 +33,11 @@ import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation; import org.elasticsearch.search.aggregations.bucket.terms.support.BucketPriorityQueue; import org.elasticsearch.search.aggregations.support.format.ValueFormatter; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; /** * @@ -82,8 +87,6 @@ public abstract class InternalTerms extends InternalMultiBucketAggregation imple return aggregations; } - abstract Object getKeyAsObject(); - abstract Bucket newBucket(long docCount, InternalAggregations aggs, long docCountError); public Bucket reduce(List buckets, ReduceContext context) { @@ -141,12 +144,12 @@ public abstract class InternalTerms extends InternalMultiBucketAggregation imple if (bucketMap == null) { bucketMap = Maps.newHashMapWithExpectedSize(buckets.size()); for (Bucket bucket : buckets) { - bucketMap.put(bucket.getKey(), bucket); + bucketMap.put(bucket.getKeyAsString(), bucket); } } return bucketMap.get(term); } - + public long getDocCountError() { return docCountError; } @@ -184,7 +187,7 @@ public abstract class InternalTerms extends InternalMultiBucketAggregation imple terms.docCountError = thisAggDocCountError; for (Bucket bucket : terms.buckets) { bucket.docCountError = thisAggDocCountError; - buckets.put(bucket.getKeyAsObject(), bucket); + buckets.put(bucket.getKey(), bucket); } } diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/LongTerms.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/LongTerms.java index 79415105bf8..1a7c2b4d0ee 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/LongTerms.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/LongTerms.java @@ -18,12 +18,9 @@ */ package org.elasticsearch.search.aggregations.bucket.terms; -import org.elasticsearch.Version; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.text.StringText; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.AggregationStreams; import org.elasticsearch.search.aggregations.InternalAggregations; @@ -92,13 +89,13 @@ public class LongTerms extends InternalTerms { } @Override - public String getKey() { + public String getKeyAsString() { return String.valueOf(term); } @Override - public Text getKeyAsText() { - return new StringText(String.valueOf(term)); + public Object getKey() { + return term; } @Override @@ -108,12 +105,7 @@ public class LongTerms extends InternalTerms { @Override int compareTerm(Terms.Bucket other) { - return Long.compare(term, other.getKeyAsNumber().longValue()); - } - - @Override - Object getKeyAsObject() { - return getKeyAsNumber(); + return Long.compare(term, ((Number) other.getKey()).longValue()); } @Override diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/StringTerms.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/StringTerms.java index e9cc399a9bc..7caec199df3 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/StringTerms.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/StringTerms.java @@ -19,12 +19,8 @@ package org.elasticsearch.search.aggregations.bucket.terms; import org.apache.lucene.util.BytesRef; -import org.elasticsearch.Version; -import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.text.BytesText; -import org.elasticsearch.common.text.Text; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.AggregationStreams; import org.elasticsearch.search.aggregations.InternalAggregation; @@ -92,13 +88,8 @@ public class StringTerms extends InternalTerms { } @Override - public String getKey() { - return termBytes.utf8ToString(); - } - - @Override - public Text getKeyAsText() { - return new BytesText(new BytesArray(termBytes)); + public Object getKey() { + return getKeyAsString(); } @Override @@ -108,13 +99,13 @@ public class StringTerms extends InternalTerms { } @Override - int compareTerm(Terms.Bucket other) { - return BytesRef.getUTF8SortedAsUnicodeComparator().compare(termBytes, ((Bucket) other).termBytes); + public String getKeyAsString() { + return termBytes.utf8ToString(); } @Override - Object getKeyAsObject() { - return getKeyAsText(); + int compareTerm(Terms.Bucket other) { + return BytesRef.getUTF8SortedAsUnicodeComparator().compare(termBytes, ((Bucket) other).termBytes); } @Override diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/Terms.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/Terms.java index 53ae4545504..d4cda5c810d 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/Terms.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/Terms.java @@ -67,7 +67,7 @@ public interface Terms extends MultiBucketsAggregation { public abstract Number getKeyAsNumber(); abstract int compareTerm(Terms.Bucket other); - + public abstract long getDocCountError(); } diff --git a/src/test/java/org/elasticsearch/index/fielddata/FieldDataFilterIntegrationTests.java b/src/test/java/org/elasticsearch/index/fielddata/FieldDataFilterIntegrationTests.java index 7a275efcbca..2e504a8a744 100644 --- a/src/test/java/org/elasticsearch/index/fielddata/FieldDataFilterIntegrationTests.java +++ b/src/test/java/org/elasticsearch/index/fielddata/FieldDataFilterIntegrationTests.java @@ -78,12 +78,12 @@ public class FieldDataFilterIntegrationTests extends ElasticsearchIntegrationTes Aggregations aggs = searchResponse.getAggregations(); Terms nameAgg = aggs.get("name"); assertThat(nameAgg.getBuckets().size(), Matchers.equalTo(1)); - assertThat(nameAgg.getBuckets().iterator().next().getKey(), Matchers.equalTo("bacon")); + assertThat(nameAgg.getBuckets().iterator().next().getKeyAsString(), Matchers.equalTo("bacon")); Terms notFilteredAgg = aggs.get("not_filtered"); assertThat(notFilteredAgg.getBuckets().size(), Matchers.equalTo(2)); - assertThat(notFilteredAgg.getBuckets().get(0).getKey(), Matchers.isOneOf("bacon", "bastards")); - assertThat(notFilteredAgg.getBuckets().get(1).getKey(), Matchers.isOneOf("bacon", "bastards")); + assertThat(notFilteredAgg.getBuckets().get(0).getKeyAsString(), Matchers.isOneOf("bacon", "bastards")); + assertThat(notFilteredAgg.getBuckets().get(1).getKeyAsString(), Matchers.isOneOf("bacon", "bastards")); } } diff --git a/src/test/java/org/elasticsearch/percolator/PercolatorFacetsAndAggregationsTests.java b/src/test/java/org/elasticsearch/percolator/PercolatorFacetsAndAggregationsTests.java index c69649c2bfe..263af854883 100644 --- a/src/test/java/org/elasticsearch/percolator/PercolatorFacetsAndAggregationsTests.java +++ b/src/test/java/org/elasticsearch/percolator/PercolatorFacetsAndAggregationsTests.java @@ -106,7 +106,7 @@ public class PercolatorFacetsAndAggregationsTests extends ElasticsearchIntegrati assertThat(aggregations.get(0).getName(), equalTo("a")); List buckets = new ArrayList<>(((Terms) aggregations.get(0)).getBuckets()); assertThat(buckets.size(), equalTo(1)); - assertThat(buckets.get(0).getKeyAsText().string(), equalTo("b")); + assertThat(buckets.get(0).getKeyAsString(), equalTo("b")); assertThat(buckets.get(0).getDocCount(), equalTo((long) expectedCount[i % values.length])); } } diff --git a/src/test/java/org/elasticsearch/search/aggregations/CombiTests.java b/src/test/java/org/elasticsearch/search/aggregations/CombiTests.java index 75614aa7ba4..2c19d957d8f 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/CombiTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/CombiTests.java @@ -21,6 +21,7 @@ package org.elasticsearch.search.aggregations; import com.carrotsearch.hppc.IntIntMap; import com.carrotsearch.hppc.IntIntOpenHashMap; + import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; @@ -34,7 +35,9 @@ import org.junit.Test; import java.util.Collection; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; -import static org.elasticsearch.search.aggregations.AggregationBuilders.*; +import static org.elasticsearch.search.aggregations.AggregationBuilders.histogram; +import static org.elasticsearch.search.aggregations.AggregationBuilders.missing; +import static org.elasticsearch.search.aggregations.AggregationBuilders.terms; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; @@ -101,7 +104,7 @@ public class CombiTests extends ElasticsearchIntegrationTest { Collection buckets = terms.getBuckets(); assertThat(buckets.size(), equalTo(values.size())); for (Terms.Bucket bucket : buckets) { - values.remove(bucket.getKeyAsNumber().intValue()); + values.remove(((Number) bucket.getKey()).intValue()); } assertTrue(values.isEmpty()); } diff --git a/src/test/java/org/elasticsearch/search/aggregations/RandomTests.java b/src/test/java/org/elasticsearch/search/aggregations/RandomTests.java index 2887bec4b22..c87f00bdadc 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/RandomTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/RandomTests.java @@ -21,6 +21,8 @@ package org.elasticsearch.search.aggregations; import com.carrotsearch.hppc.IntOpenHashSet; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + import org.apache.lucene.util.LuceneTestCase.Slow; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchRequestBuilder; @@ -33,17 +35,30 @@ import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.range.Range; +import org.elasticsearch.search.aggregations.bucket.range.Range.Bucket; import org.elasticsearch.search.aggregations.bucket.range.RangeBuilder; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregatorFactory; import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.elasticsearch.test.ElasticsearchIntegrationTest; +import java.util.HashMap; import java.util.List; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; -import static org.elasticsearch.search.aggregations.AggregationBuilders.*; -import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*; +import static org.elasticsearch.search.aggregations.AggregationBuilders.extendedStats; +import static org.elasticsearch.search.aggregations.AggregationBuilders.filter; +import static org.elasticsearch.search.aggregations.AggregationBuilders.histogram; +import static org.elasticsearch.search.aggregations.AggregationBuilders.max; +import static org.elasticsearch.search.aggregations.AggregationBuilders.min; +import static org.elasticsearch.search.aggregations.AggregationBuilders.percentiles; +import static org.elasticsearch.search.aggregations.AggregationBuilders.range; +import static org.elasticsearch.search.aggregations.AggregationBuilders.stats; +import static org.elasticsearch.search.aggregations.AggregationBuilders.sum; +import static org.elasticsearch.search.aggregations.AggregationBuilders.terms; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAllSuccessful; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.core.IsNull.notNullValue; @@ -124,6 +139,12 @@ public class RandomTests extends ElasticsearchIntegrationTest { SearchResponse resp = reqBuilder.execute().actionGet(); Range range = resp.getAggregations().get("range"); + List buckets = range.getBuckets(); + + HashMap bucketMap = Maps.newHashMapWithExpectedSize(buckets.size()); + for (Bucket bucket : buckets) { + bucketMap.put(bucket.getKeyAsString(), bucket); + } for (int i = 0; i < ranges.length; ++i) { @@ -137,8 +158,9 @@ public class RandomTests extends ElasticsearchIntegrationTest { } } - final Range.Bucket bucket = range.getBucketByKey(Integer.toString(i)); - assertEquals(bucket.getKey(), count, bucket.getDocCount()); + final Range.Bucket bucket = bucketMap.get(Integer.toString(i)); + assertEquals(bucket.getKeyAsString(), Integer.toString(i), bucket.getKeyAsString()); + assertEquals(bucket.getKeyAsString(), count, bucket.getDocCount()); final Filter filter = resp.getAggregations().get("filter" + i); assertThat(filter.getDocCount(), equalTo(count)); @@ -234,10 +256,10 @@ public class RandomTests extends ElasticsearchIntegrationTest { assertEquals(valuesSet.size(), stringGlobalOrdinalsTerms.getBuckets().size()); assertEquals(valuesSet.size(), stringGlobalOrdinalsDVTerms.getBuckets().size()); for (Terms.Bucket bucket : longTerms.getBuckets()) { - final Terms.Bucket doubleBucket = doubleTerms.getBucketByKey(Double.toString(Long.parseLong(bucket.getKeyAsText().string()))); - final Terms.Bucket stringMapBucket = stringMapTerms.getBucketByKey(bucket.getKeyAsText().string()); - final Terms.Bucket stringGlobalOrdinalsBucket = stringGlobalOrdinalsTerms.getBucketByKey(bucket.getKeyAsText().string()); - final Terms.Bucket stringGlobalOrdinalsDVBucket = stringGlobalOrdinalsDVTerms.getBucketByKey(bucket.getKeyAsText().string()); + final Terms.Bucket doubleBucket = doubleTerms.getBucketByKey(Double.toString(Long.parseLong(bucket.getKeyAsString()))); + final Terms.Bucket stringMapBucket = stringMapTerms.getBucketByKey(bucket.getKeyAsString()); + final Terms.Bucket stringGlobalOrdinalsBucket = stringGlobalOrdinalsTerms.getBucketByKey(bucket.getKeyAsString()); + final Terms.Bucket stringGlobalOrdinalsDVBucket = stringGlobalOrdinalsDVTerms.getBucketByKey(bucket.getKeyAsString()); assertNotNull(doubleBucket); assertNotNull(stringMapBucket); assertNotNull(stringGlobalOrdinalsBucket); @@ -288,10 +310,10 @@ public class RandomTests extends ElasticsearchIntegrationTest { Histogram histo = resp.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(terms.getBuckets().size(), equalTo(histo.getBuckets().size())); - for (Terms.Bucket bucket : terms.getBuckets()) { - final long key = bucket.getKeyAsNumber().longValue() * interval; - final Histogram.Bucket histoBucket = histo.getBucketByKey(key); - assertEquals(bucket.getDocCount(), histoBucket.getDocCount()); + for (Histogram.Bucket bucket : histo.getBuckets()) { + final double key = ((Number) bucket.getKey()).doubleValue() / interval; + final Terms.Bucket termsBucket = terms.getBucketByKey(String.valueOf(key)); + assertEquals(bucket.getDocCount(), termsBucket.getDocCount()); } } @@ -336,22 +358,23 @@ public class RandomTests extends ElasticsearchIntegrationTest { Range range = filter.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(2)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(2)); - Range.Bucket bucket = range.getBucketByKey("*-6.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("*-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getDocCount(), equalTo(value < 6 ? 1L : 0L)); Sum sum = bucket.getAggregations().get("sum"); assertEquals(value < 6 ? value : 0, sum.getValue(), 0d); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getDocCount(), equalTo(value >= 6 ? 1L : 0L)); sum = bucket.getAggregations().get("sum"); assertEquals(value >= 6 ? value : 0, sum.getValue(), 0d); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/ChildrenTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/ChildrenTests.java index ac075686a2a..967708286ee 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/ChildrenTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/ChildrenTests.java @@ -30,7 +30,12 @@ import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.ElasticsearchIntegrationTest; import org.junit.Test; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import static org.elasticsearch.index.query.QueryBuilders.hasChildQuery; import static org.elasticsearch.index.query.QueryBuilders.matchQuery; @@ -130,7 +135,7 @@ public class ChildrenTests extends ElasticsearchIntegrationTest { assertThat(categoryTerms.getBuckets().size(), equalTo(categoryToControl.size())); for (Map.Entry entry1 : categoryToControl.entrySet()) { Terms.Bucket categoryBucket = categoryTerms.getBucketByKey(entry1.getKey()); - assertThat(categoryBucket.getKey(), equalTo(entry1.getKey())); + assertThat(categoryBucket.getKeyAsString(), equalTo(entry1.getKey())); assertThat(categoryBucket.getDocCount(), equalTo((long) entry1.getValue().articleIds.size())); Children childrenBucket = categoryBucket.getAggregations().get("to_comment"); @@ -143,7 +148,7 @@ public class ChildrenTests extends ElasticsearchIntegrationTest { assertThat(commentersTerms.getBuckets().size(), equalTo(entry1.getValue().commenterToCommentId.size())); for (Map.Entry> entry2 : entry1.getValue().commenterToCommentId.entrySet()) { Terms.Bucket commentBucket = commentersTerms.getBucketByKey(entry2.getKey()); - assertThat(commentBucket.getKey(), equalTo(entry2.getKey())); + assertThat(commentBucket.getKeyAsString(), equalTo(entry2.getKey())); assertThat(commentBucket.getDocCount(), equalTo((long) entry2.getValue().size())); TopHits topHits = commentBucket.getAggregations().get("top_comments"); @@ -179,7 +184,7 @@ public class ChildrenTests extends ElasticsearchIntegrationTest { } Terms.Bucket categoryBucket = categoryTerms.getBucketByKey("a"); - assertThat(categoryBucket.getKey(), equalTo("a")); + assertThat(categoryBucket.getKeyAsString(), equalTo("a")); assertThat(categoryBucket.getDocCount(), equalTo(3l)); Children childrenBucket = categoryBucket.getAggregations().get("to_comment"); @@ -195,7 +200,7 @@ public class ChildrenTests extends ElasticsearchIntegrationTest { assertThat(topHits.getHits().getAt(1).getType(), equalTo("comment")); categoryBucket = categoryTerms.getBucketByKey("b"); - assertThat(categoryBucket.getKey(), equalTo("b")); + assertThat(categoryBucket.getKeyAsString(), equalTo("b")); assertThat(categoryBucket.getDocCount(), equalTo(2l)); childrenBucket = categoryBucket.getAggregations().get("to_comment"); @@ -207,7 +212,7 @@ public class ChildrenTests extends ElasticsearchIntegrationTest { assertThat(topHits.getHits().getAt(0).getType(), equalTo("comment")); categoryBucket = categoryTerms.getBucketByKey("c"); - assertThat(categoryBucket.getKey(), equalTo("c")); + assertThat(categoryBucket.getKeyAsString(), equalTo("c")); assertThat(categoryBucket.getDocCount(), equalTo(2l)); childrenBucket = categoryBucket.getAggregations().get("to_comment"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetTests.java index 8c508000422..beca294ae6e 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetTests.java @@ -24,21 +24,23 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.mapper.core.DateFieldMapper; -import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogram; +import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; +import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.test.ElasticsearchIntegrationTest; import org.elasticsearch.test.transport.AssertingLocalTransport; -import org.hamcrest.Matchers; import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; import org.junit.After; import org.junit.Test; import java.io.IOException; -import java.util.Collection; +import java.util.List; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery; import static org.elasticsearch.search.aggregations.AggregationBuilders.dateHistogram; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.core.IsNull.notNullValue; /** * The serialisation of pre and post offsets for the date histogram aggregation was corrected in version 1.4 to allow negative offsets and as such the @@ -81,22 +83,28 @@ public class DateHistogramOffsetTests extends ElasticsearchIntegrationTest { .addAggregation(dateHistogram("date_histo") .field("date") .preOffset("-2h") - .interval(DateHistogram.Interval.DAY) + .interval(DateHistogramInterval.DAY) .format("yyyy-MM-dd")) .execute().actionGet(); assertThat(response.getHits().getTotalHits(), equalTo(5l)); - DateHistogram histo = response.getAggregations().get("date_histo"); - Collection buckets = histo.getBuckets(); + Histogram histo = response.getAggregations().get("date_histo"); + List buckets = histo.getBuckets(); assertThat(buckets.size(), equalTo(2)); - DateHistogram.Bucket bucket = histo.getBucketByKey("2014-03-10"); - assertThat(bucket, Matchers.notNullValue()); + DateTime key = new DateTime(2014, 3, 10, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-10")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = histo.getBucketByKey("2014-03-11"); - assertThat(bucket, Matchers.notNullValue()); + key = new DateTime(2014, 3, 11, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-11")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -117,22 +125,28 @@ public class DateHistogramOffsetTests extends ElasticsearchIntegrationTest { .field("date") .preOffset("-2h") .minDocCount(0) - .interval(DateHistogram.Interval.DAY) + .interval(DateHistogramInterval.DAY) .format("yyyy-MM-dd")) .execute().actionGet(); assertThat(response.getHits().getTotalHits(), equalTo(5l)); - DateHistogram histo = response.getAggregations().get("date_histo"); - Collection buckets = histo.getBuckets(); + Histogram histo = response.getAggregations().get("date_histo"); + List buckets = histo.getBuckets(); assertThat(buckets.size(), equalTo(2)); - DateHistogram.Bucket bucket = histo.getBucketByKey("2014-03-10"); - assertThat(bucket, Matchers.notNullValue()); + DateTime key = new DateTime(2014, 3, 10, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-10")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = histo.getBucketByKey("2014-03-11"); - assertThat(bucket, Matchers.notNullValue()); + key = new DateTime(2014, 3, 11, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-11")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -152,22 +166,28 @@ public class DateHistogramOffsetTests extends ElasticsearchIntegrationTest { .addAggregation(dateHistogram("date_histo") .field("date") .postOffset("2d") - .interval(DateHistogram.Interval.DAY) + .interval(DateHistogramInterval.DAY) .format("yyyy-MM-dd")) .execute().actionGet(); assertThat(response.getHits().getTotalHits(), equalTo(5l)); - DateHistogram histo = response.getAggregations().get("date_histo"); - Collection buckets = histo.getBuckets(); + Histogram histo = response.getAggregations().get("date_histo"); + List buckets = histo.getBuckets(); assertThat(buckets.size(), equalTo(2)); - DateHistogram.Bucket bucket = histo.getBucketByKey("2014-03-13"); - assertThat(bucket, Matchers.notNullValue()); + DateTime key = new DateTime(2014, 3, 13, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-13")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(4l)); - bucket = histo.getBucketByKey("2014-03-14"); - assertThat(bucket, Matchers.notNullValue()); + key = new DateTime(2014, 3, 14, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-14")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); } @@ -188,22 +208,28 @@ public class DateHistogramOffsetTests extends ElasticsearchIntegrationTest { .field("date") .postOffset("2d") .minDocCount(0) - .interval(DateHistogram.Interval.DAY) + .interval(DateHistogramInterval.DAY) .format("yyyy-MM-dd")) .execute().actionGet(); assertThat(response.getHits().getTotalHits(), equalTo(5l)); - DateHistogram histo = response.getAggregations().get("date_histo"); - Collection buckets = histo.getBuckets(); + Histogram histo = response.getAggregations().get("date_histo"); + List buckets = histo.getBuckets(); assertThat(buckets.size(), equalTo(2)); - DateHistogram.Bucket bucket = histo.getBucketByKey("2014-03-13"); - assertThat(bucket, Matchers.notNullValue()); + DateTime key = new DateTime(2014, 3, 13, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-13")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(4l)); - bucket = histo.getBucketByKey("2014-03-14"); - assertThat(bucket, Matchers.notNullValue()); + key = new DateTime(2014, 3, 14, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-14")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); } } diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramTests.java index 8160a30901f..daa59db67c3 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramTests.java @@ -26,8 +26,9 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.mapper.core.DateFieldMapper; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogram; +import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Bucket; import org.elasticsearch.search.aggregations.metrics.max.Max; import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.elasticsearch.test.ElasticsearchIntegrationTest; @@ -41,7 +42,6 @@ import org.junit.Test; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.List; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; @@ -121,53 +121,44 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { internalCluster().wipeIndices("idx2"); } - private static DateHistogram.Bucket getBucket(DateHistogram histogram, DateTime key) { - return getBucket(histogram, key, DateFieldMapper.Defaults.DATE_TIME_FORMATTER.format()); - } - - private static DateHistogram.Bucket getBucket(DateHistogram histogram, DateTime key, String format) { - if (randomBoolean()) { - if (randomBoolean()) { - return histogram.getBucketByKey(key); - } - return histogram.getBucketByKey(key.getMillis()); - } - if (randomBoolean()) { - return histogram.getBucketByKey("" + key.getMillis()); - } - return histogram.getBucketByKey(Joda.forPattern(format).printer().print(key)); + private static String getBucketKeyAsString(DateTime key) { + return Joda.forPattern(DateFieldMapper.Defaults.DATE_TIME_FORMATTER.format()).printer().print(key); } @Test public void singleValuedField() throws Exception { SearchResponse response = client().prepareSearch("idx") - .addAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.MONTH)) + .addAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.MONTH)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(3)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); - DateHistogram.Bucket bucket = getBucket(histo, key); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key.getMillis())); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); - bucket = getBucket(histo, key); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key.getMillis())); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); - bucket = getBucket(histo, key); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key.getMillis())); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -176,7 +167,7 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response; if (randomBoolean()) { response = client().prepareSearch("idx") - .addAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).postZone("-01:00")) + .addAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).postZone("-01:00")) .execute().actionGet(); } else { @@ -201,45 +192,52 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(6)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(6)); - long key = new DateTime(2012, 1, 2, 0, 0, DateTimeZone.forID("+01:00")).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 1, 2, 0, 0, DateTimeZone.forID("+01:00")); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key.withZone(DateTimeZone.UTC))); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 2, 2, 0, 0, DateTimeZone.forID("+01:00")).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 2, 0, 0, DateTimeZone.forID("+01:00")); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key.withZone(DateTimeZone.UTC))); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 2, 15, 0, 0, DateTimeZone.forID("+01:00")).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 15, 0, 0, DateTimeZone.forID("+01:00")); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key.withZone(DateTimeZone.UTC))); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 3, 2, 0, 0, DateTimeZone.forID("+01:00")).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 2, 0, 0, DateTimeZone.forID("+01:00")); + bucket = buckets.get(3); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key.withZone(DateTimeZone.UTC))); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 3, 15, 0, 0, DateTimeZone.forID("+01:00")).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 15, 0, 0, DateTimeZone.forID("+01:00")); + bucket = buckets.get(4); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key.withZone(DateTimeZone.UTC))); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 3, 23, 0, 0, DateTimeZone.forID("+01:00")).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 23, 0, 0, DateTimeZone.forID("+01:00")); + bucket = buckets.get(5); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key.withZone(DateTimeZone.UTC))); assertThat(bucket.getDocCount(), equalTo(1l)); } @@ -248,21 +246,22 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .field("date") - .interval(DateHistogram.Interval.MONTH) - .order(DateHistogram.Order.KEY_ASC)) + .interval(DateHistogramInterval.MONTH) +.order(Histogram.Order.KEY_ASC)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(3)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); int i = 0; - for (DateHistogram.Bucket bucket : histo.getBuckets()) { - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(new DateTime(2012, i+1, 1, 0, 0, DateTimeZone.UTC).getMillis())); + for (Histogram.Bucket bucket : buckets) { + assertThat(((DateTime) bucket.getKey()), equalTo(new DateTime(2012, i + 1, 1, 0, 0, DateTimeZone.UTC))); i++; } } @@ -272,21 +271,21 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .field("date") - .interval(DateHistogram.Interval.MONTH) - .order(DateHistogram.Order.KEY_DESC)) + .interval(DateHistogramInterval.MONTH) +.order(Histogram.Order.KEY_DESC)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); assertThat(histo.getBuckets().size(), equalTo(3)); int i = 2; - for (DateHistogram.Bucket bucket : histo.getBuckets()) { - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(new DateTime(2012, i+1, 1, 0, 0, DateTimeZone.UTC).getMillis())); + for (Histogram.Bucket bucket : histo.getBuckets()) { + assertThat(((DateTime) bucket.getKey()), equalTo(new DateTime(2012, i + 1, 1, 0, 0, DateTimeZone.UTC))); i--; } } @@ -296,21 +295,21 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .field("date") - .interval(DateHistogram.Interval.MONTH) - .order(DateHistogram.Order.COUNT_ASC)) + .interval(DateHistogramInterval.MONTH) +.order(Histogram.Order.COUNT_ASC)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); assertThat(histo.getBuckets().size(), equalTo(3)); int i = 0; - for (DateHistogram.Bucket bucket : histo.getBuckets()) { - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(new DateTime(2012, i+1, 1, 0, 0, DateTimeZone.UTC).getMillis())); + for (Histogram.Bucket bucket : histo.getBuckets()) { + assertThat(((DateTime) bucket.getKey()), equalTo(new DateTime(2012, i + 1, 1, 0, 0, DateTimeZone.UTC))); i++; } } @@ -320,21 +319,21 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .field("date") - .interval(DateHistogram.Interval.MONTH) - .order(DateHistogram.Order.COUNT_DESC)) + .interval(DateHistogramInterval.MONTH) +.order(Histogram.Order.COUNT_DESC)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); assertThat(histo.getBuckets().size(), equalTo(3)); int i = 2; - for (DateHistogram.Bucket bucket : histo.getBuckets()) { - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(new DateTime(2012, i+1, 1, 0, 0, DateTimeZone.UTC).getMillis())); + for (Histogram.Bucket bucket : histo.getBuckets()) { + assertThat(((DateTime) bucket.getKey()), equalTo(new DateTime(2012, i + 1, 1, 0, 0, DateTimeZone.UTC))); i--; } } @@ -342,54 +341,58 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { @Test public void singleValuedField_WithSubAggregation() throws Exception { SearchResponse response = client().prepareSearch("idx") - .addAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.MONTH) + .addAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.MONTH) .subAggregation(sum("sum").field("value"))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(3)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); Object[] propertiesKeys = (Object[]) histo.getProperty("_key"); Object[] propertiesDocCounts = (Object[]) histo.getProperty("_count"); Object[] propertiesCounts = (Object[]) histo.getProperty("sum.value"); - long key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); Sum sum = bucket.getAggregations().get("sum"); assertThat(sum, notNullValue()); assertThat(sum.getValue(), equalTo(1.0)); - assertThat((String) propertiesKeys[0], equalTo("2012-01-01T00:00:00.000Z")); + assertThat((DateTime) propertiesKeys[0], equalTo(key)); assertThat((long) propertiesDocCounts[0], equalTo(1l)); assertThat((double) propertiesCounts[0], equalTo(1.0)); - key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); sum = bucket.getAggregations().get("sum"); assertThat(sum, notNullValue()); assertThat(sum.getValue(), equalTo(5.0)); - assertThat((String) propertiesKeys[1], equalTo("2012-02-01T00:00:00.000Z")); + assertThat((DateTime) propertiesKeys[1], equalTo(key)); assertThat((long) propertiesDocCounts[1], equalTo(2l)); assertThat((double) propertiesCounts[1], equalTo(5.0)); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); sum = bucket.getAggregations().get("sum"); assertThat(sum, notNullValue()); assertThat(sum.getValue(), equalTo(15.0)); - assertThat((String) propertiesKeys[2], equalTo("2012-03-01T00:00:00.000Z")); + assertThat((DateTime) propertiesKeys[2], equalTo(key)); assertThat((long) propertiesDocCounts[2], equalTo(3l)); assertThat((double) propertiesCounts[2], equalTo(15.0)); } @@ -397,40 +400,44 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { @Test public void singleValuedField_WithSubAggregation_Inherited() throws Exception { SearchResponse response = client().prepareSearch("idx") - .addAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.MONTH) + .addAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.MONTH) .subAggregation(max("max"))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(3)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - long key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); Max max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) new DateTime(2012, 1, 2, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) new DateTime(2012, 2, 15, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); @@ -442,22 +449,22 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .field("date") - .interval(DateHistogram.Interval.MONTH) - .order(DateHistogram.Order.aggregation("sum", true)) + .interval(DateHistogramInterval.MONTH) + .order(Histogram.Order.aggregation("sum", true)) .subAggregation(max("sum").field("value"))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); assertThat(histo.getBuckets().size(), equalTo(3)); int i = 0; - for (DateHistogram.Bucket bucket : histo.getBuckets()) { - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(new DateTime(2012, i+1, 1, 0, 0, DateTimeZone.UTC).getMillis())); + for (Histogram.Bucket bucket : histo.getBuckets()) { + assertThat(((DateTime) bucket.getKey()), equalTo(new DateTime(2012, i + 1, 1, 0, 0, DateTimeZone.UTC))); i++; } } @@ -467,22 +474,22 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .field("date") - .interval(DateHistogram.Interval.MONTH) - .order(DateHistogram.Order.aggregation("sum", false)) + .interval(DateHistogramInterval.MONTH) + .order(Histogram.Order.aggregation("sum", false)) .subAggregation(max("sum").field("value"))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); assertThat(histo.getBuckets().size(), equalTo(3)); int i = 2; - for (DateHistogram.Bucket bucket : histo.getBuckets()) { - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(new DateTime(2012, i+1, 1, 0, 0, DateTimeZone.UTC).getMillis())); + for (Histogram.Bucket bucket : histo.getBuckets()) { + assertThat(((DateTime) bucket.getKey()), equalTo(new DateTime(2012, i + 1, 1, 0, 0, DateTimeZone.UTC))); i--; } } @@ -492,21 +499,21 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .field("date") - .interval(DateHistogram.Interval.MONTH) - .order(DateHistogram.Order.aggregation("stats", "sum", true)) + .interval(DateHistogramInterval.MONTH) + .order(Histogram.Order.aggregation("stats", "sum", true)) .subAggregation(stats("stats").field("value"))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); assertThat(histo.getBuckets().size(), equalTo(3)); int i = 0; - for (DateHistogram.Bucket bucket : histo.getBuckets()) { - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(new DateTime(2012, i+1, 1, 0, 0, DateTimeZone.UTC).getMillis())); + for (Histogram.Bucket bucket : histo.getBuckets()) { + assertThat(((DateTime) bucket.getKey()), equalTo(new DateTime(2012, i + 1, 1, 0, 0, DateTimeZone.UTC))); i++; } } @@ -516,22 +523,22 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .field("date") - .interval(DateHistogram.Interval.MONTH) - .order(DateHistogram.Order.aggregation("stats", "sum", false)) + .interval(DateHistogramInterval.MONTH) + .order(Histogram.Order.aggregation("stats", "sum", false)) .subAggregation(stats("stats").field("value"))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); assertThat(histo.getBuckets().size(), equalTo(3)); int i = 2; - for (DateHistogram.Bucket bucket : histo.getBuckets()) { - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(new DateTime(2012, i+1, 1, 0, 0, DateTimeZone.UTC).getMillis())); + for (Histogram.Bucket bucket : histo.getBuckets()) { + assertThat(((DateTime) bucket.getKey()), equalTo(new DateTime(2012, i + 1, 1, 0, 0, DateTimeZone.UTC))); i--; } } @@ -542,34 +549,38 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { .addAggregation(dateHistogram("histo") .field("date") .script("new DateTime(_value).plusMonths(1).getMillis()") - .interval(DateHistogram.Interval.MONTH)) + .interval(DateHistogramInterval.MONTH)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(3)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - long key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); - key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -585,39 +596,44 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { @Test public void multiValuedField() throws Exception { SearchResponse response = client().prepareSearch("idx") - .addAggregation(dateHistogram("histo").field("dates").interval(DateHistogram.Interval.MONTH)) + .addAggregation(dateHistogram("histo").field("dates").interval(DateHistogramInterval.MONTH)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(4)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(4)); - long key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(5l)); - key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(3); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -626,21 +642,21 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .field("dates") - .interval(DateHistogram.Interval.MONTH) - .order(DateHistogram.Order.COUNT_DESC)) + .interval(DateHistogramInterval.MONTH) +.order(Histogram.Order.COUNT_DESC)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); assertThat(histo.getBuckets().size(), equalTo(4)); - List buckets = new ArrayList<>(histo.getBuckets()); + List buckets = new ArrayList<>(histo.getBuckets()); - DateHistogram.Bucket bucket = buckets.get(0); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); assertThat(bucket.getDocCount(), equalTo(5l)); @@ -674,39 +690,44 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { .addAggregation(dateHistogram("histo") .field("dates") .script("new DateTime(_value, DateTimeZone.UTC).plusMonths(1).getMillis()") - .interval(DateHistogram.Interval.MONTH)) + .interval(DateHistogramInterval.MONTH)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(4)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(4)); - long key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); - key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(5l)); - key = new DateTime(2012, 5, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 5, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(3); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -727,49 +748,54 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { .addAggregation(dateHistogram("histo") .field("dates") .script("new DateTime((long)_value, DateTimeZone.UTC).plusMonths(1).getMillis()") - .interval(DateHistogram.Interval.MONTH) + .interval(DateHistogramInterval.MONTH) .subAggregation(max("max"))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(4)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(4)); - long key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); Max max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat((long) max.getValue(), equalTo(new DateTime(2012, 3, 3, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat((long) max.getValue(), equalTo(new DateTime(2012, 4, 16, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(5l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat((long) max.getValue(), equalTo(new DateTime(2012, 5, 24, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 5, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 5, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(3); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); @@ -787,33 +813,37 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { @Test public void script_SingleValue() throws Exception { SearchResponse response = client().prepareSearch("idx") - .addAggregation(dateHistogram("histo").script("doc['date'].value").interval(DateHistogram.Interval.MONTH)) + .addAggregation(dateHistogram("histo").script("doc['date'].value").interval(DateHistogramInterval.MONTH)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(3)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - long key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -822,40 +852,44 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .script("doc['date'].value") - .interval(DateHistogram.Interval.MONTH) + .interval(DateHistogramInterval.MONTH) .subAggregation(max("max"))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(3)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - long key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); Max max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) new DateTime(2012, 1, 2, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) new DateTime(2012, 2, 15, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); @@ -865,39 +899,44 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { @Test public void script_MultiValued() throws Exception { SearchResponse response = client().prepareSearch("idx") - .addAggregation(dateHistogram("histo").script("doc['dates'].values").interval(DateHistogram.Interval.MONTH)) + .addAggregation(dateHistogram("histo").script("doc['dates'].values").interval(DateHistogramInterval.MONTH)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(4)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(4)); - long key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(5l)); - key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(3); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -915,49 +954,54 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .addAggregation(dateHistogram("histo") .script("doc['dates'].values") - .interval(DateHistogram.Interval.MONTH) + .interval(DateHistogramInterval.MONTH) .subAggregation(max("max"))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(4)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(4)); - long key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); Max max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat((long) max.getValue(), equalTo(new DateTime(2012, 2, 3, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat((long) max.getValue(), equalTo(new DateTime(2012, 3, 16, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(5l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat((long) max.getValue(), equalTo(new DateTime(2012, 4, 24, 0, 0, DateTimeZone.UTC).getMillis())); - key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 4, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(3); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); @@ -967,13 +1011,13 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { @Test public void unmapped() throws Exception { SearchResponse response = client().prepareSearch("idx_unmapped") - .addAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.MONTH)) + .addAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.MONTH)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); assertThat(histo.getBuckets().size(), equalTo(0)); @@ -982,33 +1026,37 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { @Test public void partiallyUnmapped() throws Exception { SearchResponse response = client().prepareSearch("idx", "idx_unmapped") - .addAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.MONTH)) + .addAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.MONTH)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(3)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - long key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC).getMillis(); - DateHistogram.Bucket bucket = histo.getBucketByKey(key); + DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); - key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); - key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC).getMillis(); - bucket = histo.getBucketByKey(key); + key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -1022,10 +1070,14 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); - assertThat(bucket, Matchers.notNullValue()); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateHistogram dateHisto = bucket.getAggregations().get("date_histo"); + Histogram.Bucket bucket = buckets.get(1); + assertThat(bucket, Matchers.notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("1")); + + Histogram dateHisto = bucket.getAggregations().get("date_histo"); assertThat(dateHisto, Matchers.notNullValue()); assertThat(dateHisto.getName(), equalTo("date_histo")); assertThat(dateHisto.getBuckets().isEmpty(), is(true)); @@ -1048,22 +1100,26 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { .addAggregation(dateHistogram("date_histo") .field("date") .preZone("-02:00") - .interval(DateHistogram.Interval.DAY) + .interval(DateHistogramInterval.DAY) .format("yyyy-MM-dd")) .execute().actionGet(); assertThat(response.getHits().getTotalHits(), equalTo(5l)); - DateHistogram histo = response.getAggregations().get("date_histo"); - Collection buckets = histo.getBuckets(); + Histogram histo = response.getAggregations().get("date_histo"); + List buckets = histo.getBuckets(); assertThat(buckets.size(), equalTo(2)); - DateHistogram.Bucket bucket = histo.getBucketByKey("2014-03-10"); - assertThat(bucket, Matchers.notNullValue()); + DateTime key = new DateTime(2014, 3, 10, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-10")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = histo.getBucketByKey("2014-03-11"); - assertThat(bucket, Matchers.notNullValue()); + key = new DateTime(2014, 3, 11, 0, 0, DateTimeZone.UTC); + bucket = buckets.get(1); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-11")); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -1083,23 +1139,29 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { .addAggregation(dateHistogram("date_histo") .field("date") .preZone("-02:00") - .interval(DateHistogram.Interval.DAY) + .interval(DateHistogramInterval.DAY) .preZoneAdjustLargeInterval(true) .format("yyyy-MM-dd'T'HH:mm:ss")) .execute().actionGet(); assertThat(response.getHits().getTotalHits(), equalTo(5l)); - DateHistogram histo = response.getAggregations().get("date_histo"); - Collection buckets = histo.getBuckets(); + Histogram histo = response.getAggregations().get("date_histo"); + List buckets = histo.getBuckets(); assertThat(buckets.size(), equalTo(2)); - DateHistogram.Bucket bucket = histo.getBucketByKey("2014-03-10T02:00:00"); - assertThat(bucket, Matchers.notNullValue()); + DateTime key = new DateTime(2014, 3, 10, 2, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-10T02:00:00")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = histo.getBucketByKey("2014-03-11T02:00:00"); - assertThat(bucket, Matchers.notNullValue()); + key = new DateTime(2014, 3, 11, 2, 0, DateTimeZone.UTC); + bucket = buckets.get(1); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo("2014-03-11T02:00:00")); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } @@ -1180,7 +1242,7 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { response = client().prepareSearch("idx2") .addAggregation(dateHistogram("histo") .field("date") - .interval(DateHistogram.Interval.days(interval)) + .interval(DateHistogramInterval.days(interval)) .minDocCount(0) // when explicitly specifying a format, the extended bounds should be defined by the same format .extendedBounds(format(boundsMin, pattern), format(boundsMax, pattern)) @@ -1202,16 +1264,18 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { } assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(bucketsCount)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(bucketsCount)); DateTime key = baseKey.isBefore(boundsMinKey) ? baseKey : boundsMinKey; for (int i = 0; i < bucketsCount; i++) { - DateHistogram.Bucket bucket = histo.getBucketByKey(format(key, pattern)); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsDate(), equalTo(key)); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); + assertThat(bucket.getKeyAsString(), equalTo(format(key, pattern))); assertThat(bucket.getDocCount(), equalTo(extendedValueCounts[i])); key = key.plusDays(interval); } @@ -1232,49 +1296,56 @@ public class DateHistogramTests extends ElasticsearchIntegrationTest { .setQuery(matchAllQuery()) .addAggregation(dateHistogram("date_histo") .field("date") - .interval(DateHistogram.Interval.DAY)) + .interval(DateHistogramInterval.DAY)) .execute().actionGet(); assertThat(response.getHits().getTotalHits(), equalTo(5l)); - DateHistogram histo = response.getAggregations().get("date_histo"); - Collection buckets = histo.getBuckets(); + Histogram histo = response.getAggregations().get("date_histo"); + List buckets = histo.getBuckets(); assertThat(buckets.size(), equalTo(1)); - DateHistogram.Bucket bucket = histo.getBucketByKey("2014-03-10T00:00:00.000Z"); - assertThat(bucket, Matchers.notNullValue()); + DateTime key = new DateTime(2014, 3, 10, 0, 0, DateTimeZone.UTC); + Histogram.Bucket bucket = buckets.get(0); + assertThat(bucket, notNullValue()); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(5l)); } public void testIssue6965() { SearchResponse response = client().prepareSearch("idx") - .addAggregation(dateHistogram("histo").field("date").preZone("+01:00").interval(DateHistogram.Interval.MONTH).minDocCount(0)) + .addAggregation(dateHistogram("histo").field("date").preZone("+01:00").interval(DateHistogramInterval.MONTH).minDocCount(0)) .execute().actionGet(); assertSearchResponse(response); - DateHistogram histo = response.getAggregations().get("histo"); + Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(3)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(3)); DateTime key = new DateTime(2012, 1, 1, 0, 0, DateTimeZone.UTC); - DateHistogram.Bucket bucket = getBucket(histo, key); + Histogram.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key.getMillis())); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(1l)); key = new DateTime(2012, 2, 1, 0, 0, DateTimeZone.UTC); - bucket = getBucket(histo, key); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key.getMillis())); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(2l)); key = new DateTime(2012, 3, 1, 0, 0, DateTimeZone.UTC); - bucket = getBucket(histo, key); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key.getMillis())); + assertThat(bucket.getKeyAsString(), equalTo(getBucketKeyAsString(key))); + assertThat(((DateTime) bucket.getKey()), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(3l)); } } diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeTests.java index b78c2d2e947..c666e4386b7 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeTests.java @@ -21,7 +21,8 @@ package org.elasticsearch.search.aggregations.bucket; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; -import org.elasticsearch.search.aggregations.bucket.range.date.DateRange; +import org.elasticsearch.search.aggregations.bucket.range.Range; +import org.elasticsearch.search.aggregations.bucket.range.Range.Bucket; import org.elasticsearch.search.aggregations.bucket.range.date.DateRangeBuilder; import org.elasticsearch.search.aggregations.metrics.max.Max; import org.elasticsearch.search.aggregations.metrics.min.Min; @@ -118,23 +119,26 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); assertThat(range.getBuckets().size(), equalTo(3)); - List buckets = new ArrayList<>(range.getBuckets()); + List buckets = new ArrayList<>(range.getBuckets()); - DateRange.Bucket bucket = buckets.get(0); - assertThat(bucket.getKey(), equalTo("a long time ago")); + Range.Bucket bucket = buckets.get(0); + assertThat((String) bucket.getKey(), equalTo("a long time ago")); + assertThat(bucket.getKeyAsString(), equalTo("a long time ago")); assertThat(bucket.getDocCount(), equalTo(0L)); bucket = buckets.get(1); - assertThat(bucket.getKey(), equalTo("recently")); + assertThat((String) bucket.getKey(), equalTo("recently")); + assertThat(bucket.getKeyAsString(), equalTo("recently")); assertThat(bucket.getDocCount(), equalTo((long) numDocs)); bucket = buckets.get(2); - assertThat(bucket.getKey(), equalTo("last year")); + assertThat((String) bucket.getKey(), equalTo("last year")); + assertThat(bucket.getKeyAsString(), equalTo("last year")); assertThat(bucket.getDocCount(), equalTo(0L)); } @@ -151,40 +155,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -203,40 +202,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -256,40 +250,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-02-15-2012-03-15"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15-2012-03-15")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15-2012-03-15")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15")); assertThat(bucket.getToAsString(), equalTo("2012-03-15")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-03-15-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -308,40 +297,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -360,40 +344,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("r1"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r1")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("r1")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("r2"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r2")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("r2")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("r3"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r3")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("r3")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -422,21 +401,20 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); Object[] propertiesKeys = (Object[]) range.getProperty("_key"); Object[] propertiesDocCounts = (Object[]) range.getProperty("_count"); Object[] propertiesCounts = (Object[]) range.getProperty("sum.value"); - DateRange.Bucket bucket = range.getBucketByKey("r1"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r1")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("r1")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -447,13 +425,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat((long) propertiesDocCounts[0], equalTo(2l)); assertThat((double) propertiesCounts[0], equalTo((double) 1 + 2)); - bucket = range.getBucketByKey("r2"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r2")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("r2")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -464,13 +440,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat((long) propertiesDocCounts[1], equalTo(2l)); assertThat((double) propertiesCounts[1], equalTo((double) 3 + 4)); - bucket = range.getBucketByKey("r3"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r3")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("r3")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -494,18 +468,17 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("r1"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r1")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("r1")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -513,13 +486,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat(min, notNullValue()); assertThat(min.getValue(), equalTo((double) date(1, 2).getMillis())); - bucket = range.getBucketByKey("r2"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r2")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("r2")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -527,13 +498,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat(min, notNullValue()); assertThat(min.getValue(), equalTo((double) date(2, 15).getMillis())); - bucket = range.getBucketByKey("r3"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r3")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("r3")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -564,40 +533,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(3l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 2l)); @@ -627,40 +591,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(1l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 1l)); @@ -690,18 +649,17 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(1l)); @@ -709,13 +667,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) date(3, 3).getMillis())); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -723,13 +679,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) date(4, 3).getMillis())); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 1l)); @@ -750,40 +704,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -803,18 +752,17 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -822,13 +770,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) date(2, 2).getMillis())); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -836,13 +782,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) date(3, 2).getMillis())); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -872,40 +816,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(3l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 2l)); @@ -925,18 +864,17 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -944,13 +882,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat(min, notNullValue()); assertThat(min.getValue(), equalTo((double) date(1, 2).getMillis())); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(3l)); @@ -958,13 +894,11 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat(min, notNullValue()); assertThat(min.getValue(), equalTo((double) date(2, 2).getMillis())); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 2l)); @@ -988,40 +922,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(0l)); @@ -1040,40 +969,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(0l)); @@ -1092,40 +1016,35 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - DateRange.Bucket bucket = range.getBucketByKey("*-2012-02-15T00:00:00.000Z"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getFromAsDate(), nullValue()); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(2, 15))); + assertThat((String) bucket.getKey(), equalTo("*-2012-02-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), nullValue()); + assertThat(((DateTime) bucket.getTo()), equalTo(date(2, 15))); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(2, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(2, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getToAsDate(), equalTo(date(3, 15))); + assertThat((String) bucket.getKey(), equalTo("2012-02-15T00:00:00.000Z-2012-03-15T00:00:00.000Z")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(2, 15))); + assertThat(((DateTime) bucket.getTo()), equalTo(date(3, 15))); assertThat(bucket.getFromAsString(), equalTo("2012-02-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("2012-03-15T00:00:00.000Z-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) date(3, 15).getMillis())); - assertThat(bucket.getFromAsDate(), equalTo(date(3, 15))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); - assertThat(bucket.getToAsDate(), nullValue()); + assertThat((String) bucket.getKey(), equalTo("2012-03-15T00:00:00.000Z-*")); + assertThat(((DateTime) bucket.getFrom()), equalTo(date(3, 15))); + assertThat(((DateTime) bucket.getTo()), nullValue()); assertThat(bucket.getFromAsString(), equalTo("2012-03-15T00:00:00.000Z")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -1141,17 +1060,17 @@ public class DateRangeTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); - DateRange dateRange = bucket.getAggregations().get("date_range"); - List buckets = new ArrayList<>(dateRange.getBuckets()); + Range dateRange = bucket.getAggregations().get("date_range"); + List buckets = new ArrayList<>(dateRange.getBuckets()); assertThat(dateRange, Matchers.notNullValue()); assertThat(dateRange.getName(), equalTo("date_range")); assertThat(buckets.size(), is(1)); - assertThat(buckets.get(0).getKey(), equalTo("0-1")); - assertThat(buckets.get(0).getFrom().doubleValue(), equalTo(0.0)); - assertThat(buckets.get(0).getTo().doubleValue(), equalTo(1.0)); + assertThat((String) buckets.get(0).getKey(), equalTo("0-1")); + assertThat(((DateTime) buckets.get(0).getFrom()).getMillis(), equalTo(0l)); + assertThat(((DateTime) buckets.get(0).getTo()).getMillis(), equalTo(1l)); assertThat(buckets.get(0).getDocCount(), equalTo(0l)); assertThat(buckets.get(0).getAggregations().asList().isEmpty(), is(true)); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsTests.java index 2e83941d1f1..1c256146009 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsTests.java @@ -220,7 +220,7 @@ public class DoubleTermsTests extends AbstractTermsTests { } private String key(Terms.Bucket bucket) { - return randomBoolean() ? bucket.getKey() : bucket.getKeyAsText().string(); + return bucket.getKeyAsString(); } @Test @@ -409,7 +409,7 @@ public class DoubleTermsTests extends AbstractTermsTests { Sum sum = bucket.getAggregations().get("sum"); assertThat(sum, notNullValue()); assertThat((long) sum.getValue(), equalTo(i+i+1l)); - assertThat((String) propertiesKeys[i], equalTo(String.valueOf((double) i))); + assertThat((double) propertiesKeys[i], equalTo((double) i)); assertThat((long) propertiesDocCounts[i], equalTo(1l)); assertThat((double) propertiesCounts[i], equalTo((double) i + i + 1l)); } @@ -465,7 +465,7 @@ public class DoubleTermsTests extends AbstractTermsTests { Terms.Bucket bucket = terms.getBucketByKey("" + (i + 1d)); assertThat(bucket, notNullValue()); assertThat(key(bucket), equalTo("" + (i+1d))); - assertThat(bucket.getKeyAsNumber().intValue(), equalTo(i+1)); + assertThat(bucket.getKeyAsNumber().intValue(), equalTo(i + 1)); assertThat(bucket.getDocCount(), equalTo(1l)); } } @@ -520,7 +520,7 @@ public class DoubleTermsTests extends AbstractTermsTests { Terms.Bucket bucket = terms.getBucketByKey("" + (i + 1d)); assertThat(bucket, notNullValue()); assertThat(key(bucket), equalTo("" + (i+1d))); - assertThat(bucket.getKeyAsNumber().intValue(), equalTo(i+1)); + assertThat(bucket.getKeyAsNumber().intValue(), equalTo(i + 1)); if (i == 0 || i == 5) { assertThat(bucket.getDocCount(), equalTo(1l)); } else { @@ -592,7 +592,7 @@ public class DoubleTermsTests extends AbstractTermsTests { Terms.Bucket bucket = terms.getBucketByKey("" + (i + 1d)); assertThat(bucket, notNullValue()); assertThat(key(bucket), equalTo("" + (i+1d))); - assertThat(bucket.getKeyAsNumber().doubleValue(), equalTo(i+1d)); + assertThat(bucket.getKeyAsNumber().doubleValue(), equalTo(i + 1d)); final long count = i == 0 || i == 5 ? 1 : 2; double s = 0; for (int j = 0; j < NUM_DOCS; ++j) { @@ -807,7 +807,7 @@ public class DoubleTermsTests extends AbstractTermsTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); Terms terms = bucket.getAggregations().get("terms"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterTests.java index d7ec190e665..d35b9f654c2 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterTests.java @@ -178,7 +178,7 @@ public class FilterTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); Filter filter = bucket.getAggregations().get("filter"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersTests.java index 13fc8a6e3ab..eeb59a2c3fa 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersTests.java @@ -232,14 +232,14 @@ public class FiltersTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); Filters filters = bucket.getAggregations().get("filters"); assertThat(filters, notNullValue()); Filters.Bucket all = filters.getBucketByKey("all"); assertThat(all, Matchers.notNullValue()); - assertThat(all.getKey(), equalTo("all")); + assertThat(all.getKeyAsString(), equalTo("all")); assertThat(all.getDocCount(), is(0l)); } diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceTests.java index cc0e4a3f482..7eb96749996 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceTests.java @@ -26,7 +26,8 @@ import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; -import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistance; +import org.elasticsearch.search.aggregations.bucket.range.Range; +import org.elasticsearch.search.aggregations.bucket.range.Range.Bucket; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.test.ElasticsearchIntegrationTest; import org.hamcrest.Matchers; @@ -137,34 +138,35 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - GeoDistance geoDist = response.getAggregations().get("amsterdam_rings"); + Range geoDist = response.getAggregations().get("amsterdam_rings"); assertThat(geoDist, notNullValue()); assertThat(geoDist.getName(), equalTo("amsterdam_rings")); - assertThat(geoDist.getBuckets().size(), equalTo(3)); + List buckets = geoDist.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - GeoDistance.Bucket bucket = geoDist.getBucketByKey("*-500.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-500.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(0.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(500.0)); + assertThat((String) (String) bucket.getKey(), equalTo("*-500.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(0.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(500.0)); assertThat(bucket.getFromAsString(), equalTo("0.0")); assertThat(bucket.getToAsString(), equalTo("500.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = geoDist.getBucketByKey("500.0-1000.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("500.0-1000.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(500.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(1000.0)); + assertThat((String) (String) bucket.getKey(), equalTo("500.0-1000.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(500.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(1000.0)); assertThat(bucket.getFromAsString(), equalTo("500.0")); assertThat(bucket.getToAsString(), equalTo("1000.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = geoDist.getBucketByKey("1000.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("1000.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(1000.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("1000.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(1000.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("1000.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(1l)); @@ -185,34 +187,35 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - GeoDistance geoDist = response.getAggregations().get("amsterdam_rings"); + Range geoDist = response.getAggregations().get("amsterdam_rings"); assertThat(geoDist, notNullValue()); assertThat(geoDist.getName(), equalTo("amsterdam_rings")); - assertThat(geoDist.getBuckets().size(), equalTo(3)); + List buckets = geoDist.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - GeoDistance.Bucket bucket = geoDist.getBucketByKey("ring1"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("ring1")); - assertThat(bucket.getFrom().doubleValue(), equalTo(0.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(500.0)); + assertThat((String) bucket.getKey(), equalTo("ring1")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(0.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(500.0)); assertThat(bucket.getFromAsString(), equalTo("0.0")); assertThat(bucket.getToAsString(), equalTo("500.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = geoDist.getBucketByKey("ring2"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("ring2")); - assertThat(bucket.getFrom().doubleValue(), equalTo(500.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(1000.0)); + assertThat((String) bucket.getKey(), equalTo("ring2")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(500.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(1000.0)); assertThat(bucket.getFromAsString(), equalTo("500.0")); assertThat(bucket.getToAsString(), equalTo("1000.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = geoDist.getBucketByKey("ring3"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("ring3")); - assertThat(bucket.getFrom().doubleValue(), equalTo(1000.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("ring3")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(1000.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("1000.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(1l)); @@ -235,34 +238,35 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - GeoDistance geoDist = response.getAggregations().get("amsterdam_rings"); + Range geoDist = response.getAggregations().get("amsterdam_rings"); assertThat(geoDist, notNullValue()); assertThat(geoDist.getName(), equalTo("amsterdam_rings")); + List buckets = geoDist.getBuckets(); assertThat(geoDist.getBuckets().size(), equalTo(3)); - GeoDistance.Bucket bucket = geoDist.getBucketByKey("*-500.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-500.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(0.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(500.0)); + assertThat((String) bucket.getKey(), equalTo("*-500.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(0.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(500.0)); assertThat(bucket.getFromAsString(), equalTo("0.0")); assertThat(bucket.getToAsString(), equalTo("500.0")); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = geoDist.getBucketByKey("500.0-1000.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("500.0-1000.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(500.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(1000.0)); + assertThat((String) bucket.getKey(), equalTo("500.0-1000.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(500.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(1000.0)); assertThat(bucket.getFromAsString(), equalTo("500.0")); assertThat(bucket.getToAsString(), equalTo("1000.0")); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = geoDist.getBucketByKey("1000.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("1000.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(1000.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("1000.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(1000.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("1000.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(0l)); @@ -283,34 +287,35 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - GeoDistance geoDist = response.getAggregations().get("amsterdam_rings"); + Range geoDist = response.getAggregations().get("amsterdam_rings"); assertThat(geoDist, notNullValue()); assertThat(geoDist.getName(), equalTo("amsterdam_rings")); + List buckets = geoDist.getBuckets(); assertThat(geoDist.getBuckets().size(), equalTo(3)); - GeoDistance.Bucket bucket = geoDist.getBucketByKey("*-500.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-500.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(0.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(500.0)); + assertThat((String) bucket.getKey(), equalTo("*-500.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(0.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(500.0)); assertThat(bucket.getFromAsString(), equalTo("0.0")); assertThat(bucket.getToAsString(), equalTo("500.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = geoDist.getBucketByKey("500.0-1000.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("500.0-1000.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(500.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(1000.0)); + assertThat((String) bucket.getKey(), equalTo("500.0-1000.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(500.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(1000.0)); assertThat(bucket.getFromAsString(), equalTo("500.0")); assertThat(bucket.getToAsString(), equalTo("1000.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = geoDist.getBucketByKey("1000.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("1000.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(1000.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("1000.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(1000.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("1000.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(1l)); @@ -334,19 +339,20 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - GeoDistance geoDist = response.getAggregations().get("amsterdam_rings"); + Range geoDist = response.getAggregations().get("amsterdam_rings"); assertThat(geoDist, notNullValue()); assertThat(geoDist.getName(), equalTo("amsterdam_rings")); + List buckets = geoDist.getBuckets(); assertThat(geoDist.getBuckets().size(), equalTo(3)); Object[] propertiesKeys = (Object[]) geoDist.getProperty("_key"); Object[] propertiesDocCounts = (Object[]) geoDist.getProperty("_count"); Object[] propertiesCities = (Object[]) geoDist.getProperty("cities"); - GeoDistance.Bucket bucket = geoDist.getBucketByKey("*-500.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-500.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(0.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(500.0)); + assertThat((String) bucket.getKey(), equalTo("*-500.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(0.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(500.0)); assertThat(bucket.getFromAsString(), equalTo("0.0")); assertThat(bucket.getToAsString(), equalTo("500.0")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -355,18 +361,18 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertThat(cities, Matchers.notNullValue()); Set names = Sets.newHashSet(); for (Terms.Bucket city : cities.getBuckets()) { - names.add(city.getKey()); + names.add(city.getKeyAsString()); } assertThat(names.contains("utrecht") && names.contains("haarlem"), is(true)); assertThat((String) propertiesKeys[0], equalTo("*-500.0")); assertThat((long) propertiesDocCounts[0], equalTo(2l)); assertThat((Terms) propertiesCities[0], sameInstance(cities)); - bucket = geoDist.getBucketByKey("500.0-1000.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("500.0-1000.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(500.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(1000.0)); + assertThat((String) bucket.getKey(), equalTo("500.0-1000.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(500.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(1000.0)); assertThat(bucket.getFromAsString(), equalTo("500.0")); assertThat(bucket.getToAsString(), equalTo("1000.0")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -375,18 +381,18 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertThat(cities, Matchers.notNullValue()); names = Sets.newHashSet(); for (Terms.Bucket city : cities.getBuckets()) { - names.add(city.getKey()); + names.add(city.getKeyAsString()); } assertThat(names.contains("berlin") && names.contains("prague"), is(true)); assertThat((String) propertiesKeys[1], equalTo("500.0-1000.0")); assertThat((long) propertiesDocCounts[1], equalTo(2l)); assertThat((Terms) propertiesCities[1], sameInstance(cities)); - bucket = geoDist.getBucketByKey("1000.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("1000.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(1000.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("1000.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(1000.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("1000.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(1l)); @@ -395,7 +401,7 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertThat(cities, Matchers.notNullValue()); names = Sets.newHashSet(); for (Terms.Bucket city : cities.getBuckets()) { - names.add(city.getKey()); + names.add(city.getKeyAsString()); } assertThat(names.contains("tel-aviv"), is(true)); assertThat((String) propertiesKeys[2], equalTo("1000.0-*")); @@ -414,17 +420,17 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); - GeoDistance geoDistance = bucket.getAggregations().get("geo_dist"); - List buckets = new ArrayList<>(geoDistance.getBuckets()); + Range geoDistance = bucket.getAggregations().get("geo_dist"); + List buckets = new ArrayList<>(geoDistance.getBuckets()); assertThat(geoDistance, Matchers.notNullValue()); assertThat(geoDistance.getName(), equalTo("geo_dist")); assertThat(buckets.size(), is(1)); - assertThat(buckets.get(0).getKey(), equalTo("0-100")); - assertThat(buckets.get(0).getFrom().doubleValue(), equalTo(0.0)); - assertThat(buckets.get(0).getTo().doubleValue(), equalTo(100.0)); + assertThat((String) buckets.get(0).getKey(), equalTo("0-100")); + assertThat(((Number) buckets.get(0).getFrom()).doubleValue(), equalTo(0.0)); + assertThat(((Number) buckets.get(0).getTo()).doubleValue(), equalTo(100.0)); assertThat(buckets.get(0).getFromAsString(), equalTo("0.0")); assertThat(buckets.get(0).getToAsString(), equalTo("100.0")); assertThat(buckets.get(0).getDocCount(), equalTo(0l)); @@ -445,34 +451,35 @@ public class GeoDistanceTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - GeoDistance geoDist = response.getAggregations().get("amsterdam_rings"); + Range geoDist = response.getAggregations().get("amsterdam_rings"); assertThat(geoDist, notNullValue()); assertThat(geoDist.getName(), equalTo("amsterdam_rings")); + List buckets = geoDist.getBuckets(); assertThat(geoDist.getBuckets().size(), equalTo(3)); - GeoDistance.Bucket bucket = geoDist.getBucketByKey("*-500.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-500.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(0.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(500.0)); + assertThat((String) bucket.getKey(), equalTo("*-500.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(0.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(500.0)); assertThat(bucket.getFromAsString(), equalTo("0.0")); assertThat(bucket.getToAsString(), equalTo("500.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = geoDist.getBucketByKey("500.0-1000.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("500.0-1000.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(500.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(1000.0)); + assertThat((String) bucket.getKey(), equalTo("500.0-1000.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(500.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(1000.0)); assertThat(bucket.getFromAsString(), equalTo("500.0")); assertThat(bucket.getToAsString(), equalTo("1000.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = geoDist.getBucketByKey("1000.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("1000.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(1000.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("1000.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(1000.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("1000.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(1l)); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoHashGridTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoHashGridTests.java index 30f0e437f5c..2616c133dd4 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoHashGridTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoHashGridTests.java @@ -25,6 +25,7 @@ import com.carrotsearch.hppc.cursors.ObjectIntCursor; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.geo.GeoHashUtils; +import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.GeoBoundingBoxFilterBuilder; import org.elasticsearch.search.aggregations.AggregationBuilders; @@ -148,14 +149,15 @@ public class GeoHashGridTests extends ElasticsearchIntegrationTest { Object[] propertiesDocCounts = (Object[]) geoGrid.getProperty("_count"); for (int i = 0; i < buckets.size(); i++) { GeoHashGrid.Bucket cell = buckets.get(i); - String geohash = cell.getKey(); + String geohash = cell.getKeyAsString(); long bucketCount = cell.getDocCount(); int expectedBucketCount = expectedDocCountsForGeoHash.get(geohash); assertNotSame(bucketCount, 0); assertEquals("Geohash " + geohash + " has wrong doc count ", expectedBucketCount, bucketCount); - assertThat((String) propertiesKeys[i], equalTo(geohash)); + GeoPoint geoPoint = (GeoPoint) propertiesKeys[i]; + assertThat(GeoHashUtils.encode(geoPoint.lat(), geoPoint.lon(), precision), equalTo(geohash)); assertThat((long) propertiesDocCounts[i], equalTo(bucketCount)); } } @@ -175,7 +177,7 @@ public class GeoHashGridTests extends ElasticsearchIntegrationTest { GeoHashGrid geoGrid = response.getAggregations().get("geohashgrid"); for (GeoHashGrid.Bucket cell : geoGrid.getBuckets()) { - String geohash = cell.getKey(); + String geohash = cell.getKeyAsString(); long bucketCount = cell.getDocCount(); int expectedBucketCount = multiValuedExpectedDocCountsForGeoHash.get(geohash); @@ -208,7 +210,7 @@ public class GeoHashGridTests extends ElasticsearchIntegrationTest { GeoHashGrid geoGrid = filter.getAggregations().get("geohashgrid"); for (GeoHashGrid.Bucket cell : geoGrid.getBuckets()) { - String geohash = cell.getKey(); + String geohash = cell.getKeyAsString(); long bucketCount = cell.getDocCount(); int expectedBucketCount = expectedDocCountsForGeoHash.get(geohash); assertNotSame(bucketCount, 0); @@ -252,7 +254,7 @@ public class GeoHashGridTests extends ElasticsearchIntegrationTest { GeoHashGrid geoGrid = response.getAggregations().get("geohashgrid"); for (GeoHashGrid.Bucket cell : geoGrid.getBuckets()) { - String geohash = cell.getKey(); + String geohash = cell.getKeyAsString(); long bucketCount = cell.getDocCount(); int expectedBucketCount = expectedDocCountsForGeoHash.get(geohash); @@ -281,7 +283,7 @@ public class GeoHashGridTests extends ElasticsearchIntegrationTest { //Check we only have one bucket with the best match for that resolution assertThat(geoGrid.getBuckets().size(), equalTo(1)); for (GeoHashGrid.Bucket cell : geoGrid.getBuckets()) { - String geohash = cell.getKey(); + String geohash = cell.getKeyAsString(); long bucketCount = cell.getDocCount(); int expectedBucketCount = 0; for (ObjectIntCursor cursor : expectedDocCountsForGeoHash) { diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramTests.java index 682249e0c60..615a5e75af9 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramTests.java @@ -25,6 +25,7 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Bucket; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.metrics.max.Max; import org.elasticsearch.search.aggregations.metrics.stats.Stats; @@ -128,12 +129,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numValueBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numValueBuckets)); for (int i = 0; i < numValueBuckets; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey(i * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); } } @@ -151,12 +153,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numValueBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numValueBuckets)); for (int i = 0; i < numValueBuckets; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey((i + preOffsetMultiplier) * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) (i + preOffsetMultiplier) * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) (i + preOffsetMultiplier) * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); } } @@ -174,12 +177,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numValueBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numValueBuckets)); for (int i = 0; i < numValueBuckets; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey((i + postOffsetMultiplier) * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) (i + postOffsetMultiplier) * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) (i + postOffsetMultiplier) * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); } } @@ -202,7 +206,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); } } @@ -225,7 +229,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(numValueBuckets - i - 1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); } } @@ -250,7 +254,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = histoBuckets.get(i); assertThat(bucket, notNullValue()); - long key = bucket.getKeyAsNumber().longValue(); + long key = ((Number) bucket.getKey()).longValue(); assertEquals(0, key % interval); assertTrue(buckets.add(key)); assertThat(bucket.getDocCount(), equalTo(valueCounts[(int) (key / interval)])); @@ -279,7 +283,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = histoBuckets.get(i); assertThat(bucket, notNullValue()); - long key = bucket.getKeyAsNumber().longValue(); + long key = ((Number) bucket.getKey()).longValue(); assertEquals(0, key % interval); assertTrue(buckets.add(key)); assertThat(bucket.getDocCount(), equalTo(valueCounts[(int) (key / interval)])); @@ -310,7 +314,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); assertThat(bucket.getAggregations().asList().isEmpty(), is(false)); Sum sum = bucket.getAggregations().get("sum"); @@ -322,7 +326,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { } } assertThat(sum.getValue(), equalTo((double) s)); - assertThat((String) propertiesKeys[i], equalTo(String.valueOf((long) i * interval))); + assertThat((long) propertiesKeys[i], equalTo((long) i * interval)); assertThat((long) propertiesDocCounts[i], equalTo(valueCounts[i])); assertThat((double) propertiesCounts[i], equalTo((double) s)); } @@ -347,7 +351,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); assertThat(bucket.getAggregations().asList().isEmpty(), is(false)); Sum sum = bucket.getAggregations().get("sum"); @@ -383,7 +387,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - long key = bucket.getKeyAsNumber().longValue(); + long key = ((Number) bucket.getKey()).longValue(); assertTrue(visited.add(key)); int b = (int) (key / interval); assertThat(bucket.getDocCount(), equalTo(valueCounts[b])); @@ -423,7 +427,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - long key = bucket.getKeyAsNumber().longValue(); + long key = ((Number) bucket.getKey()).longValue(); assertTrue(visited.add(key)); int b = (int) (key / interval); assertThat(bucket.getDocCount(), equalTo(valueCounts[b])); @@ -463,7 +467,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - long key = bucket.getKeyAsNumber().longValue(); + long key = ((Number) bucket.getKey()).longValue(); assertTrue(visited.add(key)); int b = (int) (key / interval); assertThat(bucket.getDocCount(), equalTo(valueCounts[b])); @@ -503,7 +507,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - long key = bucket.getKeyAsNumber().longValue(); + long key = ((Number) bucket.getKey()).longValue(); assertTrue(visited.add(key)); int b = (int) (key / interval); assertThat(bucket.getDocCount(), equalTo(valueCounts[b])); @@ -545,7 +549,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - long key = bucket.getKeyAsNumber().longValue(); + long key = ((Number) bucket.getKey()).longValue(); assertTrue(visited.add(key)); int b = (int) (key / interval); assertThat(bucket.getDocCount(), equalTo(valueCounts[b])); @@ -578,12 +582,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numBuckets)); for (int i = 2 / interval; i <= (numDocs + 1) / interval; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey(i * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(counts[i])); } } @@ -600,12 +605,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numValuesBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numValuesBuckets)); for (int i = 0; i < numValuesBuckets; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey(i * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valuesCounts[i])); } } @@ -628,7 +634,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValuesBuckets; ++i) { Histogram.Bucket bucket = buckets.get(numValuesBuckets - i - 1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valuesCounts[i])); } } @@ -656,12 +662,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numBuckets)); for (int i = 2 / interval; i <= (numDocs + 2) / interval; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey(i * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(counts[i])); } } @@ -691,12 +698,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numBuckets)); for (int i = 2 / interval; i < (numDocs + 2) / interval; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey(i * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(counts[i])); Terms terms = bucket.getAggregations().get(MULTI_VALUED_FIELD_NAME); assertThat(terms, notNullValue()); @@ -723,12 +731,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numValueBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numValueBuckets)); for (int i = 0; i < numValueBuckets; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey(i * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); } } @@ -752,7 +761,7 @@ public class HistogramTests extends ElasticsearchIntegrationTest { for (int i = 0; i < numValueBuckets; ++i) { Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); assertThat(bucket.getAggregations().asList().isEmpty(), is(false)); Sum sum = bucket.getAggregations().get("sum"); @@ -779,12 +788,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numValuesBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numValuesBuckets)); for (int i = 0; i < numValuesBuckets; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey(i * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valuesCounts[i])); } } @@ -802,12 +812,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numValuesBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numValuesBuckets)); for (int i = 0; i < numValuesBuckets; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey(i * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valuesCounts[i])); assertThat(bucket.getAggregations().asList().isEmpty(), is(false)); Sum sum = bucket.getAggregations().get("sum"); @@ -850,12 +861,13 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(numValueBuckets)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(numValueBuckets)); for (int i = 0; i < numValueBuckets; ++i) { - Histogram.Bucket bucket = histo.getBucketByKey(i * interval); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo((long) i * interval)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo((long) i * interval)); assertThat(bucket.getDocCount(), equalTo(valueCounts[i])); } } @@ -871,7 +883,8 @@ public class HistogramTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + List buckets = histo.getBuckets(); + Histogram.Bucket bucket = buckets.get(1); assertThat(bucket, Matchers.notNullValue()); histo = bucket.getAggregations().get("sub_histo"); @@ -944,13 +957,14 @@ public class HistogramTests extends ElasticsearchIntegrationTest { Histogram histo = response.getAggregations().get("histo"); assertThat(histo, notNullValue()); assertThat(histo.getName(), equalTo("histo")); - assertThat(histo.getBuckets().size(), equalTo(bucketsCount)); + List buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(bucketsCount)); long key = Math.min(boundsMinKey, 0); for (int i = 0; i < bucketsCount; i++) { - Histogram.Bucket bucket = histo.getBucketByKey(key); + Histogram.Bucket bucket = buckets.get(i); assertThat(bucket, notNullValue()); - assertThat(bucket.getKeyAsNumber().longValue(), equalTo(key)); + assertThat(((Number) bucket.getKey()).longValue(), equalTo(key)); assertThat(bucket.getDocCount(), equalTo(extendedValueCounts[i])); key += interval; } diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/IPv4RangeTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/IPv4RangeTests.java index 8b9ac57d372..84f62caf3c6 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/IPv4RangeTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/IPv4RangeTests.java @@ -22,7 +22,8 @@ import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.mapper.ip.IpFieldMapper; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; -import org.elasticsearch.search.aggregations.bucket.range.ipv4.IPv4Range; +import org.elasticsearch.search.aggregations.bucket.range.Range; +import org.elasticsearch.search.aggregations.bucket.range.Range.Bucket; import org.elasticsearch.search.aggregations.metrics.max.Max; import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.elasticsearch.test.ElasticsearchIntegrationTest; @@ -97,35 +98,36 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) (String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) ((Number) bucket.getFrom())).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) ((Number) bucket.getTo())).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) (String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) ((Number) bucket.getFrom())).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) ((Number) bucket.getTo())).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) (String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(55l)); } @@ -142,26 +144,27 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(2)); - IPv4Range.Bucket bucket = range.getBucketByKey("10.0.0.0/25"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.0/25")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.0"))); + assertThat((String) bucket.getKey(), equalTo("10.0.0.0/25")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.0"))); assertThat(bucket.getFromAsString(), equalTo("10.0.0.0")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.128"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.128"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.128")); assertThat(bucket.getDocCount(), equalTo(128l)); - bucket = range.getBucketByKey("10.0.0.128/25"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.128/25")); - assertThat((long) bucket.getFrom().doubleValue(), equalTo(IpFieldMapper.ipToLong("10.0.0.128"))); + assertThat((String) bucket.getKey(), equalTo("10.0.0.128/25")); + assertThat((long) ((Number) bucket.getFrom()).doubleValue(), equalTo(IpFieldMapper.ipToLong("10.0.0.128"))); assertThat(bucket.getFromAsString(), equalTo("10.0.0.128")); - assertThat((long) bucket.getTo().doubleValue(), equalTo(IpFieldMapper.ipToLong("10.0.1.0"))); // range is exclusive on the to side + assertThat((long) ((Number) bucket.getTo()).doubleValue(), equalTo(IpFieldMapper.ipToLong("10.0.1.0"))); // range is exclusive on the to side assertThat(bucket.getToAsString(), equalTo("10.0.1.0")); assertThat(bucket.getDocCount(), equalTo(127l)); // include 10.0.0.128 } @@ -179,35 +182,36 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("r1"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r1")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("r1")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("r2"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r2")); + assertThat((String) bucket.getKey(), equalTo("r2")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("r3"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r3")); + assertThat((String) bucket.getKey(), equalTo("r3")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(55l)); } @@ -226,21 +230,22 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); Object[] propertiesKeys = (Object[]) range.getProperty("_key"); Object[] propertiesDocCounts = (Object[]) range.getProperty("_count"); Object[] propertiesCounts = (Object[]) range.getProperty("sum.value"); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); Sum sum = bucket.getAggregations().get("sum"); assertThat(sum, notNullValue()); @@ -249,13 +254,13 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertThat((long) propertiesDocCounts[0], equalTo(100l)); assertThat((double) propertiesCounts[0], equalTo((double) 100)); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(100l)); sum = bucket.getAggregations().get("sum"); assertThat(sum, notNullValue()); @@ -264,12 +269,12 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertThat((long) propertiesDocCounts[1], equalTo(100l)); assertThat((double) propertiesCounts[1], equalTo((double) 200)); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(55l)); sum = bucket.getAggregations().get("sum"); @@ -294,41 +299,42 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); Max max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.99"))); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(100l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.199"))); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(55l)); max = bucket.getAggregations().get("max"); @@ -350,35 +356,36 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(55l)); } @@ -413,35 +420,36 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(101l)); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(56l)); } @@ -460,35 +468,36 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(101l)); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(56l)); } @@ -508,41 +517,42 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); Max max = bucket.getAggregations().get("max"); assertThat(max, Matchers.notNullValue()); assertThat((long) max.getValue(), equalTo(IpFieldMapper.ipToLong("10.0.0.100"))); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(101l)); max = bucket.getAggregations().get("max"); assertThat(max, Matchers.notNullValue()); assertThat((long) max.getValue(), equalTo(IpFieldMapper.ipToLong("10.0.0.200"))); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(56l)); max = bucket.getAggregations().get("max"); @@ -563,35 +573,36 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(55l)); } @@ -610,41 +621,42 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); Max max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.99"))); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(100l)); max = bucket.getAggregations().get("max"); assertThat(max, notNullValue()); assertThat(max.getValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.199"))); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(55l)); max = bucket.getAggregations().get("max"); @@ -665,35 +677,36 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(101l)); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(56l)); } @@ -712,41 +725,42 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); Max max = bucket.getAggregations().get("max"); assertThat(max, Matchers.notNullValue()); assertThat((long) max.getValue(), equalTo(IpFieldMapper.ipToLong("10.0.0.100"))); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(101l)); max = bucket.getAggregations().get("max"); assertThat(max, Matchers.notNullValue()); assertThat((long) max.getValue(), equalTo(IpFieldMapper.ipToLong("10.0.0.200"))); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(56l)); max = bucket.getAggregations().get("max"); @@ -767,35 +781,36 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(0l)); } @@ -813,35 +828,36 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); + Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - IPv4Range.Bucket bucket = range.getBucketByKey("*-10.0.0.100"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("*-10.0.0.100")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.100-10.0.0.200"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.100-10.0.0.200")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.100")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.100"))); assertThat(bucket.getToAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getTo().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); assertThat(bucket.getDocCount(), equalTo(100l)); - bucket = range.getBucketByKey("10.0.0.200-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("10.0.0.200-*")); + assertThat((String) bucket.getKey(), equalTo("10.0.0.200-*")); assertThat(bucket.getFromAsString(), equalTo("10.0.0.200")); - assertThat(bucket.getFrom().doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo((double) IpFieldMapper.ipToLong("10.0.0.200"))); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(55l)); } @@ -857,15 +873,15 @@ public class IPv4RangeTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); - IPv4Range range = bucket.getAggregations().get("ip_range"); - List buckets = new ArrayList<>(range.getBuckets()); + Range range = bucket.getAggregations().get("ip_range"); + List buckets = new ArrayList<>(range.getBuckets()); assertThat(range, Matchers.notNullValue()); assertThat(range.getName(), equalTo("ip_range")); assertThat(buckets.size(), is(1)); - assertThat(buckets.get(0).getKey(), equalTo("r1")); + assertThat((String) buckets.get(0).getKey(), equalTo("r1")); assertThat(buckets.get(0).getFromAsString(), equalTo("10.0.0.1")); assertThat(buckets.get(0).getToAsString(), equalTo("10.0.0.10")); assertThat(buckets.get(0).getDocCount(), equalTo(0l)); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsTests.java index ea11e27cdd5..2cde04ccab3 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsTests.java @@ -223,7 +223,7 @@ public class LongTermsTests extends AbstractTermsTests { } private String key(Terms.Bucket bucket) { - return randomBoolean() ? bucket.getKey() : key(bucket); + return bucket.getKeyAsString(); } @Test @@ -409,7 +409,7 @@ public class LongTermsTests extends AbstractTermsTests { Sum sum = bucket.getAggregations().get("sum"); assertThat(sum, notNullValue()); assertThat((long) sum.getValue(), equalTo(i+i+1l)); - assertThat((String) propertiesKeys[i], equalTo(String.valueOf(i))); + assertThat((long) propertiesKeys[i], equalTo((long) i)); assertThat((long) propertiesDocCounts[i], equalTo(1l)); assertThat((double) propertiesCounts[i], equalTo((double) i + i + 1l)); } @@ -805,7 +805,7 @@ public class LongTermsTests extends AbstractTermsTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); Terms terms = bucket.getAggregations().get("terms"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountTests.java index 7aebea3e263..730bc4d61ba 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountTests.java @@ -22,6 +22,7 @@ package org.elasticsearch.search.aggregations.bucket; import com.carrotsearch.hppc.LongOpenHashSet; import com.carrotsearch.hppc.LongSet; import com.carrotsearch.randomizedtesting.generators.RandomStrings; + import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; @@ -29,21 +30,26 @@ import org.elasticsearch.action.search.SearchType; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; -import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogram; +import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; import org.elasticsearch.test.ElasticsearchIntegrationTest; -import org.elasticsearch.test.junit.annotations.TestLogging; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; -import static org.elasticsearch.search.aggregations.AggregationBuilders.*; +import static org.elasticsearch.search.aggregations.AggregationBuilders.dateHistogram; +import static org.elasticsearch.search.aggregations.AggregationBuilders.histogram; +import static org.elasticsearch.search.aggregations.AggregationBuilders.terms; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAllSuccessful; @@ -116,13 +122,12 @@ public class MinDocCountTests extends AbstractTermsTests { int size2 = 0; while (it1.hasNext()) { final Terms.Bucket bucket1 = it1.next(); - if (bucket1.getDocCount() >= minDocCount && (matcher == null || matcher.reset(bucket1.getKey()).matches())) { + if (bucket1.getDocCount() >= minDocCount && (matcher == null || matcher.reset(bucket1.getKeyAsString()).matches())) { if (size2++ == size) { break; } assertTrue(it2.hasNext()); final Terms.Bucket bucket2 = it2.next(); - assertEquals(bucket1.getKeyAsText(), bucket2.getKeyAsText()); assertEquals(bucket1.getDocCount(), bucket2.getDocCount()); } } @@ -134,18 +139,7 @@ public class MinDocCountTests extends AbstractTermsTests { for (Histogram.Bucket b1 : histo1.getBuckets()) { if (b1.getDocCount() >= minDocCount) { final Histogram.Bucket b2 = it2.next(); - assertEquals(b1.getKeyAsNumber(), b2.getKeyAsNumber()); - assertEquals(b1.getDocCount(), b2.getDocCount()); - } - } - } - - private void assertSubset(DateHistogram histo1, DateHistogram histo2, long minDocCount) { - final Iterator it2 = histo2.getBuckets().iterator(); - for (DateHistogram.Bucket b1 : histo1.getBuckets()) { - if (b1.getDocCount() >= minDocCount) { - final DateHistogram.Bucket b2 = it2.next(); - assertEquals(b1.getKeyAsNumber(), b2.getKeyAsNumber()); + assertEquals(b1.getKey(), b2.getKey()); assertEquals(b1.getDocCount(), b2.getDocCount()); } } @@ -378,18 +372,18 @@ public class MinDocCountTests extends AbstractTermsTests { final SearchResponse allResponse = client().prepareSearch("idx").setTypes("type") .setSearchType(SearchType.COUNT) .setQuery(QUERY) - .addAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).order(order).minDocCount(0)) + .addAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).order(order).minDocCount(0)) .execute().actionGet(); - final DateHistogram allHisto = allResponse.getAggregations().get("histo"); + final Histogram allHisto = allResponse.getAggregations().get("histo"); for (long minDocCount = 0; minDocCount < 50; ++minDocCount) { final SearchResponse response = client().prepareSearch("idx").setTypes("type") .setSearchType(SearchType.COUNT) .setQuery(QUERY) - .addAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).order(order).minDocCount(minDocCount)) + .addAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).order(order).minDocCount(minDocCount)) .execute().actionGet(); - assertSubset(allHisto, (DateHistogram) response.getAggregations().get("histo"), minDocCount); + assertSubset(allHisto, (Histogram) response.getAggregations().get("histo"), minDocCount); } } diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/MissingTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/MissingTests.java index 599d51fabf2..b2631879203 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/MissingTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/MissingTests.java @@ -199,7 +199,7 @@ public class MissingTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); Missing missing = bucket.getAggregations().get("missing"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/NestedTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/NestedTests.java index 549ec321715..ac28cd4c8e4 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/NestedTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/NestedTests.java @@ -46,9 +46,21 @@ import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.index.query.FilterBuilders.termFilter; import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery; -import static org.elasticsearch.search.aggregations.AggregationBuilders.*; -import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*; -import static org.hamcrest.Matchers.*; +import static org.elasticsearch.search.aggregations.AggregationBuilders.filter; +import static org.elasticsearch.search.aggregations.AggregationBuilders.histogram; +import static org.elasticsearch.search.aggregations.AggregationBuilders.max; +import static org.elasticsearch.search.aggregations.AggregationBuilders.nested; +import static org.elasticsearch.search.aggregations.AggregationBuilders.stats; +import static org.elasticsearch.search.aggregations.AggregationBuilders.sum; +import static org.elasticsearch.search.aggregations.AggregationBuilders.terms; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.sameInstance; import static org.hamcrest.core.IsNull.notNullValue; /** @@ -335,7 +347,7 @@ public class NestedTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); Nested nested = bucket.getAggregations().get("nested"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeTests.java index 11e137a1a75..7305f089c70 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeTests.java @@ -23,6 +23,7 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.range.Range; +import org.elasticsearch.search.aggregations.bucket.range.Range.Bucket; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.metrics.avg.Avg; import org.elasticsearch.search.aggregations.metrics.sum.Sum; @@ -103,7 +104,10 @@ public class RangeTests extends ElasticsearchIntegrationTest { final long docCount = i == 1 || i == numDocs + 1 ? 1 : 2; assertThat(bucket.getDocCount(), equalTo(docCount)); Range range = bucket.getAggregations().get("range"); - Range.Bucket rangeBucket = range.getBucketByKey("*-3.0"); + List buckets = range.getBuckets(); + Range.Bucket rangeBucket = buckets.get(0); + assertThat((String) rangeBucket.getKey(), equalTo("*-3.0")); + assertThat(rangeBucket.getKeyAsString(), equalTo("*-3.0")); assertThat(rangeBucket, notNullValue()); assertThat(rangeBucket.getFromAsString(), nullValue()); assertThat(rangeBucket.getToAsString(), equalTo("3.0")); @@ -114,7 +118,9 @@ public class RangeTests extends ElasticsearchIntegrationTest { } else { assertThat(rangeBucket.getDocCount(), equalTo(0L)); } - rangeBucket = range.getBucketByKey("3.0-6.0"); + rangeBucket = buckets.get(1); + assertThat((String) rangeBucket.getKey(), equalTo("3.0-6.0")); + assertThat(rangeBucket.getKeyAsString(), equalTo("3.0-6.0")); assertThat(rangeBucket, notNullValue()); assertThat(rangeBucket.getFromAsString(), equalTo("3.0")); assertThat(rangeBucket.getToAsString(), equalTo("6.0")); @@ -125,7 +131,9 @@ public class RangeTests extends ElasticsearchIntegrationTest { } else { assertThat(rangeBucket.getDocCount(), equalTo(0L)); } - rangeBucket = range.getBucketByKey("6.0-*"); + rangeBucket = buckets.get(2); + assertThat((String) rangeBucket.getKey(), equalTo("6.0-*")); + assertThat(rangeBucket.getKeyAsString(), equalTo("6.0-*")); assertThat(rangeBucket, notNullValue()); assertThat(rangeBucket.getFromAsString(), equalTo("6.0")); assertThat(rangeBucket.getToAsString(), nullValue()); @@ -155,31 +163,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); - assertThat(range.getBuckets().size(), equalTo(3)); + List buckets = range.getBuckets(); + assertThat(buckets.size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) ((Number) bucket.getFrom())).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) ((Number) bucket.getTo())).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(3l)); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 5L)); @@ -203,31 +212,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("3-6"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3-6")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3-6")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3")); assertThat(bucket.getToAsString(), equalTo("6")); assertThat(bucket.getDocCount(), equalTo(3l)); - bucket = range.getBucketByKey("6-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 5L)); @@ -249,31 +259,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("r1"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r1")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("r1")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("r2"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r2")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("r2")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(3l)); - bucket = range.getBucketByKey("r3"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r3")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("r3")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 5L)); @@ -296,16 +307,17 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); Object[] propertiesKeys = (Object[]) range.getProperty("_key"); Object[] propertiesDocCounts = (Object[]) range.getProperty("_count"); Object[] propertiesCounts = (Object[]) range.getProperty("sum.value"); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -316,11 +328,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat((long) propertiesDocCounts[0], equalTo(2l)); assertThat((double) propertiesCounts[0], equalTo(3.0)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(3l)); @@ -331,11 +343,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat((long) propertiesDocCounts[1], equalTo(3l)); assertThat((double) propertiesCounts[1], equalTo(12.0)); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 5l)); @@ -368,13 +380,14 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -382,11 +395,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(avg, notNullValue()); assertThat(avg.getValue(), equalTo(1.5)); // (1 + 2) / 2 - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(3l)); @@ -394,11 +407,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(avg, notNullValue()); assertThat(avg.getValue(), equalTo(4.0)); // (3 + 4 + 5) / 3 - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 5l)); @@ -428,31 +441,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(1l)); // 2 - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(3l)); // 3, 4, 5 - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -487,31 +501,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(4l)); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -547,31 +562,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(1l)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(4l)); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 3l)); @@ -612,13 +628,14 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(1l)); @@ -627,11 +644,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(sum.getName(), equalTo("sum")); assertThat(sum.getValue(), equalTo(2d+3d)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(4l)); @@ -640,11 +657,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(sum.getName(), equalTo("sum")); assertThat(sum.getValue(), equalTo((double) 2+3+3+4+4+5+5+6)); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 3L)); @@ -674,31 +691,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(3l)); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 5l)); @@ -721,13 +739,14 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -735,11 +754,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(avg, notNullValue()); assertThat(avg.getValue(), equalTo(1.5)); // (1 + 2) / 2 - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(3l)); @@ -747,11 +766,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(avg, notNullValue()); assertThat(avg.getValue(), equalTo(4.0)); // (3 + 4 + 5) / 3 - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 5l)); @@ -779,22 +798,23 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(2)); - Range.Bucket bucket = range.getBucketByKey("*--1.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*--1.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(-1.0)); + assertThat((String) bucket.getKey(), equalTo("*--1.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(-1.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("-1.0")); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = range.getBucketByKey("1000.0-*"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("1000.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(1000d)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("1000.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(1000d)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("1000.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(0l)); @@ -816,31 +836,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(4l)); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -880,13 +901,14 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("r1"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r1")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("r1")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); @@ -895,11 +917,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(sum.getName(), equalTo("sum")); assertThat(sum.getValue(), equalTo((double) 1+2+2+3)); - bucket = range.getBucketByKey("r2"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r2")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("r2")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(4l)); @@ -908,11 +930,11 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(sum.getName(), equalTo("sum")); assertThat(sum.getValue(), equalTo((double) 2+3+3+4+4+5+5+6)); - bucket = range.getBucketByKey("r3"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("r3")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("r3")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 4l)); @@ -942,31 +964,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(0l)); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(0l)); @@ -990,31 +1013,32 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(3)); - Range.Bucket bucket = range.getBucketByKey("*-3.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-3.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(3.0)); + assertThat((String) bucket.getKey(), equalTo("*-3.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(3.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("3.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(3l)); - bucket = range.getBucketByKey("6.0-*"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("6.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(6.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("6.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(6.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("6.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 5l)); @@ -1037,40 +1061,41 @@ public class RangeTests extends ElasticsearchIntegrationTest { Range range = response.getAggregations().get("range"); assertThat(range, notNullValue()); assertThat(range.getName(), equalTo("range")); + List buckets = range.getBuckets(); assertThat(range.getBuckets().size(), equalTo(4)); - Range.Bucket bucket = range.getBucketByKey("*-5.0"); + Range.Bucket bucket = buckets.get(0); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("*-5.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); - assertThat(bucket.getTo().doubleValue(), equalTo(5.0)); + assertThat((String) bucket.getKey(), equalTo("*-5.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(Double.NEGATIVE_INFINITY)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(5.0)); assertThat(bucket.getFromAsString(), nullValue()); assertThat(bucket.getToAsString(), equalTo("5.0")); assertThat(bucket.getDocCount(), equalTo(4l)); - bucket = range.getBucketByKey("3.0-6.0"); + bucket = buckets.get(1); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("3.0-6.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(3.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(6.0)); + assertThat((String) bucket.getKey(), equalTo("3.0-6.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(3.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(6.0)); assertThat(bucket.getFromAsString(), equalTo("3.0")); assertThat(bucket.getToAsString(), equalTo("6.0")); assertThat(bucket.getDocCount(), equalTo(4l)); - bucket = range.getBucketByKey("4.0-5.0"); + bucket = buckets.get(2); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("4.0-5.0")); - assertThat(bucket.getFrom().doubleValue(), equalTo(4.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(5.0)); + assertThat((String) bucket.getKey(), equalTo("4.0-5.0")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(4.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(5.0)); assertThat(bucket.getFromAsString(), equalTo("4.0")); assertThat(bucket.getToAsString(), equalTo("5.0")); assertThat(bucket.getDocCount(), equalTo(2l)); - bucket = range.getBucketByKey("4.0-*"); + bucket = buckets.get(3); assertThat(bucket, notNullValue()); - assertThat(bucket.getKey(), equalTo("4.0-*")); - assertThat(bucket.getFrom().doubleValue(), equalTo(4.0)); - assertThat(bucket.getTo().doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat((String) bucket.getKey(), equalTo("4.0-*")); + assertThat(((Number) bucket.getFrom()).doubleValue(), equalTo(4.0)); + assertThat(((Number) bucket.getTo()).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); assertThat(bucket.getFromAsString(), equalTo("4.0")); assertThat(bucket.getToAsString(), nullValue()); assertThat(bucket.getDocCount(), equalTo(numDocs - 2l)); @@ -1087,7 +1112,7 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(0l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); Range range = bucket.getAggregations().get("range"); @@ -1095,9 +1120,9 @@ public class RangeTests extends ElasticsearchIntegrationTest { assertThat(range, Matchers.notNullValue()); assertThat(range.getName(), equalTo("range")); assertThat(buckets.size(), is(1)); - assertThat(buckets.get(0).getKey(), equalTo("0-2")); - assertThat(buckets.get(0).getFrom().doubleValue(), equalTo(0.0)); - assertThat(buckets.get(0).getTo().doubleValue(), equalTo(2.0)); + assertThat((String) buckets.get(0).getKey(), equalTo("0-2")); + assertThat(((Number) buckets.get(0).getFrom()).doubleValue(), equalTo(0.0)); + assertThat(((Number) buckets.get(0).getTo()).doubleValue(), equalTo(2.0)); assertThat(buckets.get(0).getFromAsString(), equalTo("0.0")); assertThat(buckets.get(0).getToAsString(), equalTo("2.0")); assertThat(buckets.get(0).getDocCount(), equalTo(0l)); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/ReverseNestedTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/ReverseNestedTests.java index 6f3681873b7..2b782d869f1 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/ReverseNestedTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/ReverseNestedTests.java @@ -41,11 +41,18 @@ import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.index.query.FilterBuilders.termFilter; import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery; -import static org.elasticsearch.search.aggregations.AggregationBuilders.*; -import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*; +import static org.elasticsearch.search.aggregations.AggregationBuilders.count; +import static org.elasticsearch.search.aggregations.AggregationBuilders.filter; +import static org.elasticsearch.search.aggregations.AggregationBuilders.nested; +import static org.elasticsearch.search.aggregations.AggregationBuilders.reverseNested; +import static org.elasticsearch.search.aggregations.AggregationBuilders.terms; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures; -import static org.hamcrest.Matchers.*; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.sameInstance; import static org.hamcrest.core.IsNull.notNullValue; /** @@ -160,7 +167,7 @@ public class ReverseNestedTests extends ElasticsearchIntegrationTest { // nested.field2: 1 Terms.Bucket bucket = usernameBuckets.get(0); - assertThat(bucket.getKey(), equalTo("1")); + assertThat(bucket.getKeyAsString(), equalTo("1")); assertThat(bucket.getDocCount(), equalTo(6l)); ReverseNested reverseNested = bucket.getAggregations().get("nested1_to_field1"); assertThat((long) reverseNested.getProperty("_count"), equalTo(5l)); @@ -168,153 +175,153 @@ public class ReverseNestedTests extends ElasticsearchIntegrationTest { assertThat((Terms) reverseNested.getProperty("field1"), sameInstance(tags)); List tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(6)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(4l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("a")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("a")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(3l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("e")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("e")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(3).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(3).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(3).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(4).getKey(), equalTo("d")); + assertThat(tagsBuckets.get(4).getKeyAsString(), equalTo("d")); assertThat(tagsBuckets.get(4).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(5).getKey(), equalTo("x")); + assertThat(tagsBuckets.get(5).getKeyAsString(), equalTo("x")); assertThat(tagsBuckets.get(5).getDocCount(), equalTo(1l)); // nested.field2: 4 bucket = usernameBuckets.get(1); - assertThat(bucket.getKey(), equalTo("4")); + assertThat(bucket.getKeyAsString(), equalTo("4")); assertThat(bucket.getDocCount(), equalTo(4l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(5)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("a")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("a")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(3l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(3).getKey(), equalTo("d")); + assertThat(tagsBuckets.get(3).getKeyAsString(), equalTo("d")); assertThat(tagsBuckets.get(3).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(4).getKey(), equalTo("e")); + assertThat(tagsBuckets.get(4).getKeyAsString(), equalTo("e")); assertThat(tagsBuckets.get(4).getDocCount(), equalTo(1l)); // nested.field2: 7 bucket = usernameBuckets.get(2); - assertThat(bucket.getKey(), equalTo("7")); + assertThat(bucket.getKeyAsString(), equalTo("7")); assertThat(bucket.getDocCount(), equalTo(3l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(5)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("d")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("d")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("e")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("e")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(3).getKey(), equalTo("a")); + assertThat(tagsBuckets.get(3).getKeyAsString(), equalTo("a")); assertThat(tagsBuckets.get(3).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(4).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(4).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(4).getDocCount(), equalTo(1l)); // nested.field2: 2 bucket = usernameBuckets.get(3); - assertThat(bucket.getKey(), equalTo("2")); + assertThat(bucket.getKeyAsString(), equalTo("2")); assertThat(bucket.getDocCount(), equalTo(2l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(3)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("a")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("a")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(1l)); // nested.field2: 3 bucket = usernameBuckets.get(4); - assertThat(bucket.getKey(), equalTo("3")); + assertThat(bucket.getKeyAsString(), equalTo("3")); assertThat(bucket.getDocCount(), equalTo(2l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(3)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("a")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("a")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(1l)); // nested.field2: 5 bucket = usernameBuckets.get(5); - assertThat(bucket.getKey(), equalTo("5")); + assertThat(bucket.getKeyAsString(), equalTo("5")); assertThat(bucket.getDocCount(), equalTo(2l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(4)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("d")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("d")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(3).getKey(), equalTo("z")); + assertThat(tagsBuckets.get(3).getKeyAsString(), equalTo("z")); assertThat(tagsBuckets.get(3).getDocCount(), equalTo(1l)); // nested.field2: 6 bucket = usernameBuckets.get(6); - assertThat(bucket.getKey(), equalTo("6")); + assertThat(bucket.getKeyAsString(), equalTo("6")); assertThat(bucket.getDocCount(), equalTo(2l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(4)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("d")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("d")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(3).getKey(), equalTo("y")); + assertThat(tagsBuckets.get(3).getKeyAsString(), equalTo("y")); assertThat(tagsBuckets.get(3).getDocCount(), equalTo(1l)); // nested.field2: 8 bucket = usernameBuckets.get(7); - assertThat(bucket.getKey(), equalTo("8")); + assertThat(bucket.getKeyAsString(), equalTo("8")); assertThat(bucket.getDocCount(), equalTo(2l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(4)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(2l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("d")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("d")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("e")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("e")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(3).getKey(), equalTo("x")); + assertThat(tagsBuckets.get(3).getKeyAsString(), equalTo("x")); assertThat(tagsBuckets.get(3).getDocCount(), equalTo(1l)); // nested.field2: 9 bucket = usernameBuckets.get(8); - assertThat(bucket.getKey(), equalTo("9")); + assertThat(bucket.getKeyAsString(), equalTo("9")); assertThat(bucket.getDocCount(), equalTo(2l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(4)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("d")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("d")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("e")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("e")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(3).getKey(), equalTo("z")); + assertThat(tagsBuckets.get(3).getKeyAsString(), equalTo("z")); assertThat(tagsBuckets.get(3).getDocCount(), equalTo(1l)); } @@ -373,75 +380,75 @@ public class ReverseNestedTests extends ElasticsearchIntegrationTest { List usernameBuckets = new ArrayList<>(usernames.getBuckets()); Terms.Bucket bucket = usernameBuckets.get(0); - assertThat(bucket.getKey(), equalTo("0")); + assertThat(bucket.getKeyAsString(), equalTo("0")); assertThat(bucket.getDocCount(), equalTo(12l)); ReverseNested reverseNested = bucket.getAggregations().get("nested1_to_field1"); assertThat(reverseNested.getDocCount(), equalTo(5l)); Terms tags = reverseNested.getAggregations().get("field1"); List tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(2)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("a")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("a")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(3l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(2l)); bucket = usernameBuckets.get(1); - assertThat(bucket.getKey(), equalTo("1")); + assertThat(bucket.getKeyAsString(), equalTo("1")); assertThat(bucket.getDocCount(), equalTo(6l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); assertThat(reverseNested.getDocCount(), equalTo(4l)); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(4)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("a")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("a")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(3).getKey(), equalTo("e")); + assertThat(tagsBuckets.get(3).getKeyAsString(), equalTo("e")); assertThat(tagsBuckets.get(3).getDocCount(), equalTo(1l)); bucket = usernameBuckets.get(2); - assertThat(bucket.getKey(), equalTo("2")); + assertThat(bucket.getKeyAsString(), equalTo("2")); assertThat(bucket.getDocCount(), equalTo(5l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); assertThat(reverseNested.getDocCount(), equalTo(4l)); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(4)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("a")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("a")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("b")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("b")); assertThat(tagsBuckets.get(1).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(2).getKey(), equalTo("c")); + assertThat(tagsBuckets.get(2).getKeyAsString(), equalTo("c")); assertThat(tagsBuckets.get(2).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(3).getKey(), equalTo("e")); + assertThat(tagsBuckets.get(3).getKeyAsString(), equalTo("e")); assertThat(tagsBuckets.get(3).getDocCount(), equalTo(1l)); bucket = usernameBuckets.get(3); - assertThat(bucket.getKey(), equalTo("3")); + assertThat(bucket.getKeyAsString(), equalTo("3")); assertThat(bucket.getDocCount(), equalTo(2l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); assertThat(reverseNested.getDocCount(), equalTo(2l)); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(2)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("d")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("d")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("f")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("f")); bucket = usernameBuckets.get(4); - assertThat(bucket.getKey(), equalTo("4")); + assertThat(bucket.getKeyAsString(), equalTo("4")); assertThat(bucket.getDocCount(), equalTo(2l)); reverseNested = bucket.getAggregations().get("nested1_to_field1"); assertThat(reverseNested.getDocCount(), equalTo(2l)); tags = reverseNested.getAggregations().get("field1"); tagsBuckets = new ArrayList<>(tags.getBuckets()); assertThat(tagsBuckets.size(), equalTo(2)); - assertThat(tagsBuckets.get(0).getKey(), equalTo("d")); + assertThat(tagsBuckets.get(0).getKeyAsString(), equalTo("d")); assertThat(tagsBuckets.get(0).getDocCount(), equalTo(1l)); - assertThat(tagsBuckets.get(1).getKey(), equalTo("f")); + assertThat(tagsBuckets.get(1).getKeyAsString(), equalTo("f")); } @Test(expected = SearchPhaseExecutionException.class) diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardReduceTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardReduceTests.java index 12064092d10..e6b508dc5d9 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardReduceTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardReduceTests.java @@ -27,19 +27,27 @@ import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.geogrid.GeoHashGrid; import org.elasticsearch.search.aggregations.bucket.global.Global; -import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogram; +import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.missing.Missing; import org.elasticsearch.search.aggregations.bucket.nested.Nested; import org.elasticsearch.search.aggregations.bucket.range.Range; -import org.elasticsearch.search.aggregations.bucket.range.date.DateRange; -import org.elasticsearch.search.aggregations.bucket.range.ipv4.IPv4Range; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.test.ElasticsearchIntegrationTest; import org.junit.Test; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; -import static org.elasticsearch.search.aggregations.AggregationBuilders.*; +import static org.elasticsearch.search.aggregations.AggregationBuilders.dateHistogram; +import static org.elasticsearch.search.aggregations.AggregationBuilders.dateRange; +import static org.elasticsearch.search.aggregations.AggregationBuilders.filter; +import static org.elasticsearch.search.aggregations.AggregationBuilders.geohashGrid; +import static org.elasticsearch.search.aggregations.AggregationBuilders.global; +import static org.elasticsearch.search.aggregations.AggregationBuilders.histogram; +import static org.elasticsearch.search.aggregations.AggregationBuilders.ipRange; +import static org.elasticsearch.search.aggregations.AggregationBuilders.missing; +import static org.elasticsearch.search.aggregations.AggregationBuilders.nested; +import static org.elasticsearch.search.aggregations.AggregationBuilders.range; +import static org.elasticsearch.search.aggregations.AggregationBuilders.terms; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; import static org.hamcrest.Matchers.equalTo; @@ -87,13 +95,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(global("global") - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); Global global = response.getAggregations().get("global"); - DateHistogram histo = global.getAggregations().get("histo"); + Histogram histo = global.getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -103,13 +111,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(filter("filter").filter(FilterBuilders.matchAllFilter()) - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); Filter filter = response.getAggregations().get("filter"); - DateHistogram histo = filter.getAggregations().get("histo"); + Histogram histo = filter.getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -119,13 +127,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(missing("missing").field("foobar") - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); Missing missing = response.getAggregations().get("missing"); - DateHistogram histo = missing.getAggregations().get("histo"); + Histogram histo = missing.getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -137,7 +145,7 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { .addAggregation(global("global") .subAggregation(filter("filter").filter(FilterBuilders.matchAllFilter()) .subAggregation(missing("missing").field("foobar") - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))))) .execute().actionGet(); assertSearchResponse(response); @@ -145,7 +153,7 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { Global global = response.getAggregations().get("global"); Filter filter = global.getAggregations().get("filter"); Missing missing = filter.getAggregations().get("missing"); - DateHistogram histo = missing.getAggregations().get("histo"); + Histogram histo = missing.getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -155,13 +163,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(nested("nested").path("nested") - .subAggregation(dateHistogram("histo").field("nested.date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("nested.date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); Nested nested = response.getAggregations().get("nested"); - DateHistogram histo = nested.getAggregations().get("histo"); + Histogram histo = nested.getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -172,13 +180,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(terms("terms").field("term-s") .collectMode(randomFrom(SubAggCollectionMode.values())) - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); Terms terms = response.getAggregations().get("terms"); - DateHistogram histo = terms.getBucketByKey("term").getAggregations().get("histo"); + Histogram histo = terms.getBucketByKey("term").getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -189,13 +197,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(terms("terms").field("term-l") .collectMode(randomFrom(SubAggCollectionMode.values())) - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); Terms terms = response.getAggregations().get("terms"); - DateHistogram histo = terms.getBucketByKey("1").getAggregations().get("histo"); + Histogram histo = terms.getBucketByKey("1").getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -206,13 +214,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(terms("terms").field("term-d") .collectMode(randomFrom(SubAggCollectionMode.values())) - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); Terms terms = response.getAggregations().get("terms"); - DateHistogram histo = terms.getBucketByKey("1.5").getAggregations().get("histo"); + Histogram histo = terms.getBucketByKey("1.5").getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -222,13 +230,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(range("range").field("value").addRange("r1", 0, 10) - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); Range range = response.getAggregations().get("range"); - DateHistogram histo = range.getBucketByKey("r1").getAggregations().get("histo"); + Histogram histo = range.getBuckets().get(0).getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -238,13 +246,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(dateRange("range").field("date").addRange("r1", "2014-01-01", "2014-01-10") - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); - DateRange range = response.getAggregations().get("range"); - DateHistogram histo = range.getBucketByKey("r1").getAggregations().get("histo"); + Range range = response.getAggregations().get("range"); + Histogram histo = range.getBuckets().get(0).getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -254,13 +262,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(ipRange("range").field("ip").addRange("r1", "10.0.0.1", "10.0.0.10") - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); - IPv4Range range = response.getAggregations().get("range"); - DateHistogram histo = range.getBucketByKey("r1").getAggregations().get("histo"); + Range range = response.getAggregations().get("range"); + Histogram histo = range.getBuckets().get(0).getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -270,13 +278,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(histogram("topHisto").field("value").interval(5) - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); Histogram topHisto = response.getAggregations().get("topHisto"); - DateHistogram histo = topHisto.getBucketByKey(0).getAggregations().get("histo"); + Histogram histo = topHisto.getBuckets().get(0).getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -285,14 +293,14 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) - .addAggregation(dateHistogram("topHisto").field("date").interval(DateHistogram.Interval.MONTH) - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .addAggregation(dateHistogram("topHisto").field("date").interval(DateHistogramInterval.MONTH) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); - DateHistogram topHisto = response.getAggregations().get("topHisto"); - DateHistogram histo = topHisto.getBuckets().iterator().next().getAggregations().get("histo"); + Histogram topHisto = response.getAggregations().get("topHisto"); + Histogram histo = topHisto.getBuckets().iterator().next().getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } @@ -303,13 +311,13 @@ public class ShardReduceTests extends ElasticsearchIntegrationTest { SearchResponse response = client().prepareSearch("idx") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation(geohashGrid("grid").field("location") - .subAggregation(dateHistogram("histo").field("date").interval(DateHistogram.Interval.DAY).minDocCount(0))) + .subAggregation(dateHistogram("histo").field("date").interval(DateHistogramInterval.DAY).minDocCount(0))) .execute().actionGet(); assertSearchResponse(response); GeoHashGrid grid = response.getAggregations().get("grid"); - DateHistogram histo = grid.getBuckets().iterator().next().getAggregations().get("histo"); + Histogram histo = grid.getBuckets().iterator().next().getAggregations().get("histo"); assertThat(histo.getBuckets().size(), equalTo(4)); } diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardSizeTermsTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardSizeTermsTests.java index b342c073017..df449ea7c2a 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardSizeTermsTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardSizeTermsTests.java @@ -19,6 +19,7 @@ package org.elasticsearch.search.aggregations.bucket; import com.google.common.collect.ImmutableMap; + import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.terms.Terms; @@ -54,7 +55,7 @@ public class ShardSizeTermsTests extends ShardSizeTests { .put("2", 5l) .build(); for (Terms.Bucket bucket : buckets) { - assertThat(bucket.getDocCount(), equalTo(expected.get(bucket.getKeyAsText().string()))); + assertThat(bucket.getDocCount(), equalTo(expected.get(bucket.getKeyAsString()))); } } @@ -79,7 +80,7 @@ public class ShardSizeTermsTests extends ShardSizeTests { .put("2", 4l) .build(); for (Terms.Bucket bucket : buckets) { - assertThat(bucket.getDocCount(), equalTo(expected.get(bucket.getKeyAsText().string()))); + assertThat(bucket.getDocCount(), equalTo(expected.get(bucket.getKeyAsString()))); } } @@ -105,7 +106,7 @@ public class ShardSizeTermsTests extends ShardSizeTests { .put("2", 5l) // <-- count is now fixed .build(); for (Terms.Bucket bucket : buckets) { - assertThat(bucket.getDocCount(), equalTo(expected.get(bucket.getKeyAsText().string()))); + assertThat(bucket.getDocCount(), equalTo(expected.get(bucket.getKeyAsString()))); } } @@ -156,7 +157,7 @@ public class ShardSizeTermsTests extends ShardSizeTests { .put("3", 8l) .build(); for (Terms.Bucket bucket : buckets) { - assertThat(bucket.getDocCount(), equalTo(expected.get(bucket.getKeyAsText().string()))); + assertThat(bucket.getDocCount(), equalTo(expected.get(bucket.getKeyAsString()))); } } diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsBackwardCompatibilityTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsBackwardCompatibilityTests.java index 51453804312..9925cd571aa 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsBackwardCompatibilityTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsBackwardCompatibilityTests.java @@ -27,11 +27,12 @@ import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; import org.elasticsearch.test.ElasticsearchBackwardsCompatIntegrationTest; -import org.elasticsearch.test.ElasticsearchIntegrationTest; import org.junit.Test; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import java.util.concurrent.ExecutionException; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; @@ -109,8 +110,8 @@ public class SignificantTermsBackwardCompatibilityTests extends ElasticsearchBac assertTrue(aggs.containsKey("sig_terms")); SignificantTerms agg = (SignificantTerms) aggs.get("sig_terms"); assertThat(agg.getBuckets().size(), equalTo(1)); - String term = agg.iterator().next().getKey(); - String classTerm = classBucket.getKey(); + String term = agg.iterator().next().getKeyAsString(); + String classTerm = classBucket.getKeyAsString(); assertTrue(term.equals(classTerm)); } } diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreTests.java index 525fde3d800..d07ceb89431 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreTests.java @@ -36,7 +36,15 @@ import org.elasticsearch.search.aggregations.bucket.filter.InternalFilter; import org.elasticsearch.search.aggregations.bucket.significant.SignificantTerms; import org.elasticsearch.search.aggregations.bucket.significant.SignificantTermsAggregatorFactory; import org.elasticsearch.search.aggregations.bucket.significant.SignificantTermsBuilder; -import org.elasticsearch.search.aggregations.bucket.significant.heuristics.*; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.ChiSquare; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.GND; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.MutualInformation; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristicBuilder; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristicParser; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristicStreams; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificantTermsHeuristicModule; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.TransportSignificantTermsHeuristicModule; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; @@ -46,7 +54,11 @@ import org.elasticsearch.test.ElasticsearchIntegrationTest.Scope; import org.junit.Test; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.concurrent.ExecutionException; import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_REPLICAS; @@ -54,7 +66,9 @@ import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF import static org.elasticsearch.common.settings.ImmutableSettings.settingsBuilder; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.closeTo; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.greaterThan; /** * @@ -105,8 +119,8 @@ public class SignificantTermsSignificanceScoreTests extends ElasticsearchIntegra assertThat(agg.getBuckets().size(), equalTo(2)); Iterator bucketIterator = agg.iterator(); SignificantTerms.Bucket sigBucket = bucketIterator.next(); - String term = sigBucket.getKey(); - String classTerm = classBucket.getKey(); + String term = sigBucket.getKeyAsString(); + String classTerm = classBucket.getKeyAsString(); assertTrue(term.equals(classTerm)); assertThat(sigBucket.getSignificanceScore(), closeTo(2.0, 1.e-8)); sigBucket = bucketIterator.next(); @@ -137,8 +151,8 @@ public class SignificantTermsSignificanceScoreTests extends ElasticsearchIntegra assertThat(agg.getBuckets().size(), equalTo(2)); Iterator bucketIterator = agg.iterator(); SignificantTerms.Bucket sigBucket = bucketIterator.next(); - String term = sigBucket.getKey(); - String classTerm = classBucket.getKey(); + String term = sigBucket.getKeyAsString(); + String classTerm = classBucket.getKeyAsString(); assertTrue(term.equals(classTerm)); assertThat(sigBucket.getSignificanceScore(), closeTo(2.0, 1.e-8)); sigBucket = bucketIterator.next(); @@ -246,8 +260,8 @@ public class SignificantTermsSignificanceScoreTests extends ElasticsearchIntegra assertTrue(aggs.containsKey("sig_terms")); SignificantTerms agg = (SignificantTerms) aggs.get("sig_terms"); assertThat(agg.getBuckets().size(), equalTo(1)); - String term = agg.iterator().next().getKey(); - String classTerm = classBucket.getKey(); + String term = agg.iterator().next().getKeyAsString(); + String classTerm = classBucket.getKeyAsString(); assertTrue(term.equals(classTerm)); } diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsTests.java index f1718e09cac..996b9576c16 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsTests.java @@ -46,7 +46,9 @@ import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_SHARDS; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.is; /** * @@ -120,7 +122,7 @@ public class SignificantTermsTests extends ElasticsearchIntegrationTest { .actionGet(); assertSearchResponse(response); SignificantTerms topTerms = response.getAggregations().get("mySignificantTerms"); - Number topCategory = topTerms.getBuckets().iterator().next().getKeyAsNumber(); + Number topCategory = (Number) topTerms.getBuckets().iterator().next().getKey(); assertTrue(topCategory.equals(new Long(SNOWBOARDING_CATEGORY))); } @@ -137,7 +139,7 @@ public class SignificantTermsTests extends ElasticsearchIntegrationTest { .actionGet(); assertSearchResponse(response); SignificantTerms topTerms = response.getAggregations().get("mySignificantTerms"); - Number topCategory = topTerms.getBuckets().iterator().next().getKeyAsNumber(); + Number topCategory = (Number) topTerms.getBuckets().iterator().next().getKey(); assertTrue(topCategory.equals(new Long(OTHER_CATEGORY))); } @@ -152,7 +154,7 @@ public class SignificantTermsTests extends ElasticsearchIntegrationTest { SignificantTerms topTerms = response.getAggregations().get("mySignificantTerms"); Set terms = new HashSet<>(); for (Bucket topTerm : topTerms) { - terms.add(topTerm.getKey()); + terms.add(topTerm.getKeyAsString()); } assertThat(terms, hasSize(6)); assertThat(terms.contains("jam"), is(true)); @@ -171,7 +173,7 @@ public class SignificantTermsTests extends ElasticsearchIntegrationTest { topTerms = response.getAggregations().get("mySignificantTerms"); terms = new HashSet<>(); for (Bucket topTerm : topTerms) { - terms.add(topTerm.getKey()); + terms.add(topTerm.getKeyAsString()); } assertThat(terms, hasSize(1)); assertThat(terms.contains("weller"), is(true)); @@ -189,7 +191,7 @@ public class SignificantTermsTests extends ElasticsearchIntegrationTest { SignificantTerms topTerms = response.getAggregations().get("mySignificantTerms"); Set terms = new HashSet<>(); for (Bucket topTerm : topTerms) { - terms.add(topTerm.getKey()); + terms.add(topTerm.getKeyAsString()); } assertThat(terms, hasSize(6)); assertThat(terms.contains("jam"), is(true)); @@ -208,7 +210,7 @@ public class SignificantTermsTests extends ElasticsearchIntegrationTest { topTerms = response.getAggregations().get("mySignificantTerms"); terms = new HashSet<>(); for (Bucket topTerm : topTerms) { - terms.add(topTerm.getKey()); + terms.add(topTerm.getKeyAsString()); } assertThat(terms, hasSize(1)); assertThat(terms.contains("weller"), is(true)); @@ -318,7 +320,7 @@ public class SignificantTermsTests extends ElasticsearchIntegrationTest { SignificantTerms topTerms = response.getAggregations().get("mySignificantTerms"); HashSet topWords = new HashSet(); for (Bucket topTerm : topTerms) { - topWords.add(topTerm.getKey()); + topWords.add(topTerm.getKeyAsString()); } //The word "paul" should be a constant of all docs in the background set and therefore not seen as significant assertFalse(topWords.contains("paul")); @@ -347,9 +349,9 @@ public class SignificantTermsTests extends ElasticsearchIntegrationTest { SignificantTerms topTerms = topCategory.getAggregations().get("mySignificantTerms"); HashSet foundTopWords = new HashSet(); for (Bucket topTerm : topTerms) { - foundTopWords.add(topTerm.getKey()); + foundTopWords.add(topTerm.getKeyAsString()); } - String[] expectedKeywords = expectedKeywordsByCategory[Integer.parseInt(topCategory.getKey()) - 1]; + String[] expectedKeywords = expectedKeywordsByCategory[Integer.parseInt(topCategory.getKeyAsString()) - 1]; for (String expectedKeyword : expectedKeywords) { assertTrue(expectedKeyword + " missing from category keywords", foundTopWords.contains(expectedKeyword)); } @@ -377,7 +379,7 @@ public class SignificantTermsTests extends ElasticsearchIntegrationTest { private void checkExpectedStringTermsFound(SignificantTerms topTerms) { HashMaptopWords=new HashMap<>(); for (Bucket topTerm : topTerms ){ - topWords.put(topTerm.getKey(),topTerm); + topWords.put(topTerm.getKeyAsString(), topTerm); } assertTrue( topWords.containsKey("haakonsen")); assertTrue( topWords.containsKey("craig")); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/StringTermsTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/StringTermsTests.java index 4f0dab507f1..3e9967e2091 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/StringTermsTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/StringTermsTests.java @@ -227,7 +227,7 @@ public class StringTermsTests extends AbstractTermsTests { } private String key(Terms.Bucket bucket) { - return randomBoolean() ? bucket.getKey() : bucket.getKeyAsText().string(); + return bucket.getKeyAsString(); } @Test @@ -1101,7 +1101,7 @@ public class StringTermsTests extends AbstractTermsTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, Matchers.notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, Matchers.notNullValue()); Terms terms = bucket.getAggregations().get("terms"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsDocCountErrorTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsDocCountErrorTests.java index 3c81e8ea9d3..2a625a1e2bd 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsDocCountErrorTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsDocCountErrorTests.java @@ -40,7 +40,10 @@ import static org.elasticsearch.search.aggregations.AggregationBuilders.sum; import static org.elasticsearch.search.aggregations.AggregationBuilders.terms; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.anyOf; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.greaterThanOrEqualTo; +import static org.hamcrest.Matchers.lessThanOrEqualTo; import static org.hamcrest.core.IsNull.notNullValue; @ElasticsearchIntegrationTest.SuiteScopeTest @@ -111,7 +114,7 @@ public class TermsDocCountErrorTests extends ElasticsearchIntegrationTest{ for (Terms.Bucket testBucket : testBuckets) { assertThat(testBucket, notNullValue()); - Terms.Bucket accurateBucket = accurateTerms.getBucketByKey(testBucket.getKey()); + Terms.Bucket accurateBucket = accurateTerms.getBucketByKey(testBucket.getKeyAsString()); assertThat(accurateBucket, notNullValue()); assertThat(accurateBucket.getDocCountError(), equalTo(0l)); assertThat(testBucket.getDocCountError(), lessThanOrEqualTo(testTerms.getDocCountError())); @@ -121,7 +124,7 @@ public class TermsDocCountErrorTests extends ElasticsearchIntegrationTest{ for (Terms.Bucket accurateBucket: accurateTerms.getBuckets()) { assertThat(accurateBucket, notNullValue()); - Terms.Bucket testBucket = accurateTerms.getBucketByKey(accurateBucket.getKey()); + Terms.Bucket testBucket = accurateTerms.getBucketByKey(accurateBucket.getKeyAsString()); if (testBucket == null) { assertThat(accurateBucket.getDocCount(), lessThanOrEqualTo(testTerms.getDocCountError())); } @@ -145,7 +148,7 @@ public class TermsDocCountErrorTests extends ElasticsearchIntegrationTest{ for (Terms.Bucket testBucket : testBuckets) { assertThat(testBucket, notNullValue()); - Terms.Bucket accurateBucket = accurateTerms.getBucketByKey(testBucket.getKey()); + Terms.Bucket accurateBucket = accurateTerms.getBucketByKey(testBucket.getKeyAsString()); assertThat(accurateBucket, notNullValue()); assertThat(accurateBucket.getDocCountError(), equalTo(0l)); assertThat(testBucket.getDocCountError(), equalTo(0l)); @@ -182,7 +185,7 @@ public class TermsDocCountErrorTests extends ElasticsearchIntegrationTest{ for (Terms.Bucket testBucket : testBuckets) { assertThat(testBucket, notNullValue()); - Terms.Bucket accurateBucket = accurateTerms.getBucketByKey(testBucket.getKey()); + Terms.Bucket accurateBucket = accurateTerms.getBucketByKey(testBucket.getKeyAsString()); assertThat(accurateBucket, notNullValue()); assertThat(accurateBucket.getDocCountError(), equalTo(0l)); assertThat(testBucket.getDocCountError(), anyOf(equalTo(-1l), equalTo(0l))); diff --git a/src/test/java/org/elasticsearch/search/aggregations/bucket/TopHitsTests.java b/src/test/java/org/elasticsearch/search/aggregations/bucket/TopHitsTests.java index 6e34ec1cff5..aa4b3a79fb6 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/bucket/TopHitsTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/bucket/TopHitsTests.java @@ -229,7 +229,7 @@ public class TopHitsTests extends ElasticsearchIntegrationTest { } private String key(Terms.Bucket bucket) { - return randomBoolean() ? bucket.getKey() : bucket.getKeyAsText().string(); + return bucket.getKeyAsString(); } @Test @@ -857,7 +857,7 @@ public class TopHitsTests extends ElasticsearchIntegrationTest { Histogram histogram = searchResponse.getAggregations().get("dates"); for (int i = 0; i < numArticles; i += 5) { - Histogram.Bucket bucket = histogram.getBucketByKey(i); + Histogram.Bucket bucket = histogram.getBuckets().get(i / 5); assertThat(bucket.getDocCount(), equalTo(5l)); long numNestedDocs = 10 + (5 * i); diff --git a/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgTests.java b/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgTests.java index ce0e7e0c1f8..fb4bb058c29 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgTests.java @@ -48,7 +48,7 @@ public class AvgTests extends AbstractNumericTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, notNullValue()); Avg avg = bucket.getAggregations().get("avg"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsTests.java b/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsTests.java index 79d624b1e0e..ccf25f159af 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsTests.java @@ -64,7 +64,7 @@ public class ExtendedStatsTests extends AbstractNumericTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, notNullValue()); ExtendedStats stats = bucket.getAggregations().get("stats"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxTests.java b/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxTests.java index 32a335eef8c..7ea292c266a 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxTests.java @@ -47,7 +47,7 @@ public class MaxTests extends AbstractNumericTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, notNullValue()); Max max = bucket.getAggregations().get("max"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/metrics/MinTests.java b/src/test/java/org/elasticsearch/search/aggregations/metrics/MinTests.java index b9d916aad25..b311bfe0f9b 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/metrics/MinTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/metrics/MinTests.java @@ -47,7 +47,7 @@ public class MinTests extends AbstractNumericTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, notNullValue()); Min min = bucket.getAggregations().get("min"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/metrics/PercentileRanksTests.java b/src/test/java/org/elasticsearch/search/aggregations/metrics/PercentileRanksTests.java index 05346a46e8a..5b8ce51c551 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/metrics/PercentileRanksTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/metrics/PercentileRanksTests.java @@ -19,6 +19,7 @@ package org.elasticsearch.search.aggregations.metrics; import com.google.common.collect.Lists; + import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.search.aggregations.bucket.global.Global; @@ -111,7 +112,7 @@ public class PercentileRanksTests extends AbstractNumericTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, notNullValue()); PercentileRanks reversePercentiles = bucket.getAggregations().get("percentile_ranks"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/metrics/PercentilesTests.java b/src/test/java/org/elasticsearch/search/aggregations/metrics/PercentilesTests.java index f233171ec00..207a1714a79 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/metrics/PercentilesTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/metrics/PercentilesTests.java @@ -112,7 +112,7 @@ public class PercentilesTests extends AbstractNumericTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, notNullValue()); Percentiles percentiles = bucket.getAggregations().get("percentiles"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricTests.java b/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricTests.java index 30412ade7a7..4d8a514d84c 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricTests.java @@ -719,7 +719,7 @@ public class ScriptedMetricTests extends ElasticsearchIntegrationTest { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, notNullValue()); ScriptedMetric scriptedMetric = bucket.getAggregations().get("scripted"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsTests.java b/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsTests.java index 3510f218797..221d6ce9a12 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsTests.java @@ -52,7 +52,7 @@ public class StatsTests extends AbstractNumericTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, notNullValue()); Stats stats = bucket.getAggregations().get("stats"); diff --git a/src/test/java/org/elasticsearch/search/aggregations/metrics/SumTests.java b/src/test/java/org/elasticsearch/search/aggregations/metrics/SumTests.java index 4340c3e2ddc..3ba043708c7 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/metrics/SumTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/metrics/SumTests.java @@ -47,7 +47,7 @@ public class SumTests extends AbstractNumericTests { assertThat(searchResponse.getHits().getTotalHits(), equalTo(2l)); Histogram histo = searchResponse.getAggregations().get("histo"); assertThat(histo, notNullValue()); - Histogram.Bucket bucket = histo.getBucketByKey(1l); + Histogram.Bucket bucket = histo.getBuckets().get(1); assertThat(bucket, notNullValue()); Sum sum = bucket.getAggregations().get("sum"); diff --git a/src/test/java/org/elasticsearch/search/child/SimpleChildQuerySearchTests.java b/src/test/java/org/elasticsearch/search/child/SimpleChildQuerySearchTests.java index 542c8c69e9a..b4f3ef26794 100644 --- a/src/test/java/org/elasticsearch/search/child/SimpleChildQuerySearchTests.java +++ b/src/test/java/org/elasticsearch/search/child/SimpleChildQuerySearchTests.java @@ -44,7 +44,12 @@ import org.elasticsearch.index.cache.filter.weighted.WeightedFilterCache; import org.elasticsearch.index.fielddata.FieldDataType; import org.elasticsearch.index.mapper.FieldMapper.Loading; import org.elasticsearch.index.mapper.MergeMappingException; -import org.elasticsearch.index.query.*; +import org.elasticsearch.index.query.FilterBuilder; +import org.elasticsearch.index.query.FilterBuilders; +import org.elasticsearch.index.query.HasChildFilterBuilder; +import org.elasticsearch.index.query.HasChildQueryBuilder; +import org.elasticsearch.index.query.QueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.search.child.ScoreType; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.search.aggregations.AggregationBuilders; @@ -60,7 +65,12 @@ import org.hamcrest.Matchers; import org.junit.Test; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicReference; @@ -70,12 +80,42 @@ import static org.elasticsearch.common.io.Streams.copyToStringFromClasspath; import static org.elasticsearch.common.settings.ImmutableSettings.builder; import static org.elasticsearch.common.settings.ImmutableSettings.settingsBuilder; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; -import static org.elasticsearch.index.query.FilterBuilders.*; -import static org.elasticsearch.index.query.QueryBuilders.*; +import static org.elasticsearch.index.query.FilterBuilders.boolFilter; +import static org.elasticsearch.index.query.FilterBuilders.hasParentFilter; +import static org.elasticsearch.index.query.FilterBuilders.matchAllFilter; +import static org.elasticsearch.index.query.FilterBuilders.notFilter; +import static org.elasticsearch.index.query.FilterBuilders.queryFilter; +import static org.elasticsearch.index.query.FilterBuilders.termFilter; +import static org.elasticsearch.index.query.FilterBuilders.termsFilter; +import static org.elasticsearch.index.query.QueryBuilders.boolQuery; +import static org.elasticsearch.index.query.QueryBuilders.constantScoreQuery; +import static org.elasticsearch.index.query.QueryBuilders.filteredQuery; +import static org.elasticsearch.index.query.QueryBuilders.hasParentQuery; +import static org.elasticsearch.index.query.QueryBuilders.idsQuery; +import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery; +import static org.elasticsearch.index.query.QueryBuilders.matchQuery; +import static org.elasticsearch.index.query.QueryBuilders.multiMatchQuery; +import static org.elasticsearch.index.query.QueryBuilders.prefixQuery; +import static org.elasticsearch.index.query.QueryBuilders.queryStringQuery; +import static org.elasticsearch.index.query.QueryBuilders.termQuery; +import static org.elasticsearch.index.query.QueryBuilders.topChildrenQuery; import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.factorFunction; import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.scriptFunction; -import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*; -import static org.hamcrest.Matchers.*; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAllSuccessful; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchHit; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchHits; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.hasId; +import static org.hamcrest.Matchers.anyOf; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.greaterThan; +import static org.hamcrest.Matchers.greaterThanOrEqualTo; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import static org.hamcrest.Matchers.startsWith; /** * @@ -578,9 +618,9 @@ public class SimpleChildQuerySearchTests extends ElasticsearchIntegrationTest { Filter filter = global.getAggregations().get("filter"); Terms termsFacet = filter.getAggregations().get("facet1"); assertThat(termsFacet.getBuckets().size(), equalTo(2)); - assertThat(termsFacet.getBuckets().get(0).getKey(), equalTo("red")); + assertThat(termsFacet.getBuckets().get(0).getKeyAsString(), equalTo("red")); assertThat(termsFacet.getBuckets().get(0).getDocCount(), equalTo(2L)); - assertThat(termsFacet.getBuckets().get(1).getKey(), equalTo("yellow")); + assertThat(termsFacet.getBuckets().get(1).getKeyAsString(), equalTo("yellow")); assertThat(termsFacet.getBuckets().get(1).getDocCount(), equalTo(1L)); } diff --git a/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreTests.java b/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreTests.java index 79782450786..cd8cdf07337 100644 --- a/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreTests.java +++ b/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreTests.java @@ -44,12 +44,20 @@ import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.index.query.FilterBuilders.termFilter; import static org.elasticsearch.index.query.QueryBuilders.functionScoreQuery; import static org.elasticsearch.index.query.QueryBuilders.termQuery; -import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.*; +import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.exponentialDecayFunction; +import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.fieldValueFactorFunction; +import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.gaussDecayFunction; +import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.linearDecayFunction; +import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.randomFunction; +import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.scriptFunction; +import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.weightFactorFunction; import static org.elasticsearch.search.aggregations.AggregationBuilders.terms; import static org.elasticsearch.search.builder.SearchSourceBuilder.searchSource; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.closeTo; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.is; public class FunctionScoreTests extends ElasticsearchIntegrationTest { @@ -439,7 +447,7 @@ public class FunctionScoreTests extends ElasticsearchIntegrationTest { ).actionGet(); assertSearchResponse(response); assertThat(response.getHits().getAt(0).score(), equalTo(1.0f)); - assertThat(((Terms) response.getAggregations().asMap().get("score_agg")).getBuckets().get(0).getKeyAsNumber().floatValue(), is(1f)); + assertThat(((Terms) response.getAggregations().asMap().get("score_agg")).getBuckets().get(0).getKeyAsString(), equalTo("1.0")); assertThat(((Terms) response.getAggregations().asMap().get("score_agg")).getBuckets().get(0).getDocCount(), is(1l)); }