diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java index c0b6b93c4544f..ec88ca0738d91 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java @@ -92,7 +92,7 @@ import org.elasticsearch.script.mustache.SearchTemplateRequest; import org.elasticsearch.search.Scroll; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.collapse.CollapseBuilder; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; @@ -1079,7 +1079,7 @@ public static SearchSourceBuilder createTestSearchSourceBuilder() { } if (randomBoolean()) { searchSourceBuilder.aggregation(new TermsAggregationBuilder(randomAlphaOfLengthBetween(3, 10)) - .userValueTypeHint(ValueType.STRING) + .userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field(randomAlphaOfLengthBetween(3, 10))); } if (randomBoolean()) { diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/SearchIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/SearchIT.java index 70ccf7984863c..4c32485ef3bc5 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/SearchIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/SearchIT.java @@ -75,8 +75,8 @@ import org.elasticsearch.search.aggregations.matrix.stats.MatrixStatsAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.WeightedAvg; import org.elasticsearch.search.aggregations.metrics.WeightedAvgAggregationBuilder; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; @@ -260,7 +260,7 @@ public void testSearchMatchQuery() throws IOException { public void testSearchWithTermsAgg() throws IOException { SearchRequest searchRequest = new SearchRequest(); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); - searchSourceBuilder.aggregation(new TermsAggregationBuilder("agg1").userValueTypeHint(ValueType.STRING) + searchSourceBuilder.aggregation(new TermsAggregationBuilder("agg1").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("type.keyword")); searchSourceBuilder.size(0); searchRequest.source(searchSourceBuilder); @@ -284,7 +284,7 @@ public void testSearchWithTermsAgg() throws IOException { public void testSearchWithRareTermsAgg() throws IOException { SearchRequest searchRequest = new SearchRequest(); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); - searchSourceBuilder.aggregation(new RareTermsAggregationBuilder("agg1").userValueTypeHint(ValueType.STRING) + searchSourceBuilder.aggregation(new RareTermsAggregationBuilder("agg1").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("type.keyword").maxDocCount(2)); searchSourceBuilder.size(0); searchRequest.source(searchSourceBuilder); @@ -373,7 +373,7 @@ public void testSearchWithRangeAgg() throws IOException { public void testSearchWithTermsAndRangeAgg() throws IOException { SearchRequest searchRequest = new SearchRequest("index"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); - TermsAggregationBuilder agg = new TermsAggregationBuilder("agg1").userValueTypeHint(ValueType.STRING).field("type.keyword"); + TermsAggregationBuilder agg = new TermsAggregationBuilder("agg1").userValueTypeHint(CoreValuesSourceType.ValueType.STRING).field("type.keyword"); agg.subAggregation(new RangeAggregationBuilder("subagg").field("num") .addRange("first", 0, 30).addRange("second", 31, 200)); searchSourceBuilder.aggregation(agg); @@ -427,7 +427,7 @@ public void testSearchWithTermsAndRangeAgg() throws IOException { public void testSearchWithTermsAndWeightedAvg() throws IOException { SearchRequest searchRequest = new SearchRequest("index"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); - TermsAggregationBuilder agg = new TermsAggregationBuilder("agg1").userValueTypeHint(ValueType.STRING).field("type.keyword"); + TermsAggregationBuilder agg = new TermsAggregationBuilder("agg1").userValueTypeHint(CoreValuesSourceType.ValueType.STRING).field("type.keyword"); agg.subAggregation(new WeightedAvgAggregationBuilder("subagg") .value(new MultiValuesSourceFieldConfig.Builder().setFieldName("num").build()) .weight(new MultiValuesSourceFieldConfig.Builder().setFieldName("num2").build()) @@ -554,10 +554,10 @@ public void testSearchWithParentJoin() throws IOException { client().performRequest(new Request(HttpPost.METHOD_NAME, "/_refresh")); TermsAggregationBuilder leafTermAgg = new TermsAggregationBuilder("top-names") - .userValueTypeHint(ValueType.STRING) + .userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("owner.display_name.keyword").size(10); ChildrenAggregationBuilder childrenAgg = new ChildrenAggregationBuilder("to-answers", "answer").subAggregation(leafTermAgg); - TermsAggregationBuilder termsAgg = new TermsAggregationBuilder("top-tags").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder termsAgg = new TermsAggregationBuilder("top-tags").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("tags.keyword") .size(10).subAggregation(childrenAgg); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); @@ -770,17 +770,17 @@ public void testMultiSearch() throws Exception { public void testMultiSearch_withAgg() throws Exception { MultiSearchRequest multiSearchRequest = new MultiSearchRequest(); SearchRequest searchRequest1 = new SearchRequest("index1"); - searchRequest1.source().size(0).aggregation(new TermsAggregationBuilder("name").userValueTypeHint(ValueType.STRING) + searchRequest1.source().size(0).aggregation(new TermsAggregationBuilder("name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("field.keyword") .order(BucketOrder.key(true))); multiSearchRequest.add(searchRequest1); SearchRequest searchRequest2 = new SearchRequest("index2"); - searchRequest2.source().size(0).aggregation(new TermsAggregationBuilder("name").userValueTypeHint(ValueType.STRING) + searchRequest2.source().size(0).aggregation(new TermsAggregationBuilder("name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("field.keyword") .order(BucketOrder.key(true))); multiSearchRequest.add(searchRequest2); SearchRequest searchRequest3 = new SearchRequest("index3"); - searchRequest3.source().size(0).aggregation(new TermsAggregationBuilder("name").userValueTypeHint(ValueType.STRING) + searchRequest3.source().size(0).aggregation(new TermsAggregationBuilder("name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("field.keyword") .order(BucketOrder.key(true))); multiSearchRequest.add(searchRequest3); diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsParser.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsParser.java index 0f48d1855ae3e..a720027c34eb9 100644 --- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsParser.java +++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsParser.java @@ -22,7 +22,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.MultiValueMode; import org.elasticsearch.search.aggregations.support.ArrayValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -50,7 +50,7 @@ protected boolean token(String aggregationName, String currentFieldName, XConten @Override protected MatrixStatsAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { + CoreValuesSourceType.ValueType targetValueType, Map otherOptions) { MatrixStatsAggregationBuilder builder = new MatrixStatsAggregationBuilder(aggregationName); String mode = (String)otherOptions.get(MULTIVALUE_MODE_FIELD); if (mode != null) { diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/ArrayValuesSourceAggregationBuilder.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/ArrayValuesSourceAggregationBuilder.java index 7d965291c24aa..d43edd97ac20e 100644 --- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/ArrayValuesSourceAggregationBuilder.java +++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/ArrayValuesSourceAggregationBuilder.java @@ -21,6 +21,7 @@ import org.elasticsearch.common.ParseField; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregationInitializationException; @@ -79,7 +80,7 @@ public final BucketCardinality bucketCardinality() { /* The parser doesn't support setting userValueTypeHint (aka valueType), but we do serialize and deserialize it, so keeping it around for now so as to not break BWC. Future refactors should feel free to remove this field. --Tozzi 2020-01-16 */ - private ValueType userValueTypeHint = null; + private CoreValuesSourceType.ValueType userValueTypeHint = null; private String format = null; private Object missing = null; private Map missingMap = Collections.emptyMap(); @@ -110,7 +111,7 @@ protected ArrayValuesSourceAggregationBuilder(StreamInput in) @SuppressWarnings("unchecked") private void read(StreamInput in) throws IOException { fields = (ArrayList)in.readGenericValue(); - userValueTypeHint = in.readOptionalWriteable(ValueType::readFromStream); + userValueTypeHint = in.readOptionalWriteable(CoreValuesSourceType.ValueType::readFromStream); format = in.readOptionalString(); missingMap = in.readMap(); } @@ -225,7 +226,7 @@ public final XContentBuilder internalXContent(XContentBuilder builder, Params pa builder.field(CommonFields.FORMAT.getPreferredName(), format); } if (userValueTypeHint != null) { - builder.field(CommonFields.VALUE_TYPE.getPreferredName(), userValueTypeHint.getPreferredName()); + builder.field(CommonFields.VALUE_TYPE.getPreferredName(), userValueTypeHint.getCoreValuesSourceType().typeName()); } doXContentBody(builder, params); builder.endObject(); diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/ArrayValuesSourceParser.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/ArrayValuesSourceParser.java index 4d935c92c2e1f..4a65469bae93a 100644 --- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/ArrayValuesSourceParser.java +++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/ArrayValuesSourceParser.java @@ -38,29 +38,29 @@ public abstract class ArrayValuesSourceParser implement public abstract static class NumericValuesSourceParser extends ArrayValuesSourceParser { protected NumericValuesSourceParser(boolean formattable) { - super(formattable, CoreValuesSourceType.NUMERIC, ValueType.NUMERIC); + super(formattable, CoreValuesSourceType.NUMERIC, CoreValuesSourceType.ValueType.NUMERIC); } } public abstract static class BytesValuesSourceParser extends ArrayValuesSourceParser { protected BytesValuesSourceParser(boolean formattable) { - super(formattable, CoreValuesSourceType.BYTES, ValueType.STRING); + super(formattable, CoreValuesSourceType.BYTES, CoreValuesSourceType.ValueType.STRING); } } public abstract static class GeoPointValuesSourceParser extends ArrayValuesSourceParser { protected GeoPointValuesSourceParser(boolean formattable) { - super(formattable, CoreValuesSourceType.GEOPOINT, ValueType.GEOPOINT); + super(formattable, CoreValuesSourceType.GEOPOINT, CoreValuesSourceType.ValueType.GEOPOINT); } } private boolean formattable = false; private ValuesSourceType valuesSourceType = null; - private ValueType targetValueType = null; + private CoreValuesSourceType.ValueType targetValueType = null; - private ArrayValuesSourceParser(boolean formattable, ValuesSourceType valuesSourceType, ValueType targetValueType) { + private ArrayValuesSourceParser(boolean formattable, ValuesSourceType valuesSourceType, CoreValuesSourceType.ValueType targetValueType) { this.valuesSourceType = valuesSourceType; this.targetValueType = targetValueType; this.formattable = formattable; @@ -188,13 +188,13 @@ private void parseMissingAndAdd(final String aggregationName, final String curre */ protected abstract ArrayValuesSourceAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, + CoreValuesSourceType.ValueType targetValueType, Map otherOptions); /** * Allows subclasses of {@link ArrayValuesSourceParser} to parse extra * parameters and store them in a {@link Map} which will later be passed to - * {@link #createFactory(String, ValuesSourceType, ValueType, Map)}. + * {@link #createFactory(String, ValuesSourceType, CoreValuesSourceType.ValueType, Map)}. * * @param aggregationName * the name of the aggregation @@ -207,7 +207,7 @@ protected abstract ArrayValuesSourceAggregationBuilder createFactory(String a * @param otherOptions * a {@link Map} of options to be populated by successive calls * to this method which will then be passed to the - * {@link #createFactory(String, ValuesSourceType, ValueType, Map)} + * {@link #createFactory(String, ValuesSourceType, CoreValuesSourceType.ValueType, Map)} * method * @return true if the current token was correctly parsed, * false otherwise diff --git a/qa/multi-cluster-search/src/test/java/org/elasticsearch/search/CCSDuelIT.java b/qa/multi-cluster-search/src/test/java/org/elasticsearch/search/CCSDuelIT.java index 55a762ada4815..705defabe8020 100644 --- a/qa/multi-cluster-search/src/test/java/org/elasticsearch/search/CCSDuelIT.java +++ b/qa/multi-cluster-search/src/test/java/org/elasticsearch/search/CCSDuelIT.java @@ -69,7 +69,7 @@ import org.elasticsearch.search.aggregations.metrics.TopHitsAggregationBuilder; import org.elasticsearch.search.aggregations.pipeline.DerivativePipelineAggregationBuilder; import org.elasticsearch.search.aggregations.pipeline.MaxBucketPipelineAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.collapse.CollapseBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; @@ -529,32 +529,32 @@ public void testTermsAggsWithProfile() throws Exception { private static SearchSourceBuilder buildTermsAggsSource() { SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); sourceBuilder.size(0); - TermsAggregationBuilder cluster = new TermsAggregationBuilder("cluster123").userValueTypeHint(ValueType.STRING); + TermsAggregationBuilder cluster = new TermsAggregationBuilder("cluster123").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); cluster.field("_index"); - TermsAggregationBuilder type = new TermsAggregationBuilder("type").userValueTypeHint(ValueType.STRING); + TermsAggregationBuilder type = new TermsAggregationBuilder("type").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); type.field("type.keyword"); type.showTermDocCountError(true); type.order(BucketOrder.key(true)); cluster.subAggregation(type); sourceBuilder.aggregation(cluster); - TermsAggregationBuilder tags = new TermsAggregationBuilder("tags").userValueTypeHint(ValueType.STRING); + TermsAggregationBuilder tags = new TermsAggregationBuilder("tags").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); tags.field("tags.keyword"); tags.showTermDocCountError(true); tags.size(100); sourceBuilder.aggregation(tags); - TermsAggregationBuilder tags2 = new TermsAggregationBuilder("tags").userValueTypeHint(ValueType.STRING); + TermsAggregationBuilder tags2 = new TermsAggregationBuilder("tags").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); tags2.field("tags.keyword"); tags.subAggregation(tags2); FilterAggregationBuilder answers = new FilterAggregationBuilder("answers", new TermQueryBuilder("type", "answer")); TermsAggregationBuilder answerPerQuestion = new TermsAggregationBuilder("answer_per_question") - .userValueTypeHint(ValueType.STRING); + .userValueTypeHint(CoreValuesSourceType.ValueType.STRING); answerPerQuestion.showTermDocCountError(true); answerPerQuestion.field("questionId.keyword"); answers.subAggregation(answerPerQuestion); - TermsAggregationBuilder answerPerUser = new TermsAggregationBuilder("answer_per_user").userValueTypeHint(ValueType.STRING); + TermsAggregationBuilder answerPerUser = new TermsAggregationBuilder("answer_per_user").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); answerPerUser.field("user.keyword"); answerPerUser.size(30); answerPerUser.showTermDocCountError(true); @@ -569,7 +569,7 @@ public void testDateHistogram() throws Exception { SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); sourceBuilder.size(0); searchRequest.source(sourceBuilder); - TermsAggregationBuilder tags = new TermsAggregationBuilder("tags").userValueTypeHint(ValueType.STRING); + TermsAggregationBuilder tags = new TermsAggregationBuilder("tags").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); tags.field("tags.keyword"); tags.showTermDocCountError(true); DateHistogramAggregationBuilder creation = new DateHistogramAggregationBuilder("creation"); @@ -586,7 +586,7 @@ public void testCardinalityAgg() throws Exception { SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); sourceBuilder.size(0); searchRequest.source(sourceBuilder); - CardinalityAggregationBuilder tags = new CardinalityAggregationBuilder("tags").userValueTypeHint(ValueType.STRING); + CardinalityAggregationBuilder tags = new CardinalityAggregationBuilder("tags").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); tags.field("tags.keyword"); sourceBuilder.aggregation(tags); duelSearch(searchRequest, CCSDuelIT::assertAggs); @@ -625,7 +625,7 @@ public void testTopHits() throws Exception { topHits.size(10); topHits.sort("creationDate", SortOrder.DESC); topHits.sort("id", SortOrder.ASC); - TermsAggregationBuilder tags = new TermsAggregationBuilder("tags").userValueTypeHint(ValueType.STRING); + TermsAggregationBuilder tags = new TermsAggregationBuilder("tags").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); tags.field("tags.keyword"); tags.size(10); tags.subAggregation(topHits); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/action/search/TransportSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/search/TransportSearchIT.java index b5c67ab21b876..58a957b38401c 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/action/search/TransportSearchIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/action/search/TransportSearchIT.java @@ -63,7 +63,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.InternalMax; import org.elasticsearch.search.aggregations.support.AggregationContext; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.FetchSubPhase; import org.elasticsearch.search.fetch.FetchSubPhaseProcessor; @@ -241,7 +241,7 @@ public void testFinalReduce() { SearchSourceBuilder source = new SearchSourceBuilder(); source.size(0); originalRequest.source(source); - TermsAggregationBuilder terms = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.NUMERIC); + TermsAggregationBuilder terms = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.NUMERIC); terms.field("price"); terms.size(1); source.aggregation(terms); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsIT.java index cc1d284a29217..144a4a721d7eb 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsIT.java @@ -44,7 +44,7 @@ import org.elasticsearch.search.aggregations.metrics.ExtendedStats; import org.elasticsearch.search.aggregations.metrics.Stats; import org.elasticsearch.search.aggregations.metrics.Sum; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.test.ESIntegTestCase; import org.junit.After; @@ -1189,7 +1189,7 @@ public void testScriptWithValueType() throws Exception { .size(0) .aggregation(terms("terms") .script(new Script(ScriptType.INLINE, CustomScriptPlugin.NAME, "42", Collections.emptyMap())) - .userValueTypeHint(randomFrom(ValueType.NUMERIC, ValueType.NUMBER))); + .userValueTypeHint(randomFrom(CoreValuesSourceType.ValueType.NUMERIC, CoreValuesSourceType.ValueType.NUMBER))); String source = builder.toString(); try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/composite/CompositeValuesSourceBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/composite/CompositeValuesSourceBuilder.java index a9137473ba814..cfbe104fde46f 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/composite/CompositeValuesSourceBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/composite/CompositeValuesSourceBuilder.java @@ -26,11 +26,11 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.support.AggregationContext; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.sort.SortOrder; import java.io.IOException; @@ -45,7 +45,7 @@ public abstract class CompositeValuesSourceBuilder, T> void declareValuesSource objectParser.declareBoolean(VB::missingBucket, new ParseField("missing_bucket")); objectParser.declareField(VB::userValuetypeHint, p -> { - ValueType valueType = ValueType.lenientParse(p.text()); + CoreValuesSourceType.ValueType valueType = CoreValuesSourceType.ValueType.fromString(p.text()); return valueType; }, new ParseField("value_type"), ObjectParser.ValueType.STRING); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalDateRange.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalDateRange.java index fd68e3e1ac4b5..440a3b65cbba0 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalDateRange.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalDateRange.java @@ -22,7 +22,7 @@ import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.InternalAggregations; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.io.IOException; import java.time.Instant; @@ -82,8 +82,8 @@ DocValueFormat format() { public static class Factory extends InternalRange.Factory { @Override - public ValueType getValueType() { - return ValueType.DATE; + public CoreValuesSourceType.ValueType getValueType() { + return CoreValuesSourceType.ValueType.DATE; } @Override diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalGeoDistance.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalGeoDistance.java index 6699d1d1c48ef..d602890e0e835 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalGeoDistance.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalGeoDistance.java @@ -22,7 +22,6 @@ import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.InternalAggregations; import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -55,8 +54,8 @@ public ValuesSourceType getValueSourceType() { } @Override - public ValueType getValueType() { - return ValueType.GEOPOINT; + public CoreValuesSourceType.ValueType getValueType() { + return CoreValuesSourceType.ValueType.GEOPOINT; } @Override diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java index 1ba14d7a0715c..80009745e9dc6 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java @@ -26,7 +26,6 @@ import org.elasticsearch.search.aggregations.InternalAggregations; import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation; import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -190,8 +189,8 @@ public ValuesSourceType getValueSourceType() { return CoreValuesSourceType.NUMERIC; } - public ValueType getValueType() { - return ValueType.NUMERIC; + public CoreValuesSourceType.ValueType getValueType() { + return CoreValuesSourceType.ValueType.NUMERIC; } @SuppressWarnings("unchecked") diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregationBuilder.java index d0e12b609a707..2902d7b11c56a 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregationBuilder.java @@ -36,7 +36,6 @@ import org.elasticsearch.search.aggregations.support.MultiValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; import org.elasticsearch.search.aggregations.support.MultiValuesSourceParseHelper; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.search.aggregations.support.ValuesSourceType; @@ -53,7 +52,7 @@ public class WeightedAvgAggregationBuilder extends MultiValuesSourceAggregationB public static final ObjectParser PARSER = ObjectParser.fromBuilder(NAME, WeightedAvgAggregationBuilder::new); static { - MultiValuesSourceParseHelper.declareCommon(PARSER, true, ValueType.NUMERIC); + MultiValuesSourceParseHelper.declareCommon(PARSER, true, CoreValuesSourceType.ValueType.NUMERIC); MultiValuesSourceParseHelper.declareField(VALUE_FIELD.getPreferredName(), PARSER, true, false, false); MultiValuesSourceParseHelper.declareField(WEIGHT_FIELD.getPreferredName(), PARSER, true, false, false); } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/CoreValuesSourceType.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/CoreValuesSourceType.java index 8858a3db3696c..f27b9c667fa60 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/CoreValuesSourceType.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/CoreValuesSourceType.java @@ -29,6 +29,9 @@ import org.apache.lucene.util.BytesRef; import org.elasticsearch.common.Rounding; import org.elasticsearch.common.geo.GeoPoint; +import org.elasticsearch.common.io.stream.StreamInput; +import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.time.DateFormatter; import org.elasticsearch.index.fielddata.IndexFieldData; import org.elasticsearch.index.fielddata.IndexGeoPointFieldData; @@ -45,9 +48,7 @@ import java.io.IOException; import java.time.ZoneId; import java.time.ZoneOffset; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; +import java.util.*; import java.util.function.Function; /** @@ -102,7 +103,6 @@ public DocValueFormat getFormatter(String format, ZoneId tz) { } else { return new DocValueFormat.Decimal(format); } - } }, BYTES() { @@ -376,6 +376,20 @@ public DocValueFormat getFormatter(String format, ZoneId tz) { } ; + /*public static final Map valueTypeMap = new EnumMap<>(ValueType.class); + static { + valueTypeMap.put(ValueType.STRING, BYTES); + valueTypeMap.put(ValueType.LONG, NUMERIC); + valueTypeMap.put(ValueType.DOUBLE, NUMERIC); + valueTypeMap.put(ValueType.NUMBER, NUMERIC); + valueTypeMap.put(ValueType.DATE, DATE); + valueTypeMap.put(ValueType.IP, IP); + valueTypeMap.put(ValueType.NUMERIC, NUMERIC); + valueTypeMap.put(ValueType.GEOPOINT, GEOPOINT); + valueTypeMap.put(ValueType.BOOLEAN, BOOLEAN); + valueTypeMap.put(ValueType.RANGE, RANGE); + }*/ + public static ValuesSourceType fromString(String name) { return valueOf(name.trim().toUpperCase(Locale.ROOT)); } @@ -390,5 +404,63 @@ public String typeName() { } /** List containing all members of the enumeration. */ - public static List ALL_CORE = Arrays.asList(CoreValuesSourceType.values()); + public static List ALL_CORE = Arrays.asList(values()); + + public enum ValueType implements Writeable { + + STRING((byte) 1, CoreValuesSourceType.BYTES), + LONG((byte) 2, CoreValuesSourceType.NUMERIC), + DOUBLE((byte) 3, CoreValuesSourceType.NUMERIC), + NUMBER((byte) 4, CoreValuesSourceType.NUMERIC), + DATE((byte) 5, CoreValuesSourceType.DATE), + IP((byte) 6, CoreValuesSourceType.IP), + NUMERIC((byte) 7, CoreValuesSourceType.NUMERIC), + GEOPOINT((byte) 8, CoreValuesSourceType.GEOPOINT), + BOOLEAN((byte) 9, CoreValuesSourceType.BOOLEAN), + RANGE((byte) 10, CoreValuesSourceType.RANGE); + + private final byte id; + private final CoreValuesSourceType coreValuesSourceType; + + ValueType(byte id, CoreValuesSourceType coreValuesSourceType ) { + this.id = id; + this.coreValuesSourceType = coreValuesSourceType; + } + + public byte getId(){ + return id; + } + + public static ValueType fromString(String name) { + return valueOf(name.trim().toUpperCase(Locale.ROOT)); + } + + public static ValueType readFromStream(StreamInput in) throws IOException { + byte id = in.readByte(); + + for (ValueType valueType : ValueType.values()) { + if (id == valueType.id) { + return valueType; + } + } + throw new IOException("No ValueType found for id [" + id + "]"); + } + + public CoreValuesSourceType getCoreValuesSourceType(){ + return coreValuesSourceType; + } + + public static List forCoreValuesSourceType(CoreValuesSourceType coreValuesSourceType) { + List valueTypes = new ArrayList<>(); + for (ValueType valueType : values()) + if (valueType.coreValuesSourceType == coreValuesSourceType) + valueTypes.add(valueType); + return valueTypes; + } + + @Override + public void writeTo(StreamOutput out) throws IOException { + out.writeByte(id); + } + } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregationBuilder.java index cb40444de1678..b7e9a4bc4dbcc 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregationBuilder.java @@ -21,6 +21,7 @@ import org.elasticsearch.common.Nullable; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.search.DocValueFormat; @@ -31,6 +32,7 @@ import java.io.IOException; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.Objects; @@ -76,7 +78,7 @@ public AB subAggregations(Builder subFactories) { private Map fields = new HashMap<>(); - private ValueType userValueTypeHint = null; + private CoreValuesSourceType.ValueType userValueTypeHint = null; private String format = null; protected MultiValuesSourceAggregationBuilder(String name) { @@ -107,7 +109,7 @@ protected MultiValuesSourceAggregationBuilder(StreamInput in) @SuppressWarnings("unchecked") private void read(StreamInput in) throws IOException { fields = in.readMap(StreamInput::readString, MultiValuesSourceFieldConfig::new); - userValueTypeHint = in.readOptionalWriteable(ValueType::readFromStream); + userValueTypeHint = in.readOptionalWriteable(CoreValuesSourceType.ValueType::readFromStream); format = in.readOptionalString(); } @@ -134,10 +136,10 @@ protected AB field(String propertyName, MultiValuesSourceFieldConfig config) { } /** - * Sets the {@link ValueType} for the value produced by this aggregation + * Sets the {@link CoreValuesSourceType.ValueType} for the value produced by this aggregation */ @SuppressWarnings("unchecked") - public AB userValueTypeHint(ValueType valueType) { + public AB userValueTypeHint(CoreValuesSourceType.ValueType valueType) { if (valueType == null) { throw new IllegalArgumentException("[userValueTypeHint] must not be null: [" + name + "]"); } @@ -182,13 +184,13 @@ protected final MultiValuesSourceAggregatorFactory doBuild(AggregationContext co } - private static DocValueFormat resolveFormat(@Nullable String format, @Nullable ValueType valueType, + private static DocValueFormat resolveFormat(@Nullable String format, @Nullable CoreValuesSourceType.ValueType valueType, ValuesSourceType defaultValuesSourceType) { if (valueType == null) { // If the user didn't send a hint, all we can do is fall back to the default return defaultValuesSourceType.getFormatter(format, null); } - DocValueFormat valueFormat = valueType.defaultFormat; + DocValueFormat valueFormat = valueType.getCoreValuesSourceType().getFormatter(format,null); if (valueFormat instanceof DocValueFormat.Decimal && format != null) { valueFormat = new DocValueFormat.Decimal(format); } @@ -214,7 +216,7 @@ public final XContentBuilder internalXContent(XContentBuilder builder, Params pa builder.field(CommonFields.FORMAT.getPreferredName(), format); } if (userValueTypeHint != null) { - builder.field(CommonFields.VALUE_TYPE.getPreferredName(), userValueTypeHint.getPreferredName()); + builder.field(CommonFields.VALUE_TYPE.getPreferredName(), userValueTypeHint.getCoreValuesSourceType().typeName()); } doXContentBody(builder, params); builder.endObject(); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceParseHelper.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceParseHelper.java index ac9cc06b07cdf..c3dacbf50ac6c 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceParseHelper.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceParseHelper.java @@ -29,11 +29,11 @@ public final class MultiValuesSourceParseHelper { public static void declareCommon( AbstractObjectParser, T> objectParser, boolean formattable, - ValueType expectedValueType) { + CoreValuesSourceType.ValueType expectedValueType) { objectParser.declareField(MultiValuesSourceAggregationBuilder::userValueTypeHint, p -> { - ValueType valueType = ValueType.lenientParse(p.text()); - if (expectedValueType != null && valueType.isNotA(expectedValueType)) { + CoreValuesSourceType.ValueType valueType = CoreValuesSourceType.ValueType.fromString(p.text()); + if (expectedValueType != null && !valueType.equals(expectedValueType)) { throw new ParsingException(p.getTokenLocation(), "Aggregation [" + objectParser.getName() + "] was configured with an incompatible value type [" + valueType + "]. It can only work on value off type [" diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValueType.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValueType.java index d8389ef9fd2e2..2497762090824 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValueType.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValueType.java @@ -57,7 +57,7 @@ public enum ValueType implements Writeable { final ValuesSourceType valuesSourceType; final DocValueFormat defaultFormat; private final byte id; - private String preferredName; + private final String preferredName; public static final ParseField VALUE_TYPE = new ParseField("value_type", "valueType"); @@ -78,9 +78,9 @@ public ValuesSourceType getValuesSourceType() { return valuesSourceType; } - private static Set numericValueTypes = Set.of(ValueType.DOUBLE, ValueType.DATE, ValueType.LONG, ValueType.NUMBER, + private static final Set numericValueTypes = Set.of(ValueType.DOUBLE, ValueType.DATE, ValueType.LONG, ValueType.NUMBER, ValueType.NUMERIC, ValueType.BOOLEAN); - private static Set stringValueTypes = Set.of(ValueType.STRING, ValueType.IP); + private static final Set stringValueTypes = Set.of(ValueType.STRING, ValueType.IP); /** * This is a bit of a hack to mirror the old {@link ValueType} behavior, which would allow a rough compatibility between types. This diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java index 879d4a25441f0..5d43899717e1d 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java @@ -534,16 +534,16 @@ public SortedNumericDoubleValues doubleValues(LeafReaderContext context) { */ public static class Script extends Numeric { private final AggregationScript.LeafFactory script; - private final ValueType scriptValueType; + private final CoreValuesSourceType.ValueType scriptValueType; - public Script(AggregationScript.LeafFactory script, ValueType scriptValueType) { + public Script(AggregationScript.LeafFactory script, CoreValuesSourceType.ValueType scriptValueType) { this.script = script; this.scriptValueType = scriptValueType; } @Override public boolean isFloatingPoint() { - return scriptValueType != null ? scriptValueType == ValueType.DOUBLE : true; + return scriptValueType != null ? scriptValueType == CoreValuesSourceType.ValueType.DOUBLE : true; } @Override diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java index 0bcf83be0237b..241f18e6a0d3a 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java @@ -35,6 +35,7 @@ import java.io.IOException; import java.time.ZoneId; import java.time.ZoneOffset; +import java.util.Locale; import java.util.Map; import java.util.Objects; @@ -60,7 +61,7 @@ public static void declareFields( ParseField.CommonFields.MISSING, ObjectParser.ValueType.VALUE); objectParser.declareField(ValuesSourceAggregationBuilder::userValueTypeHint, p -> { - ValueType type = ValueType.lenientParse(p.text()); + CoreValuesSourceType.ValueType type = CoreValuesSourceType.ValueType.fromString(p.text()); if (type == null) { throw new IllegalArgumentException("Unknown value type [" + p.text() + "]"); } @@ -135,7 +136,7 @@ public final BucketCardinality bucketCardinality() { private String field = null; private Script script = null; - private ValueType userValueTypeHint = null; + private CoreValuesSourceType.ValueType userValueTypeHint = null; private String format = null; private Object missing = null; private ZoneId timeZone = null; @@ -164,7 +165,7 @@ protected ValuesSourceAggregationBuilder(StreamInput in) throws IOException { super(in); if (serializeTargetValueType(in.getVersion())) { - ValueType valueType = in.readOptionalWriteable(ValueType::readFromStream); + CoreValuesSourceType.ValueType valueType = in.readOptionalWriteable(CoreValuesSourceType.ValueType::readFromStream); assert valueType == null; } read(in); @@ -179,7 +180,7 @@ private void read(StreamInput in) throws IOException { script = new Script(in); } if (in.readBoolean()) { - userValueTypeHint = ValueType.readFromStream(in); + this.userValueTypeHint = CoreValuesSourceType.ValueType.readFromStream(in); } format = in.readOptionalString(); missing = in.readGenericValue(); @@ -267,11 +268,11 @@ public Script script() { * This setter should only be used during parsing, to set the userValueTypeHint. This is information the user provides in the json * query to indicate the output type of a script or the type of the 'missing' replacement value. * - * @param valueType - The parsed {@link ValueType} based on the string the user specified + * @param valueType - The parsed {@link CoreValuesSourceType.ValueType} based on the string the user specified * @return - The modified builder instance, for chaining. */ @SuppressWarnings("unchecked") - public AB userValueTypeHint(ValueType valueType) { + public AB userValueTypeHint(CoreValuesSourceType.ValueType valueType) { if (valueType == null) { // TODO: This is nonsense. We allow the value to be null (via constructor), but don't allow it to be set to null. This means // thing looking to copy settings (like RollupRequestTranslator) need to check if userValueTypeHint is not null, and then @@ -282,7 +283,7 @@ public AB userValueTypeHint(ValueType valueType) { return (AB) this; } - public ValueType userValueTypeHint() { + public CoreValuesSourceType.ValueType userValueTypeHint() { return userValueTypeHint; } @@ -414,7 +415,7 @@ public final XContentBuilder internalXContent(XContentBuilder builder, Params pa builder.field("time_zone", timeZone.toString()); } if (userValueTypeHint != null) { - builder.field("value_type", userValueTypeHint.getPreferredName()); + builder.field("value_type", userValueTypeHint.getCoreValuesSourceType().typeName()); } doXContentBody(builder, params); builder.endObject(); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java index bb4386360fc20..8a082883de00a 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java @@ -55,7 +55,7 @@ public class ValuesSourceConfig { * @return - An initialized {@link ValuesSourceConfig} that will yield the appropriate {@link ValuesSourceType} */ public static ValuesSourceConfig resolve(AggregationContext context, - ValueType userValueTypeHint, + CoreValuesSourceType.ValueType userValueTypeHint, String field, Script script, Object missing, @@ -85,7 +85,7 @@ public static ValuesSourceConfig resolve(AggregationContext context, * @return - An initialized {@link ValuesSourceConfig} that will yield the appropriate {@link ValuesSourceType} */ public static ValuesSourceConfig resolveUnregistered(AggregationContext context, - ValueType userValueTypeHint, + CoreValuesSourceType.ValueType userValueTypeHint, String field, Script script, Object missing, @@ -105,24 +105,24 @@ public static ValuesSourceConfig resolveUnregistered(AggregationContext context, } private static ValuesSourceConfig internalResolve(AggregationContext context, - ValueType userValueTypeHint, - String field, - Script script, - Object missing, - ZoneId timeZone, - String format, - ValuesSourceType defaultValueSourceType, - FieldResolver fieldResolver + CoreValuesSourceType.ValueType userValueTypeHint, + String field, + Script script, + Object missing, + ZoneId timeZone, + String format, + ValuesSourceType defaultValueSourceType, + FieldResolver fieldResolver ) { ValuesSourceConfig config; ValuesSourceType valuesSourceType = null; - ValueType scriptValueType = userValueTypeHint; + CoreValuesSourceType.ValueType scriptValueType = userValueTypeHint; FieldContext fieldContext = null; AggregationScript.LeafFactory aggregationScript = createScript(script, context); // returns null if script is null boolean unmapped = false; if (userValueTypeHint != null) { // If the user gave us a type hint, respect that. - valuesSourceType = userValueTypeHint.getValuesSourceType(); + valuesSourceType = userValueTypeHint.getCoreValuesSourceType(); } if (field == null) { if (script == null) { @@ -169,14 +169,14 @@ private static ValuesSourceConfig internalResolve(AggregationContext context, private interface FieldResolver { ValuesSourceType getValuesSourceType( FieldContext fieldContext, - ValueType userValueTypeHint, + CoreValuesSourceType.ValueType userValueTypeHint, ValuesSourceType defaultValuesSourceType); } private static ValuesSourceType getMappingFromRegistry( FieldContext fieldContext, - ValueType userValueTypeHint, + CoreValuesSourceType.ValueType userValueTypeHint, ValuesSourceType defaultValuesSourceType ) { return fieldContext.indexFieldData().getValuesSourceType(); @@ -184,7 +184,7 @@ private static ValuesSourceType getMappingFromRegistry( private static ValuesSourceType getLegacyMapping( FieldContext fieldContext, - ValueType userValueTypeHint, + CoreValuesSourceType.ValueType userValueTypeHint, ValuesSourceType defaultValuesSourceType ) { IndexFieldData indexFieldData = fieldContext.indexFieldData(); @@ -198,7 +198,7 @@ private static ValuesSourceType getLegacyMapping( if (userValueTypeHint == null) { return defaultValuesSourceType; } else { - return userValueTypeHint.getValuesSourceType(); + return userValueTypeHint.getCoreValuesSourceType(); } } } @@ -228,7 +228,7 @@ private static DocValueFormat resolveFormat(@Nullable String format, @Nullable V */ public static ValuesSourceConfig resolveFieldOnly(MappedFieldType fieldType, AggregationContext context) { FieldContext fieldContext = context.buildFieldContext(fieldType); - ValuesSourceType vstype = fieldContext.indexFieldData().getValuesSourceType(); + ValuesSourceType vstype = fieldContext.indexFieldData().getValuesSourceType(); return new ValuesSourceConfig(vstype, fieldContext, false, null, null, null, null, null, context); } @@ -242,7 +242,7 @@ public static ValuesSourceConfig resolveUnmapped(ValuesSourceType valuesSourceTy private final ValuesSourceType valuesSourceType; private final FieldContext fieldContext; private final AggregationScript.LeafFactory script; - private final ValueType scriptValueType; + private final CoreValuesSourceType.ValueType scriptValueType; private final boolean unmapped; private final DocValueFormat format; private final Object missing; @@ -258,7 +258,7 @@ public ValuesSourceConfig( FieldContext fieldContext, boolean unmapped, AggregationScript.LeafFactory script, - ValueType scriptValueType, + CoreValuesSourceType.ValueType scriptValueType, Object missing, ZoneId timeZone, DocValueFormat format, @@ -341,7 +341,7 @@ public boolean valid() { return fieldContext != null || script != null || unmapped; } - public ValueType scriptValueType() { + public CoreValuesSourceType.ValueType scriptValueType() { return this.scriptValueType; } @@ -403,7 +403,7 @@ public boolean alignesWithSearchIndex() { */ public String getDescription() { if (script != null) { - return "Script yielding [" + (scriptValueType != null ? scriptValueType.getPreferredName() : "unknown type") + "]"; + return "Script yielding [" + (scriptValueType != null ? scriptValueType.getCoreValuesSourceType().typeName() : "unknown type") + "]"; } MappedFieldType fieldType = fieldType(); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java index 9d86b700622ac..5434ed0c20a3d 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java @@ -23,6 +23,7 @@ import org.elasticsearch.search.DocValueFormat; import java.time.ZoneId; +import java.util.Locale; /** * {@link ValuesSourceType} represents a collection of fields that share a common set of operations, for example all numeric fields. @@ -60,7 +61,7 @@ public interface ValuesSourceType { * @param scriptValueType - The expected output type of the script * @return - Script specialization of the base {@link ValuesSource} */ - ValuesSource getScript(AggregationScript.LeafFactory script, ValueType scriptValueType); + ValuesSource getScript(AggregationScript.LeafFactory script, CoreValuesSourceType.ValueType scriptValueType); /** * Return a {@link ValuesSource} wrapping a field for the given type. All {@link ValuesSource}s must implement this method. @@ -104,4 +105,8 @@ default DocValueFormat getFormatter(String format, ZoneId tz) { * @return the name of the Values Source Type */ String typeName(); + + default byte getId(String valueType) { + return CoreValuesSourceType.ValueType.valueOf(valueType.trim().toUpperCase(Locale.ROOT)).getId(); + } } diff --git a/server/src/test/java/org/elasticsearch/search/SearchServiceTests.java b/server/src/test/java/org/elasticsearch/search/SearchServiceTests.java index 44526aa755437..2514f44a974c0 100644 --- a/server/src/test/java/org/elasticsearch/search/SearchServiceTests.java +++ b/server/src/test/java/org/elasticsearch/search/SearchServiceTests.java @@ -76,7 +76,7 @@ import org.elasticsearch.search.aggregations.MultiBucketConsumerService; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.FetchSearchResult; import org.elasticsearch.search.fetch.ShardFetchRequest; @@ -717,9 +717,10 @@ public void testCanMatch() throws Exception { new AliasFilter(null, Strings.EMPTY_ARRAY), 1f, -1, null)).canMatch()); searchRequest.source(new SearchSourceBuilder().query(new MatchNoneQueryBuilder()) - .aggregation(new TermsAggregationBuilder("test").userValueTypeHint(ValueType.STRING).minDocCount(0))); - assertTrue(service.canMatch(new ShardSearchRequest(OriginalIndices.NONE, searchRequest, indexShard.shardId(), 0, 1, + .aggregation(new TermsAggregationBuilder("test").userValueTypeHint(CoreValuesSourceType.ValueType.STRING).minDocCount(0))); + assertTrue(service.canMatch(new ShardSearchRequest(OriginalIndices.NONE, searchRequest, indexShard.shardId(), 1, new AliasFilter(null, Strings.EMPTY_ARRAY), 1f, -1, null)).canMatch()); + searchRequest.source(new SearchSourceBuilder().query(new MatchNoneQueryBuilder()) .aggregation(new GlobalAggregationBuilder("test"))); assertTrue(service.canMatch(new ShardSearchRequest(OriginalIndices.NONE, searchRequest, indexShard.shardId(), 0, 1, @@ -778,12 +779,12 @@ public void testCanRewriteToMatchNone() { assertFalse(SearchService.canRewriteToMatchNone(new SearchSourceBuilder())); assertFalse(SearchService.canRewriteToMatchNone(null)); assertFalse(SearchService.canRewriteToMatchNone(new SearchSourceBuilder().query(new MatchNoneQueryBuilder()) - .aggregation(new TermsAggregationBuilder("test").userValueTypeHint(ValueType.STRING).minDocCount(0)))); + .aggregation(new TermsAggregationBuilder("test").userValueTypeHint(CoreValuesSourceType.ValueType.STRING).minDocCount(0)))); assertTrue(SearchService.canRewriteToMatchNone(new SearchSourceBuilder().query(new TermQueryBuilder("foo", "bar")))); assertTrue(SearchService.canRewriteToMatchNone(new SearchSourceBuilder().query(new MatchNoneQueryBuilder()) - .aggregation(new TermsAggregationBuilder("test").userValueTypeHint(ValueType.STRING).minDocCount(1)))); + .aggregation(new TermsAggregationBuilder("test").userValueTypeHint(CoreValuesSourceType.ValueType.STRING).minDocCount(1)))); assertFalse(SearchService.canRewriteToMatchNone(new SearchSourceBuilder().query(new MatchNoneQueryBuilder()) - .aggregation(new TermsAggregationBuilder("test").userValueTypeHint(ValueType.STRING).minDocCount(1)) + .aggregation(new TermsAggregationBuilder("test").userValueTypeHint(CoreValuesSourceType.ValueType.STRING).minDocCount(1)) .suggest(new SuggestBuilder()))); assertFalse(SearchService.canRewriteToMatchNone(new SearchSourceBuilder().query(new TermQueryBuilder("foo", "bar")) .suggest(new SuggestBuilder()))); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersTests.java index 0f93bf734b6ba..66f2577106ead 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersTests.java @@ -34,7 +34,7 @@ import org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator.KeyedFilter; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.io.IOException; import java.util.Collections; @@ -168,7 +168,7 @@ public void testRewrite() throws IOException { assertTrue(((FiltersAggregationBuilder) rewritten).isKeyed()); // test sub-agg filter that does rewrite - original = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.BOOLEAN) + original = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.BOOLEAN) .subAggregation( new FiltersAggregationBuilder("my-agg", new KeyedFilter("my-filter", new BoolQueryBuilder())) ); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/composite/CompositeAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/composite/CompositeAggregatorTests.java index 60ccb9a4562fc..a7565024fe3f7 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/composite/CompositeAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/composite/CompositeAggregatorTests.java @@ -72,7 +72,7 @@ import org.elasticsearch.search.aggregations.metrics.MaxAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.TopHits; import org.elasticsearch.search.aggregations.metrics.TopHitsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.IndexSettingsModule; import org.junit.After; @@ -1845,7 +1845,7 @@ public void testWithTermsSubAggExecutionMode() throws Exception { .field("keyword"); return new CompositeAggregationBuilder("name", Collections.singletonList(terms)) .subAggregation( - new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING) + new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("terms") .collectMode(mode) .subAggregation(new MaxAggregationBuilder("max").field("long")) @@ -1873,7 +1873,7 @@ public void testWithTermsSubAggExecutionMode() throws Exception { .field("keyword"); return new CompositeAggregationBuilder("name", Collections.singletonList(terms)) .subAggregation( - new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING) + new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("terms") .collectMode(mode) .subAggregation(new MaxAggregationBuilder("max").field("long")) diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java index cb4f50eba72d6..3b7c42f5f67dc 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java @@ -76,7 +76,7 @@ import org.elasticsearch.search.aggregations.pipeline.BucketScriptPipelineAggregationBuilder; import org.elasticsearch.search.aggregations.pipeline.InternalSimpleValue; import org.elasticsearch.search.aggregations.support.AggregationInspectionHelper; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.io.IOException; import java.util.ArrayList; @@ -406,7 +406,7 @@ public void testNestedOrdering() throws IOException { = new NumberFieldMapper.NumberFieldType("num_pages", NumberFieldMapper.NumberType.LONG); MappedFieldType fieldType2 = new KeywordFieldMapper.KeywordFieldType("author"); - TermsAggregationBuilder termsBuilder = new TermsAggregationBuilder("authors").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder termsBuilder = new TermsAggregationBuilder("authors").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("author").order(BucketOrder.aggregation("chapters>num_pages.value", true)); NestedAggregationBuilder nestedBuilder = new NestedAggregationBuilder("chapters", "nested_chapters"); MaxAggregationBuilder maxAgg = new MaxAggregationBuilder("num_pages").field("num_pages"); @@ -455,7 +455,7 @@ public void testNestedOrdering() throws IOException { assertEquals(70, (int) numPages.getValue()); // reverse order: - termsBuilder = new TermsAggregationBuilder("authors").userValueTypeHint(ValueType.STRING) + termsBuilder = new TermsAggregationBuilder("authors").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("author").order(BucketOrder.aggregation("chapters>num_pages.value", false)); nestedBuilder = new NestedAggregationBuilder("chapters", "nested_chapters"); maxAgg = new MaxAggregationBuilder("num_pages").field("num_pages"); @@ -543,7 +543,7 @@ public void testNestedOrdering_random() throws IOException { = new NumberFieldMapper.NumberFieldType("num_pages", NumberFieldMapper.NumberType.LONG); MappedFieldType fieldType2 = new KeywordFieldMapper.KeywordFieldType("author"); - TermsAggregationBuilder termsBuilder = new TermsAggregationBuilder("authors").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder termsBuilder = new TermsAggregationBuilder("authors").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .size(books.size()).field("author") .order(BucketOrder.compound(BucketOrder.aggregation("chapters>num_pages.value", true), BucketOrder.key(true))); NestedAggregationBuilder nestedBuilder = new NestedAggregationBuilder("chapters", "nested_chapters"); @@ -635,9 +635,9 @@ public void testPreGetChildLeafCollectors() throws IOException { iw.commit(); } try (IndexReader indexReader = wrapInMockESDirectoryReader(DirectoryReader.open(directory))) { - TermsAggregationBuilder valueBuilder = new TermsAggregationBuilder("value").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder valueBuilder = new TermsAggregationBuilder("value").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("value"); - TermsAggregationBuilder keyBuilder = new TermsAggregationBuilder("key").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder keyBuilder = new TermsAggregationBuilder("key").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("key"); keyBuilder.subAggregation(valueBuilder); NestedAggregationBuilder nestedBuilder = new NestedAggregationBuilder(NESTED_AGG, "nested_field"); @@ -748,7 +748,7 @@ public void testNestedWithPipeline() throws IOException { } try (IndexReader indexReader = wrapInMockESDirectoryReader(DirectoryReader.open(directory))) { NestedAggregationBuilder nestedBuilder = new NestedAggregationBuilder(NESTED_AGG, NESTED_OBJECT) - .subAggregation(new TermsAggregationBuilder("terms").field(VALUE_FIELD_NAME).userValueTypeHint(ValueType.NUMERIC) + .subAggregation(new TermsAggregationBuilder("terms").field(VALUE_FIELD_NAME).userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .subAggregation(new MaxAggregationBuilder(MAX_AGG_NAME).field(VALUE_FIELD_NAME)) .subAggregation(new BucketScriptPipelineAggregationBuilder("bucketscript", Collections.singletonMap("_value", MAX_AGG_NAME), diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/BinaryTermsAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/BinaryTermsAggregatorTests.java index 9f39e0e896d3a..187dd5071b14e 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/BinaryTermsAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/BinaryTermsAggregatorTests.java @@ -35,7 +35,7 @@ import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.search.aggregations.AggregatorTestCase; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.io.IOException; import java.util.ArrayList; @@ -61,7 +61,7 @@ public class BinaryTermsAggregatorTests extends AggregatorTestCase { public void testMatchNoDocs() throws IOException { testSearchCase(new MatchNoDocsQuery(), dataset, aggregation -> aggregation.field(BINARY_FIELD), - agg -> assertEquals(0, agg.getBuckets().size()), ValueType.STRING + agg -> assertEquals(0, agg.getBuckets().size()), CoreValuesSourceType.ValueType.STRING ); } @@ -97,7 +97,7 @@ public void testBadIncludeExclude() throws IOException { e = expectThrows(AggregationExecutionException.class, () -> testSearchCase(new MatchNoDocsQuery(), dataset, aggregation -> aggregation.field(BINARY_FIELD).includeExclude(includeExclude).format("yyyy-MM-dd"), - agg -> fail("test should have failed with exception"), ValueType.STRING // string type hint + agg -> fail("test should have failed with exception"), CoreValuesSourceType.ValueType.STRING // string type hint )); assertThat(e.getMessage(), equalTo("Aggregation [_name] cannot support regular expression style include/exclude settings as " + "they can only be applied to string fields. Use an array of values for include/exclude clauses")); @@ -106,14 +106,14 @@ public void testBadIncludeExclude() throws IOException { public void testBadUserValueTypeHint() throws IOException { IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> testSearchCase(new MatchNoDocsQuery(), dataset, aggregation -> aggregation.field(BINARY_FIELD), - agg -> fail("test should have failed with exception"), ValueType.NUMERIC // numeric type hint + agg -> fail("test should have failed with exception"), CoreValuesSourceType.ValueType.NUMERIC // numeric type hint )); assertThat(e.getMessage(), equalTo("Expected numeric type on field [binary], but got [binary]")); } private void testSearchCase(Query query, List dataset, Consumer configure, - Consumer verify, ValueType valueType) throws IOException { + Consumer verify, CoreValuesSourceType.ValueType valueType) throws IOException { try (Directory directory = newDirectory()) { try (RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory)) { Document document = new Document(); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/KeywordTermsAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/KeywordTermsAggregatorTests.java index 4e049c7e3a176..8fb4f0959cb8f 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/KeywordTermsAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/KeywordTermsAggregatorTests.java @@ -32,7 +32,7 @@ import org.elasticsearch.index.mapper.KeywordFieldMapper; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.search.aggregations.AggregatorTestCase; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.io.IOException; import java.util.ArrayList; @@ -63,7 +63,7 @@ public void testMatchNoDocs() throws IOException { testSearchCase(new MatchNoDocsQuery(), dataset, aggregation -> aggregation.field(KEYWORD_FIELD), - agg -> assertEquals(0, agg.getBuckets().size()), ValueType.STRING // with type hint + agg -> assertEquals(0, agg.getBuckets().size()), CoreValuesSourceType.ValueType.STRING // with type hint ); } @@ -91,13 +91,13 @@ public void testMatchAllDocs() throws IOException { assertThat(bucket.getKey(), equalTo(String.valueOf(9L - i))); assertThat(bucket.getDocCount(), equalTo(9L - i)); } - }, ValueType.STRING // with type hint + }, CoreValuesSourceType.ValueType.STRING // with type hint ); } private void testSearchCase(Query query, List dataset, Consumer configure, - Consumer verify, ValueType valueType) throws IOException { + Consumer verify, CoreValuesSourceType.ValueType valueType) throws IOException { try (Directory directory = newDirectory()) { try (RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory)) { Document document = new Document(); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/NumericTermsAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/NumericTermsAggregatorTests.java index 174a8a1aed6e8..94b774bd25a16 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/NumericTermsAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/NumericTermsAggregatorTests.java @@ -34,7 +34,7 @@ import org.elasticsearch.index.mapper.NumberFieldMapper; import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.search.aggregations.AggregatorTestCase; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.io.IOException; import java.util.ArrayList; @@ -66,7 +66,7 @@ public void testMatchNoDocs() throws IOException { testSearchCase(new MatchNoDocsQuery(), dataset, aggregation -> aggregation.field(LONG_FIELD), - agg -> assertEquals(0, agg.getBuckets().size()), ValueType.NUMERIC // with type hint + agg -> assertEquals(0, agg.getBuckets().size()), CoreValuesSourceType.ValueType.NUMERIC // with type hint ); } @@ -94,7 +94,7 @@ public void testMatchAllDocs() throws IOException { assertThat(bucket.getKey(), equalTo(9L - i)); assertThat(bucket.getDocCount(), equalTo(9L - i)); } - }, ValueType.NUMERIC //with type hint + }, CoreValuesSourceType.ValueType.NUMERIC //with type hint ); } @@ -115,7 +115,7 @@ public void testBadIncludeExclude() throws IOException { e = expectThrows(AggregationExecutionException.class, () -> testSearchCase(new MatchNoDocsQuery(), dataset, aggregation -> aggregation.field(LONG_FIELD).includeExclude(includeExclude).format("yyyy-MM-dd"), - agg -> fail("test should have failed with exception"), ValueType.NUMERIC // with type hint + agg -> fail("test should have failed with exception"), CoreValuesSourceType.ValueType.NUMERIC // with type hint )); assertThat(e.getMessage(), equalTo("Aggregation [_name] cannot support regular expression style " + "include/exclude settings as they can only be applied to string fields. Use an array of numeric " + @@ -125,7 +125,7 @@ public void testBadIncludeExclude() throws IOException { private void testSearchCase(Query query, List dataset, Consumer configure, - Consumer verify, ValueType valueType) throws IOException { + Consumer verify, CoreValuesSourceType.ValueType valueType) throws IOException { try (Directory directory = newDirectory()) { try (RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory)) { Document document = new Document(); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorTests.java index c119cc1e48458..351fcfb5262f5 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorTests.java @@ -18,6 +18,7 @@ */ package org.elasticsearch.search.aggregations.bucket.terms; +import org.apache.logging.log4j.core.Core; import org.apache.lucene.document.BinaryDocValuesField; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -91,7 +92,6 @@ import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.AggregationInspectionHelper; import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import org.elasticsearch.search.sort.FieldSortBuilder; import org.elasticsearch.search.sort.ScoreSortBuilder; @@ -180,7 +180,7 @@ public void testUsesGlobalOrdinalsByDefault() throws Exception { // We do not use LuceneTestCase.newSearcher because we need a DirectoryReader IndexSearcher indexSearcher = new IndexSearcher(indexReader); - TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("string"); MappedFieldType fieldType = new KeywordFieldMapper.KeywordFieldType("string"); @@ -248,7 +248,7 @@ public void testSimple() throws Exception { IndexSearcher indexSearcher = newIndexSearcher(indexReader); for (TermsAggregatorFactory.ExecutionMode executionMode : TermsAggregatorFactory.ExecutionMode.values()) { TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name") - .userValueTypeHint(ValueType.STRING) + .userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionMode.toString()) .field("string") .order(BucketOrder.key(true)); @@ -316,7 +316,7 @@ public void testStringIncludeExclude() throws Exception { String executionHint = randomFrom(TermsAggregatorFactory.ExecutionMode.values()).toString(); TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name") - .userValueTypeHint(ValueType.STRING) + .userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .includeExclude(new IncludeExclude("val00.+", null)) .field("mv_field") @@ -352,7 +352,7 @@ public void testStringIncludeExclude() throws Exception { assertTrue(AggregationInspectionHelper.hasValue((InternalTerms)result)); MappedFieldType fieldType2 = new KeywordFieldMapper.KeywordFieldType("sv_field"); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.STRING) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .includeExclude(new IncludeExclude("val00.+", null)) .field("sv_field") @@ -376,7 +376,7 @@ public void testStringIncludeExclude() throws Exception { assertEquals(1L, result.getBuckets().get(4).getDocCount()); assertTrue(AggregationInspectionHelper.hasValue((InternalTerms)result)); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.STRING) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .includeExclude(new IncludeExclude("val00.+", "(val000|val001)")) .field("mv_field") @@ -406,7 +406,7 @@ public void testStringIncludeExclude() throws Exception { assertEquals(1L, result.getBuckets().get(7).getDocCount()); assertTrue(AggregationInspectionHelper.hasValue((InternalTerms)result)); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.STRING) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .includeExclude(new IncludeExclude(null, "val00.+")) .field("mv_field") @@ -423,7 +423,7 @@ public void testStringIncludeExclude() throws Exception { assertEquals(1L, result.getBuckets().get(1).getDocCount()); assertTrue(AggregationInspectionHelper.hasValue((InternalTerms)result)); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.STRING) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .includeExclude(new IncludeExclude(new String[]{"val000", "val010"}, null)) .field("mv_field") @@ -440,7 +440,7 @@ public void testStringIncludeExclude() throws Exception { assertEquals(1L, result.getBuckets().get(1).getDocCount()); assertTrue(AggregationInspectionHelper.hasValue((InternalTerms)result)); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.STRING) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .includeExclude(new IncludeExclude(null, new String[]{"val001", "val002", "val003", "val004", "val005", "val006", "val007", "val008", "val009", "val011"})) @@ -458,7 +458,7 @@ public void testStringIncludeExclude() throws Exception { assertEquals(1L, result.getBuckets().get(1).getDocCount()); assertTrue(AggregationInspectionHelper.hasValue((InternalTerms)result)); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.STRING) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .includeExclude(new IncludeExclude("val00.+", null, null, new String[]{"val001", "val002", "val003", "val004", "val005", "val006", "val007", "val008"})) @@ -476,7 +476,7 @@ public void testStringIncludeExclude() throws Exception { assertEquals(1L, result.getBuckets().get(1).getDocCount()); assertTrue(AggregationInspectionHelper.hasValue((InternalTerms)result)); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.STRING) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .includeExclude(new IncludeExclude(null, "val01.+", new String[]{"val001", "val002", "val010"}, null)) @@ -532,7 +532,7 @@ public void testNumericIncludeExclude() throws Exception { String executionHint = randomFrom(TermsAggregatorFactory.ExecutionMode.values()).toString(); TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name") - .userValueTypeHint(ValueType.LONG) + .userValueTypeHint(CoreValuesSourceType.ValueType.LONG) .executionHint(executionHint) .includeExclude(new IncludeExclude(new long[]{0, 5}, null)) .field("long_field") @@ -549,7 +549,7 @@ public void testNumericIncludeExclude() throws Exception { assertEquals(1L, result.getBuckets().get(1).getDocCount()); assertTrue(AggregationInspectionHelper.hasValue((InternalTerms)result)); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.LONG) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.LONG) .executionHint(executionHint) .includeExclude(new IncludeExclude(null, new long[]{0, 5})) .field("long_field") @@ -572,7 +572,7 @@ public void testNumericIncludeExclude() throws Exception { fieldType = new NumberFieldMapper.NumberFieldType("double_field", NumberFieldMapper.NumberType.DOUBLE); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.DOUBLE) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.DOUBLE) .executionHint(executionHint) .includeExclude(new IncludeExclude(new double[]{0.0, 5.0}, null)) .field("double_field") @@ -589,7 +589,7 @@ public void testNumericIncludeExclude() throws Exception { assertEquals(1L, result.getBuckets().get(1).getDocCount()); assertTrue(AggregationInspectionHelper.hasValue((InternalTerms)result)); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.DOUBLE) + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.DOUBLE) .executionHint(executionHint) .includeExclude(new IncludeExclude(null, new double[]{0.0, 5.0})) .field("double_field") @@ -623,9 +623,9 @@ public void testStringTermsAggregator() throws Exception { } }; MappedFieldType fieldType = new KeywordFieldMapper.KeywordFieldType("field"); - termsAggregator(ValueType.STRING, fieldType, i -> Integer.toString(i), + termsAggregator(CoreValuesSourceType.ValueType.STRING, fieldType, i -> Integer.toString(i), String::compareTo, luceneFieldFactory); - termsAggregatorWithNestedMaxAgg(ValueType.STRING, fieldType, i -> Integer.toString(i), + termsAggregatorWithNestedMaxAgg(CoreValuesSourceType.ValueType.STRING, fieldType, i -> Integer.toString(i), val -> new SortedDocValuesField("field", new BytesRef(val))); } @@ -639,8 +639,8 @@ public void testLongTermsAggregator() throws Exception { }; MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType("field", NumberFieldMapper.NumberType.LONG); - termsAggregator(ValueType.LONG, fieldType, Integer::longValue, Long::compareTo, luceneFieldFactory); - termsAggregatorWithNestedMaxAgg(ValueType.LONG, fieldType, Integer::longValue, val -> new NumericDocValuesField("field", val)); + termsAggregator(CoreValuesSourceType.ValueType.LONG, fieldType, Integer::longValue, Long::compareTo, luceneFieldFactory); + termsAggregatorWithNestedMaxAgg(CoreValuesSourceType.ValueType.LONG, fieldType, Integer::longValue, val -> new NumericDocValuesField("field", val)); } public void testDoubleTermsAggregator() throws Exception { @@ -653,8 +653,8 @@ public void testDoubleTermsAggregator() throws Exception { }; MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType("field", NumberFieldMapper.NumberType.DOUBLE); - termsAggregator(ValueType.DOUBLE, fieldType, Integer::doubleValue, Double::compareTo, luceneFieldFactory); - termsAggregatorWithNestedMaxAgg(ValueType.DOUBLE, fieldType, Integer::doubleValue, + termsAggregator(CoreValuesSourceType.ValueType.DOUBLE, fieldType, Integer::doubleValue, Double::compareTo, luceneFieldFactory); + termsAggregatorWithNestedMaxAgg(CoreValuesSourceType.ValueType.DOUBLE, fieldType, Integer::doubleValue, val -> new NumericDocValuesField("field", Double.doubleToRawLongBits(val))); } @@ -672,11 +672,11 @@ public void testIpTermsAggregator() throws Exception { BytesRef b2 = new BytesRef(InetAddressPoint.encode(o2)); return b1.compareTo(b2); }; - termsAggregator(ValueType.IP, new IpFieldMapper.IpFieldType("field"), i -> base[0] = InetAddressPoint.nextUp(base[0]), + termsAggregator(CoreValuesSourceType.ValueType.IP, new IpFieldMapper.IpFieldType("field"), i -> base[0] = InetAddressPoint.nextUp(base[0]), comparator, luceneFieldFactory); } - private void termsAggregator(ValueType valueType, MappedFieldType fieldType, + private void termsAggregator(CoreValuesSourceType.ValueType valueType, MappedFieldType fieldType, Function valueFactory, Comparator keyComparator, BiFunction luceneFieldFactory) throws Exception { final Map counts = new HashMap<>(); @@ -769,7 +769,7 @@ private void termsAggregator(ValueType valueType, MappedFieldType fieldType, for (int i = 0; i < size; i++) { Map.Entry expected = expectedBuckets.get(i); Terms.Bucket actual = result.getBuckets().get(i); - if (valueType == ValueType.IP) { + if (valueType == CoreValuesSourceType.ValueType.IP) { assertEquals(String.valueOf(expected.getKey()).substring(1), actual.getKey()); } else { assertEquals(expected.getKey(), actual.getKey()); @@ -800,7 +800,7 @@ private void termsAggregator(ValueType valueType, MappedFieldType fieldType, assertEquals(expectedFilteredCounts, result.getBuckets().size()); for (Terms.Bucket actual : result.getBuckets()) { Integer expectedCount; - if (valueType == ValueType.IP) { + if (valueType == CoreValuesSourceType.ValueType.IP) { expectedCount = filteredCounts.get(InetAddresses.forString((String)actual.getKey())); } else { expectedCount = filteredCounts.get(actual.getKey()); @@ -813,7 +813,7 @@ private void termsAggregator(ValueType valueType, MappedFieldType fieldType, } } - private void termsAggregatorWithNestedMaxAgg(ValueType valueType, MappedFieldType fieldType, + private void termsAggregatorWithNestedMaxAgg(CoreValuesSourceType.ValueType valueType, MappedFieldType fieldType, Function valueFactory, Function luceneFieldFactory) throws Exception { final Map counts = new HashMap<>(); @@ -886,7 +886,7 @@ public void testEmpty() throws Exception { try (IndexReader indexReader = maybeWrapReaderEs(indexWriter.getReader())) { IndexSearcher indexSearcher = newIndexSearcher(indexReader); TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name") - .userValueTypeHint(ValueType.STRING) + .userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("string"); AggregationContext context = createAggregationContext(indexSearcher, null, fieldType1); Aggregator aggregator = createAggregator(aggregationBuilder, context); @@ -896,8 +896,8 @@ public void testEmpty() throws Exception { assertEquals("_name", result.getName()); assertEquals(0, result.getBuckets().size()); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.LONG).field("long"); - context = createAggregationContext(indexSearcher, null, fieldType2); + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.LONG).field("long"); + context = createSearchContext(indexSearcher, null, fieldType2); aggregator = createAggregator(aggregationBuilder, context); aggregator.preCollection(); indexSearcher.search(new MatchAllDocsQuery(), aggregator); @@ -905,8 +905,8 @@ public void testEmpty() throws Exception { assertEquals("_name", result.getName()); assertEquals(0, result.getBuckets().size()); - aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.DOUBLE).field("double"); - context = createAggregationContext(indexSearcher, null, fieldType3); + aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.DOUBLE).field("double"); + context = createSearchContext(indexSearcher, null, fieldType3); aggregator = createAggregator(aggregationBuilder, context); aggregator.preCollection(); indexSearcher.search(new MatchAllDocsQuery(), aggregator); @@ -923,7 +923,7 @@ public void testUnmapped() throws Exception { try (RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory)) { try (IndexReader indexReader = maybeWrapReaderEs(indexWriter.getReader())) { IndexSearcher indexSearcher = newIndexSearcher(indexReader); - ValueType[] valueTypes = new ValueType[]{ValueType.STRING, ValueType.LONG, ValueType.DOUBLE}; + CoreValuesSourceType.ValueType[] valueTypes = new CoreValuesSourceType.ValueType[]{CoreValuesSourceType.ValueType.STRING, CoreValuesSourceType.ValueType.LONG, CoreValuesSourceType.ValueType.DOUBLE}; String[] fieldNames = new String[]{"string", "long", "double"}; for (int i = 0; i < fieldNames.length; i++) { TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name") @@ -956,7 +956,7 @@ public void testUnmappedWithMissing() throws Exception { MappedFieldType fieldType1 = new KeywordFieldMapper.KeywordFieldType("unrelated_value"); IndexSearcher indexSearcher = newIndexSearcher(indexReader); - ValueType[] valueTypes = new ValueType[]{ValueType.STRING, ValueType.LONG, ValueType.DOUBLE}; + CoreValuesSourceType.ValueType[] valueTypes = new CoreValuesSourceType.ValueType[]{CoreValuesSourceType.ValueType.STRING, CoreValuesSourceType.ValueType.LONG, CoreValuesSourceType.ValueType.DOUBLE}; String[] fieldNames = new String[]{"string", "long", "double"}; Object[] missingValues = new Object[]{"abc", 19L, 19.2}; @@ -1071,12 +1071,12 @@ public void testNestedTermsAgg() throws Exception { String executionHint = randomFrom(TermsAggregatorFactory.ExecutionMode.values()).toString(); Aggregator.SubAggCollectionMode collectionMode = randomFrom(Aggregator.SubAggCollectionMode.values()); TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name1") - .userValueTypeHint(ValueType.STRING) + .userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .collectMode(collectionMode) .field("field1") .order(BucketOrder.key(true)) - .subAggregation(new TermsAggregationBuilder("_name2").userValueTypeHint(ValueType.STRING) + .subAggregation(new TermsAggregationBuilder("_name2").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .collectMode(collectionMode) .field("field2") @@ -1110,7 +1110,7 @@ public void testNestedTermsAgg() throws Exception { public void testMixLongAndDouble() throws Exception { for (TermsAggregatorFactory.ExecutionMode executionMode : TermsAggregatorFactory.ExecutionMode.values()) { - TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(ValueType.LONG) + TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("_name").userValueTypeHint(CoreValuesSourceType.ValueType.LONG) .executionHint(executionMode.toString()) .field("number") .order(BucketOrder.key(true)); @@ -1178,13 +1178,13 @@ public void testGlobalAggregationWithScore() throws IOException { Aggregator.SubAggCollectionMode collectionMode = randomFrom(Aggregator.SubAggCollectionMode.values()); GlobalAggregationBuilder globalBuilder = new GlobalAggregationBuilder("global") .subAggregation( - new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING) + new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .collectMode(collectionMode) .field("keyword") .order(BucketOrder.key(true)) .subAggregation( - new TermsAggregationBuilder("sub_terms").userValueTypeHint(ValueType.STRING) + new TermsAggregationBuilder("sub_terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .executionHint(executionHint) .collectMode(collectionMode) .field("keyword").order(BucketOrder.key(true)) @@ -1229,7 +1229,7 @@ public void testWithNestedAggregations() throws IOException { for (Aggregator.SubAggCollectionMode mode : Aggregator.SubAggCollectionMode.values()) { for (boolean withScore : new boolean[]{true, false}) { NestedAggregationBuilder nested = new NestedAggregationBuilder("nested", "nested_object") - .subAggregation(new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.LONG) + .subAggregation(new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.LONG) .field("nested_value") // force the breadth_first mode .collectMode(mode) @@ -1273,7 +1273,7 @@ public void testNumberToStringValueScript() throws IOException { = new NumberFieldMapper.NumberFieldType("number", NumberFieldMapper.NumberType.INTEGER); TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("name") - .userValueTypeHint(ValueType.STRING) + .userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("number") .script(new Script(ScriptType.INLINE, MockScriptEngine.NAME, STRING_SCRIPT_NAME, Collections.emptyMap())); @@ -1401,7 +1401,7 @@ public void testOrderByPipelineAggregation() throws Exception { "script", new Script("2.718")); TermsAggregationBuilder termsAgg = terms("terms") .field("field") - .userValueTypeHint(ValueType.STRING) + .userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .order(BucketOrder.aggregation("script", true)) .subAggregation(bucketScriptAgg); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgAggregatorTests.java index 25df41d17aa7c..7866d7467f9a7 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgAggregatorTests.java @@ -54,7 +54,6 @@ import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.AggregationInspectionHelper; import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import org.elasticsearch.search.lookup.LeafDocLookup; @@ -511,7 +510,7 @@ public void testMultiValuedFieldWithValueScript() throws IOException { public void testOrderByEmptyAggregation() throws IOException { MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType("value", NumberFieldMapper.NumberType.INTEGER); - AggregationBuilder aggregationBuilder = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.NUMERIC) + AggregationBuilder aggregationBuilder = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.NUMERIC) .field("value") .order(BucketOrder.compound(BucketOrder.aggregation("filter>avg", true))) .subAggregation(AggregationBuilders.filter("filter", termQuery("value", 100)) diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxAggregatorTests.java index 9248f53e186e2..d9e8957c66e86 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxAggregatorTests.java @@ -73,7 +73,6 @@ import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.AggregationInspectionHelper; import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import org.elasticsearch.search.lookup.LeafDocLookup; @@ -734,7 +733,7 @@ public void testEmptyAggregation() throws Exception { public void testOrderByEmptyAggregation() throws IOException { MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType("value", NumberFieldMapper.NumberType.INTEGER); - TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.NUMERIC) + TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.NUMERIC) .field("value") .order(BucketOrder.compound(BucketOrder.aggregation("filter>max", true))) .subAggregation(AggregationBuilders.filter("filter", termQuery("value", 100)) @@ -847,7 +846,7 @@ public void testNestedEarlyTermination() throws Exception { ValueCountAggregationBuilder countAggregationBuilder = new ValueCountAggregationBuilder("count") .field("values"); TermsAggregationBuilder termsAggregationBuilder = new TermsAggregationBuilder("terms") - .userValueTypeHint(ValueType.NUMERIC) + .userValueTypeHint(CoreValuesSourceType.ValueType.NUMERIC) .field("value").collectMode(collectionMode) .subAggregation(new MaxAggregationBuilder("sub_max").field("invalid")); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountAggregatorTests.java index f5edfceec03da..05380f339aa12 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountAggregatorTests.java @@ -55,7 +55,6 @@ import org.elasticsearch.search.aggregations.AggregatorTestCase; import org.elasticsearch.search.aggregations.support.AggregationInspectionHelper; import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -114,7 +113,7 @@ protected ScriptService getMockScriptService() { public void testGeoField() throws IOException { - testAggregation(new MatchAllDocsQuery(), ValueType.GEOPOINT, iw -> { + testAggregation(new MatchAllDocsQuery(), CoreValuesSourceType.ValueType.GEOPOINT, iw -> { for (int i = 0; i < 10; i++) { Document document = new Document(); document.add(new LatLonDocValuesField("field", 10, 10)); @@ -124,7 +123,7 @@ public void testGeoField() throws IOException { } public void testDoubleField() throws IOException { - testAggregation(new MatchAllDocsQuery(), ValueType.DOUBLE, iw -> { + testAggregation(new MatchAllDocsQuery(), CoreValuesSourceType.ValueType.DOUBLE, iw -> { for (int i = 0; i < 15; i++) { Document document = new Document(); document.add(new DoubleDocValuesField(FIELD_NAME, 23D)); @@ -134,7 +133,7 @@ public void testDoubleField() throws IOException { } public void testKeyWordField() throws IOException { - testAggregation(new MatchAllDocsQuery(), ValueType.STRING, iw -> { + testAggregation(new MatchAllDocsQuery(), CoreValuesSourceType.ValueType.STRING, iw -> { for (int i = 0; i < 20; i++) { Document document = new Document(); document.add(new SortedSetDocValuesField(FIELD_NAME, new BytesRef("stringValue"))); @@ -145,7 +144,7 @@ public void testKeyWordField() throws IOException { } public void testNoDocs() throws IOException { - for (ValueType valueType : ValueType.values()) { + for (CoreValuesSourceType.ValueType valueType : CoreValuesSourceType.ValueType.values()) { testAggregation(new MatchAllDocsQuery(), valueType, iw -> { // Intentionally not writing any docs }, count -> { @@ -156,7 +155,7 @@ public void testNoDocs() throws IOException { } public void testNoMatchingField() throws IOException { - testAggregation(new MatchAllDocsQuery(), ValueType.LONG, iw -> { + testAggregation(new MatchAllDocsQuery(), CoreValuesSourceType.ValueType.LONG, iw -> { iw.addDocument(singleton(new SortedNumericDocValuesField("wrong_number", 7))); iw.addDocument(singleton(new SortedNumericDocValuesField("wrong_number", 1))); }, count -> { @@ -166,7 +165,7 @@ public void testNoMatchingField() throws IOException { } public void testSomeMatchesSortedNumericDocValues() throws IOException { - testAggregation(new DocValuesFieldExistsQuery(FIELD_NAME), ValueType.NUMERIC, iw -> { + testAggregation(new DocValuesFieldExistsQuery(FIELD_NAME), CoreValuesSourceType.ValueType.NUMERIC, iw -> { iw.addDocument(singleton(new SortedNumericDocValuesField("wrong_number", 7))); iw.addDocument(singleton(new SortedNumericDocValuesField(FIELD_NAME, 7))); iw.addDocument(singleton(new SortedNumericDocValuesField(FIELD_NAME, 1))); @@ -177,7 +176,7 @@ public void testSomeMatchesSortedNumericDocValues() throws IOException { } public void testSomeMatchesNumericDocValues() throws IOException { - testAggregation(new DocValuesFieldExistsQuery(FIELD_NAME), ValueType.NUMBER, iw -> { + testAggregation(new DocValuesFieldExistsQuery(FIELD_NAME), CoreValuesSourceType.ValueType.NUMBER, iw -> { iw.addDocument(singleton(new NumericDocValuesField(FIELD_NAME, 7))); iw.addDocument(singleton(new NumericDocValuesField(FIELD_NAME, 1))); }, count -> { @@ -187,7 +186,7 @@ public void testSomeMatchesNumericDocValues() throws IOException { } public void testQueryFiltering() throws IOException { - testAggregation(IntPoint.newRangeQuery("level", 0, 5), ValueType.STRING, iw -> { + testAggregation(IntPoint.newRangeQuery("level", 0, 5), CoreValuesSourceType.ValueType.STRING, iw -> { iw.addDocument(Arrays.asList(new IntPoint("level", 0), new SortedDocValuesField(FIELD_NAME, new BytesRef("foo")))); iw.addDocument(Arrays.asList(new IntPoint("level", 1), new SortedDocValuesField(FIELD_NAME, new BytesRef("bar")))); iw.addDocument(Arrays.asList(new IntPoint("level", 3), new SortedDocValuesField(FIELD_NAME, new BytesRef("foo")))); @@ -200,7 +199,7 @@ public void testQueryFiltering() throws IOException { } public void testQueryFiltersAll() throws IOException { - testAggregation(IntPoint.newRangeQuery("level", -1, 0), ValueType.STRING, iw -> { + testAggregation(IntPoint.newRangeQuery("level", -1, 0), CoreValuesSourceType.ValueType.STRING, iw -> { iw.addDocument(Arrays.asList(new IntPoint("level", 3), new SortedDocValuesField(FIELD_NAME, new BytesRef("foo")))); iw.addDocument(Arrays.asList(new IntPoint("level", 5), new SortedDocValuesField(FIELD_NAME, new BytesRef("baz")))); }, count -> { @@ -274,7 +273,7 @@ public void testValueScriptNumber() throws IOException { .field(FIELD_NAME) .script(new Script(ScriptType.INLINE, MockScriptEngine.NAME, NUMBER_VALUE_SCRIPT, Collections.emptyMap())); - MappedFieldType fieldType = createMappedFieldType(FIELD_NAME, ValueType.NUMERIC); + MappedFieldType fieldType = createMappedFieldType(FIELD_NAME, CoreValuesSourceType.ValueType.NUMERIC); testAggregation(aggregationBuilder, new MatchAllDocsQuery(), iw -> { iw.addDocument(singleton(new NumericDocValuesField(FIELD_NAME, 7))); @@ -290,7 +289,7 @@ public void testSingleScriptNumber() throws IOException { ValueCountAggregationBuilder aggregationBuilder = new ValueCountAggregationBuilder("name") .script(new Script(ScriptType.INLINE, MockScriptEngine.NAME, SINGLE_SCRIPT, Collections.emptyMap())); - MappedFieldType fieldType = createMappedFieldType(FIELD_NAME, ValueType.NUMERIC); + MappedFieldType fieldType = createMappedFieldType(FIELD_NAME, CoreValuesSourceType.ValueType.NUMERIC); testAggregation(aggregationBuilder, new MatchAllDocsQuery(), iw -> { Document doc = new Document(); @@ -320,7 +319,7 @@ public void testValueScriptString() throws IOException { .field(FIELD_NAME) .script(new Script(ScriptType.INLINE, MockScriptEngine.NAME, STRING_VALUE_SCRIPT, Collections.emptyMap())); - MappedFieldType fieldType = createMappedFieldType(FIELD_NAME, ValueType.STRING); + MappedFieldType fieldType = createMappedFieldType(FIELD_NAME, CoreValuesSourceType.ValueType.STRING); testAggregation(aggregationBuilder, new MatchAllDocsQuery(), iw -> { iw.addDocument(singleton(new SortedDocValuesField(FIELD_NAME, new BytesRef("1")))); @@ -336,7 +335,7 @@ public void testSingleScriptString() throws IOException { ValueCountAggregationBuilder aggregationBuilder = new ValueCountAggregationBuilder("name") .script(new Script(ScriptType.INLINE, MockScriptEngine.NAME, SINGLE_SCRIPT, Collections.emptyMap())); - MappedFieldType fieldType = createMappedFieldType(FIELD_NAME, ValueType.STRING); + MappedFieldType fieldType = createMappedFieldType(FIELD_NAME, CoreValuesSourceType.ValueType.STRING); testAggregation(aggregationBuilder, new MatchAllDocsQuery(), iw -> { Document doc = new Document(); @@ -363,7 +362,7 @@ public void testSingleScriptString() throws IOException { } private void testAggregation(Query query, - ValueType valueType, + CoreValuesSourceType.ValueType valueType, CheckedConsumer indexer, Consumer verify) throws IOException { // Test both with and without the userValueTypeHint @@ -372,7 +371,7 @@ private void testAggregation(Query query, } private void testAggregation(Query query, - ValueType valueType, + CoreValuesSourceType.ValueType valueType, CheckedConsumer indexer, Consumer verify, boolean testWithHint) throws IOException { MappedFieldType fieldType = createMappedFieldType(FIELD_NAME, valueType); @@ -396,7 +395,7 @@ private void testAggregation( testCase(aggregationBuilder, query, buildIndex, verify, fieldTypes); } - private static MappedFieldType createMappedFieldType(String name, ValueType valueType) { + private static MappedFieldType createMappedFieldType(String name, CoreValuesSourceType.ValueType valueType) { switch (valueType) { case BOOLEAN: return new BooleanFieldMapper.BooleanFieldType(name); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java index 5bc4eb7be9e37..672b515a163ef 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.metrics.WeightedAvgAggregationBuilder; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; import org.elasticsearch.test.AbstractSerializingTestCase; import org.junit.Before; @@ -66,6 +67,7 @@ protected WeightedAvgAggregationBuilder createTestInstance() { MultiValuesSourceFieldConfig valueConfig = new MultiValuesSourceFieldConfig.Builder().setFieldName("value_field").build(); MultiValuesSourceFieldConfig weightConfig = new MultiValuesSourceFieldConfig.Builder().setFieldName("weight_field").build(); WeightedAvgAggregationBuilder aggregationBuilder = new WeightedAvgAggregationBuilder(aggregationName) + .userValueTypeHint(CoreValuesSourceType.ValueType.NUMERIC) .value(valueConfig) .weight(weightConfig); return aggregationBuilder; diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketTests.java index 42476765e1ab9..31186109624de 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketTests.java @@ -22,7 +22,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.util.HashSet; import java.util.Set; @@ -39,7 +39,7 @@ protected AvgBucketPipelineAggregationBuilder doCreateTestAggregatorFactory(Stri public void testValidate() { AggregationBuilder singleBucketAgg = new GlobalAggregationBuilder("global"); - AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING); + AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); final Set aggBuilders = new HashSet<>(); aggBuilders.add(singleBucketAgg); aggBuilders.add(multiBucketAgg); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptAggregatorTests.java index e1a187b0e1327..a9365ab26d94e 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptAggregatorTests.java @@ -47,7 +47,7 @@ import org.elasticsearch.search.aggregations.bucket.filter.InternalFilters; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.AvgAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.io.IOException; import java.util.Collections; @@ -75,7 +75,7 @@ public void testScript() throws IOException { MappedFieldType fieldType1 = new KeywordFieldMapper.KeywordFieldType("the_field"); FiltersAggregationBuilder filters = new FiltersAggregationBuilder("placeholder", new MatchAllQueryBuilder()) - .subAggregation(new TermsAggregationBuilder("the_terms").userValueTypeHint(ValueType.STRING).field("the_field") + .subAggregation(new TermsAggregationBuilder("the_terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING).field("the_field") .subAggregation(new AvgAggregationBuilder("the_avg").field("number_field"))) .subAggregation(new BucketScriptPipelineAggregationBuilder("bucket_script", Collections.singletonMap("the_avg", "the_terms['test1']>the_avg.value"), diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/ExtendedStatsBucketTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/ExtendedStatsBucketTests.java index a7e2db4bada33..6931397b35da6 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/ExtendedStatsBucketTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/ExtendedStatsBucketTests.java @@ -24,7 +24,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.util.HashSet; import java.util.Set; @@ -62,7 +62,7 @@ public void testSigmaFromInt() throws Exception { public void testValidate() { AggregationBuilder singleBucketAgg = new GlobalAggregationBuilder("global"); - AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING); + AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); final Set aggBuilders = new HashSet<>(); aggBuilders.add(singleBucketAgg); aggBuilders.add(multiBucketAgg); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MaxBucketTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MaxBucketTests.java index 7713a9f8d095c..3bc7a94875806 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MaxBucketTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MaxBucketTests.java @@ -22,7 +22,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.util.HashSet; import java.util.Set; @@ -39,7 +39,7 @@ protected MaxBucketPipelineAggregationBuilder doCreateTestAggregatorFactory(Stri public void testValidate() { AggregationBuilder singleBucketAgg = new GlobalAggregationBuilder("global"); - AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING); + AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); final Set aggBuilders = new HashSet<>(); aggBuilders.add(singleBucketAgg); aggBuilders.add(multiBucketAgg); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MinBucketTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MinBucketTests.java index e9d3e15a3fa2b..c19534b77eb0d 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MinBucketTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MinBucketTests.java @@ -22,7 +22,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.util.HashSet; import java.util.Set; @@ -39,7 +39,7 @@ protected MinBucketPipelineAggregationBuilder doCreateTestAggregatorFactory(Stri public void testValidate() { AggregationBuilder singleBucketAgg = new GlobalAggregationBuilder("global"); - AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING); + AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); final Set aggBuilders = new HashSet<>(); aggBuilders.add(singleBucketAgg); aggBuilders.add(multiBucketAgg); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/PercentilesBucketTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/PercentilesBucketTests.java index 0b8757441cdb4..d8c3909bbd814 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/PercentilesBucketTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/PercentilesBucketTests.java @@ -24,7 +24,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.util.HashSet; import java.util.Set; @@ -66,7 +66,7 @@ public void testPercentsFromMixedArray() throws Exception { public void testValidate() { AggregationBuilder singleBucketAgg = new GlobalAggregationBuilder("global"); - AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING); + AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); final Set aggBuilders = new HashSet<>(); aggBuilders.add(singleBucketAgg); aggBuilders.add(multiBucketAgg); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/StatsBucketTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/StatsBucketTests.java index dffef51f643dd..4a30c788246c4 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/StatsBucketTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/StatsBucketTests.java @@ -22,7 +22,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.util.HashSet; import java.util.Set; @@ -40,7 +40,7 @@ protected StatsBucketPipelineAggregationBuilder doCreateTestAggregatorFactory(St public void testValidate() { AggregationBuilder singleBucketAgg = new GlobalAggregationBuilder("global"); - AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING); + AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); final Set aggBuilders = new HashSet<>(); aggBuilders.add(singleBucketAgg); aggBuilders.add(multiBucketAgg); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SumBucketTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SumBucketTests.java index fc8c1be801313..2f23cf855ce48 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SumBucketTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SumBucketTests.java @@ -22,7 +22,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import java.util.HashSet; import java.util.Set; @@ -39,7 +39,7 @@ protected SumBucketPipelineAggregationBuilder doCreateTestAggregatorFactory(Stri public void testValidate() { AggregationBuilder singleBucketAgg = new GlobalAggregationBuilder("global"); - AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING); + AggregationBuilder multiBucketAgg = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); final Set aggBuilders = new HashSet<>(); aggBuilders.add(singleBucketAgg); aggBuilders.add(multiBucketAgg); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfigTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfigTests.java index d1caaacafe077..065e8db8ca58b 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfigTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfigTests.java @@ -71,13 +71,13 @@ public void testUnmappedKeyword() throws Exception { MapperService mapperService = createMapperService(mapping(b -> {})); withAggregationContext(mapperService, List.of(source(b -> {})), context -> { ValuesSourceConfig config; - config = ValuesSourceConfig.resolve(context, ValueType.STRING, "field", null, null, null, null, CoreValuesSourceType.BYTES); + config = ValuesSourceConfig.resolve(context, CoreValuesSourceType.ValueType.STRING, "field", null, null, null, null, CoreValuesSourceType.BYTES); ValuesSource.Bytes valuesSource = (ValuesSource.Bytes) config.getValuesSource(); assertNotNull(valuesSource); assertFalse(config.hasValues()); assertFalse(config.alignesWithSearchIndex()); - config = ValuesSourceConfig.resolve(context, ValueType.STRING, "field", null, "abc", null, null, CoreValuesSourceType.BYTES); + config = ValuesSourceConfig.resolve(context, CoreValuesSourceType.ValueType.STRING, "field", null, "abc", null, null, CoreValuesSourceType.BYTES); valuesSource = (ValuesSource.Bytes) config.getValuesSource(); LeafReaderContext ctx = context.searcher().getIndexReader().leaves().get(0); SortedBinaryDocValues values = valuesSource.bytesValues(ctx); @@ -128,13 +128,13 @@ public void testUnmappedLong() throws Exception { MapperService mapperService = createMapperService(mapping(b -> {})); withAggregationContext(mapperService, List.of(source(b -> {})), context -> { ValuesSourceConfig config; - config = ValuesSourceConfig.resolve(context, ValueType.NUMBER, "field", null, null, null, null, CoreValuesSourceType.BYTES); + config = ValuesSourceConfig.resolve(context, CoreValuesSourceType.ValueType.NUMBER, "field", null, null, null, null, CoreValuesSourceType.BYTES); ValuesSource.Numeric valuesSource = (ValuesSource.Numeric) config.getValuesSource(); assertNotNull(valuesSource); assertFalse(config.hasValues()); assertFalse(config.alignesWithSearchIndex()); - config = ValuesSourceConfig.resolve(context, ValueType.NUMBER, "field", null, 42, null, null, CoreValuesSourceType.BYTES); + config = ValuesSourceConfig.resolve(context, CoreValuesSourceType.ValueType.NUMBER, "field", null, 42, null, null, CoreValuesSourceType.BYTES); valuesSource = (ValuesSource.Numeric) config.getValuesSource(); LeafReaderContext ctx = context.searcher().getIndexReader().leaves().get(0); SortedNumericDocValues values = valuesSource.longValues(ctx); @@ -185,13 +185,13 @@ public void testUnmappedBoolean() throws Exception { MapperService mapperService = createMapperService(mapping(b -> {})); withAggregationContext(mapperService, List.of(source(b -> {})), context -> { ValuesSourceConfig config; - config = ValuesSourceConfig.resolve(context, ValueType.BOOLEAN, "field", null, null, null, null, CoreValuesSourceType.BYTES); + config = ValuesSourceConfig.resolve(context, CoreValuesSourceType.ValueType.BOOLEAN, "field", null, null, null, null, CoreValuesSourceType.BYTES); ValuesSource.Numeric valuesSource = (ValuesSource.Numeric) config.getValuesSource(); assertNotNull(valuesSource); assertFalse(config.hasValues()); assertFalse(config.alignesWithSearchIndex()); - config = ValuesSourceConfig.resolve(context, ValueType.BOOLEAN, "field", null, true, null, null, CoreValuesSourceType.BYTES); + config = ValuesSourceConfig.resolve(context, CoreValuesSourceType.ValueType.BOOLEAN, "field", null, true, null, null, CoreValuesSourceType.BYTES); valuesSource = (ValuesSource.Numeric) config.getValuesSource(); LeafReaderContext ctx = context.searcher().getIndexReader().leaves().get(0); SortedNumericDocValues values = valuesSource.longValues(ctx); @@ -221,7 +221,7 @@ public void testFieldAlias() throws Exception { })); withAggregationContext(mapperService, List.of(source(b -> b.field("field", "value"))), context -> { ValuesSourceConfig config; - config = ValuesSourceConfig.resolve(context, ValueType.STRING, "alias", null, null, null, null, CoreValuesSourceType.BYTES); + config = ValuesSourceConfig.resolve(context, CoreValuesSourceType.ValueType.STRING, "alias", null, null, null, null, CoreValuesSourceType.BYTES); ValuesSource.Bytes valuesSource = (ValuesSource.Bytes) config.getValuesSource(); LeafReaderContext ctx = context.searcher().getIndexReader().leaves().get(0); diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/aggregations/support/AnalyticsValuesSourceType.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/aggregations/support/AnalyticsValuesSourceType.java index d5ac7e5dd4904..6739735ff7d2c 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/aggregations/support/AnalyticsValuesSourceType.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/aggregations/support/AnalyticsValuesSourceType.java @@ -10,11 +10,7 @@ import org.elasticsearch.script.AggregationScript; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.AggregationExecutionException; -import org.elasticsearch.search.aggregations.support.AggregationContext; -import org.elasticsearch.search.aggregations.support.FieldContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSource; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.aggregations.support.*; import java.util.Locale; @@ -27,7 +23,7 @@ public ValuesSource getEmpty() { } @Override - public ValuesSource getScript(AggregationScript.LeafFactory script, ValueType scriptValueType) { + public ValuesSource getScript(AggregationScript.LeafFactory script, CoreValuesSourceType.ValueType scriptValueType) { throw new AggregationExecutionException("value source of type [" + this.value() + "] is not supported by scripts"); } diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilder.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilder.java index cc46f7cf08957..d05e0dabb2266 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilder.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilder.java @@ -24,7 +24,6 @@ import org.elasticsearch.search.aggregations.support.MultiValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; import org.elasticsearch.search.aggregations.support.MultiValuesSourceParseHelper; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.search.aggregations.support.ValuesSourceType; @@ -44,7 +43,7 @@ public class TTestAggregationBuilder extends MultiValuesSourceAggregationBuilder ObjectParser.fromBuilder(NAME, TTestAggregationBuilder::new); static { - MultiValuesSourceParseHelper.declareCommon(PARSER, true, ValueType.NUMERIC); + MultiValuesSourceParseHelper.declareCommon(PARSER, true, CoreValuesSourceType.ValueType.NUMERIC); MultiValuesSourceParseHelper.declareField(A_FIELD.getPreferredName(), PARSER, true, false, true); MultiValuesSourceParseHelper.declareField(B_FIELD.getPreferredName(), PARSER, true, false, true); PARSER.declareString(TTestAggregationBuilder::testType, TYPE_FIELD); diff --git a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/stringstats/StringStatsAggregatorTests.java b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/stringstats/StringStatsAggregatorTests.java index cf142195dbdc3..ea55690f9de15 100644 --- a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/stringstats/StringStatsAggregatorTests.java +++ b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/stringstats/StringStatsAggregatorTests.java @@ -36,7 +36,6 @@ import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator; import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import org.elasticsearch.search.lookup.LeafDocLookup; import org.elasticsearch.xpack.analytics.AnalyticsPlugin; @@ -225,9 +224,9 @@ public void testNestedAggregation() throws IOException { textFieldType.setFielddata(true); TermsAggregationBuilder aggregationBuilder = new TermsAggregationBuilder("terms") - .userValueTypeHint(ValueType.NUMERIC) + .userValueTypeHint(CoreValuesSourceType.ValueType.NUMERIC) .field("value") - .subAggregation(new StringStatsAggregationBuilder("text_stats").field("text").userValueTypeHint(ValueType.STRING)); + .subAggregation(new StringStatsAggregationBuilder("text_stats").field("text").userValueTypeHint(CoreValuesSourceType.ValueType.STRING)); Directory directory = newDirectory(); RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory); diff --git a/x-pack/plugin/mapper-aggregate-metric/src/main/java/org/elasticsearch/xpack/aggregatemetric/aggregations/support/AggregateMetricsValuesSourceType.java b/x-pack/plugin/mapper-aggregate-metric/src/main/java/org/elasticsearch/xpack/aggregatemetric/aggregations/support/AggregateMetricsValuesSourceType.java index 346dbb3b6f6df..341b6ad8babfe 100644 --- a/x-pack/plugin/mapper-aggregate-metric/src/main/java/org/elasticsearch/xpack/aggregatemetric/aggregations/support/AggregateMetricsValuesSourceType.java +++ b/x-pack/plugin/mapper-aggregate-metric/src/main/java/org/elasticsearch/xpack/aggregatemetric/aggregations/support/AggregateMetricsValuesSourceType.java @@ -9,11 +9,7 @@ import org.elasticsearch.script.AggregationScript; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.AggregationExecutionException; -import org.elasticsearch.search.aggregations.support.AggregationContext; -import org.elasticsearch.search.aggregations.support.FieldContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSource; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.aggregations.support.*; import org.elasticsearch.xpack.aggregatemetric.fielddata.IndexAggregateDoubleMetricFieldData; import java.util.Locale; @@ -27,7 +23,7 @@ public ValuesSource getEmpty() { } @Override - public ValuesSource getScript(AggregationScript.LeafFactory script, ValueType scriptValueType) { + public ValuesSource getScript(AggregationScript.LeafFactory script, CoreValuesSourceType.ValueType scriptValueType) { throw new AggregationExecutionException("Value source of type [" + this.value() + "] is not supported by scripts"); } diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupJobIdentifierUtilTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupJobIdentifierUtilTests.java index 205c25ed60ce6..0c9836db7102b 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupJobIdentifierUtilTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupJobIdentifierUtilTests.java @@ -13,7 +13,7 @@ import org.elasticsearch.search.aggregations.metrics.MaxAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.MinAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.SumAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xpack.core.rollup.RollupField; import org.elasticsearch.xpack.core.rollup.action.RollupJobCaps; @@ -308,7 +308,7 @@ public void testComparableNoTermsVsTerms() { DateHistogramAggregationBuilder builder = new DateHistogramAggregationBuilder("foo").field("foo") .calendarInterval(new DateHistogramInterval("1h")) - .subAggregation(new TermsAggregationBuilder("histo").userValueTypeHint(ValueType.STRING).field("bar")); + .subAggregation(new TermsAggregationBuilder("histo").userValueTypeHint(CoreValuesSourceType.ValueType.STRING).field("bar")); Set caps = new HashSet<>(2); caps.add(cap); diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java index d12605c27f3a6..c8794f234b8de 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java @@ -22,7 +22,7 @@ import org.elasticsearch.search.aggregations.metrics.MinAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.StatsAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.SumAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.test.ESTestCase; import org.hamcrest.Matchers; @@ -302,7 +302,7 @@ public void testAvgMetric() { public void testStringTerms() throws IOException { - TermsAggregationBuilder terms = new TermsAggregationBuilder("test_string_terms").userValueTypeHint(ValueType.STRING); + TermsAggregationBuilder terms = new TermsAggregationBuilder("test_string_terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING); terms.field("foo") .subAggregation(new MaxAggregationBuilder("the_max").field("max_field")) .subAggregation(new AvgAggregationBuilder("the_avg").field("avg_field")); diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupResponseTranslationTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupResponseTranslationTests.java index 9387cac83912f..7574bce78f852 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupResponseTranslationTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupResponseTranslationTests.java @@ -66,7 +66,7 @@ import org.elasticsearch.search.aggregations.metrics.MinAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.SumAggregationBuilder; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.internal.InternalSearchResponse; import org.elasticsearch.xpack.core.rollup.RollupField; @@ -926,10 +926,10 @@ public void testMetric() throws IOException { public void testUnsupportedMetric() throws IOException { - AggregationBuilder nonRollup = new CardinalityAggregationBuilder("test_metric").userValueTypeHint(ValueType.LONG) + AggregationBuilder nonRollup = new CardinalityAggregationBuilder("test_metric").userValueTypeHint(CoreValuesSourceType.ValueType.LONG) .field("foo"); String fieldName = "foo.max." + RollupField.VALUE; - AggregationBuilder rollup = new CardinalityAggregationBuilder("test_metric").userValueTypeHint(ValueType.LONG) + AggregationBuilder rollup = new CardinalityAggregationBuilder("test_metric").userValueTypeHint(CoreValuesSourceType.ValueType.LONG) .field(fieldName); MappedFieldType nrFTvalue = new NumberFieldMapper.NumberFieldType("foo", NumberFieldMapper.NumberType.LONG); @@ -954,10 +954,10 @@ public void testUnsupportedMetric() throws IOException { } public void testStringTerms() throws IOException { - TermsAggregationBuilder nonRollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder nonRollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("stringField"); - TermsAggregationBuilder rollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder rollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("stringfield.terms." + RollupField.VALUE) .subAggregation(new SumAggregationBuilder("terms." + RollupField.COUNT_FIELD) .field("stringfield.terms." + RollupField.COUNT_FIELD)); @@ -986,10 +986,10 @@ public void testStringTerms() throws IOException { } public void testStringTermsNullValue() throws IOException { - TermsAggregationBuilder nonRollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder nonRollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("stringField"); - TermsAggregationBuilder rollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.STRING) + TermsAggregationBuilder rollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.STRING) .field("stringfield.terms." + RollupField.VALUE) .subAggregation(new SumAggregationBuilder("terms." + RollupField.COUNT_FIELD) .field("stringfield.terms." + RollupField.COUNT_FIELD)); @@ -1024,10 +1024,10 @@ public void testStringTermsNullValue() throws IOException { } public void testLongTerms() throws IOException { - TermsAggregationBuilder nonRollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.LONG) + TermsAggregationBuilder nonRollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.LONG) .field("longField"); - TermsAggregationBuilder rollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(ValueType.LONG) + TermsAggregationBuilder rollupTerms = new TermsAggregationBuilder("terms").userValueTypeHint(CoreValuesSourceType.ValueType.LONG) .field("longfield.terms." + RollupField.VALUE) .subAggregation(new SumAggregationBuilder("terms." + RollupField.COUNT_FIELD) .field("longfield.terms." + RollupField.COUNT_FIELD)); diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/GeoLineAggregationBuilder.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/GeoLineAggregationBuilder.java index 30e87ea5f6b05..5e8fe21083230 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/GeoLineAggregationBuilder.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/GeoLineAggregationBuilder.java @@ -22,7 +22,6 @@ import org.elasticsearch.search.aggregations.support.MultiValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; import org.elasticsearch.search.aggregations.support.MultiValuesSourceParseHelper; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.search.aggregations.support.ValuesSourceType; @@ -46,7 +45,7 @@ public class GeoLineAggregationBuilder public static final ObjectParser PARSER = ObjectParser.fromBuilder(NAME, GeoLineAggregationBuilder::new); static { - MultiValuesSourceParseHelper.declareCommon(PARSER, true, ValueType.NUMERIC); + MultiValuesSourceParseHelper.declareCommon(PARSER, true, CoreValuesSourceType.ValueType.NUMERIC); MultiValuesSourceParseHelper.declareField(POINT_FIELD.getPreferredName(), PARSER, true, false, false); MultiValuesSourceParseHelper.declareField(SORT_FIELD.getPreferredName(), PARSER, true, false, false); PARSER.declareString((builder, order) -> builder.sortOrder(SortOrder.fromString(order)), ORDER_FIELD); diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java index cacb06ff14e80..8472981423f8d 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java @@ -14,12 +14,7 @@ import org.elasticsearch.index.fielddata.SortedBinaryDocValues; import org.elasticsearch.script.AggregationScript; import org.elasticsearch.search.DocValueFormat; -import org.elasticsearch.search.aggregations.support.AggregationContext; -import org.elasticsearch.search.aggregations.support.FieldContext; -import org.elasticsearch.search.aggregations.support.MissingValues; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSource; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.aggregations.support.*; import org.elasticsearch.xpack.spatial.index.fielddata.IndexGeoShapeFieldData; import org.elasticsearch.xpack.spatial.index.fielddata.GeoShapeValues; @@ -39,7 +34,7 @@ public ValuesSource getEmpty() { } @Override - public ValuesSource getScript(AggregationScript.LeafFactory script, ValueType scriptValueType) { + public ValuesSource getScript(AggregationScript.LeafFactory script, CoreValuesSourceType.ValueType scriptValueType) { // TODO (support scripts) throw new UnsupportedOperationException("geo_shape"); } diff --git a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/querydsl/agg/GroupByKey.java b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/querydsl/agg/GroupByKey.java index 09be0407dd1a4..7f3d940f57a7d 100644 --- a/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/querydsl/agg/GroupByKey.java +++ b/x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/querydsl/agg/GroupByKey.java @@ -6,7 +6,7 @@ package org.elasticsearch.xpack.sql.querydsl.agg; import org.elasticsearch.search.aggregations.bucket.composite.CompositeValuesSourceBuilder; -import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.xpack.ql.expression.gen.script.ScriptTemplate; import org.elasticsearch.xpack.ql.querydsl.container.Sort.Direction; import org.elasticsearch.xpack.ql.type.DataTypes; @@ -42,21 +42,21 @@ public final CompositeValuesSourceBuilder asValueSource() { if (script != null) { builder.script(script.toPainless()); if (script.outputType().isInteger()) { - builder.userValuetypeHint(ValueType.LONG); + builder.userValuetypeHint(CoreValuesSourceType.ValueType.LONG); } else if (script.outputType().isRational()) { - builder.userValuetypeHint(ValueType.DOUBLE); + builder.userValuetypeHint(CoreValuesSourceType.ValueType.DOUBLE); } else if (DataTypes.isString(script.outputType())) { - builder.userValuetypeHint(ValueType.STRING); + builder.userValuetypeHint(CoreValuesSourceType.ValueType.STRING); } else if (script.outputType() == DATE) { - builder.userValuetypeHint(ValueType.LONG); + builder.userValuetypeHint(CoreValuesSourceType.ValueType.DATE); } else if (script.outputType() == TIME) { - builder.userValuetypeHint(ValueType.LONG); + builder.userValuetypeHint(CoreValuesSourceType.ValueType.LONG); } else if (script.outputType() == DATETIME) { - builder.userValuetypeHint(ValueType.LONG); + builder.userValuetypeHint(CoreValuesSourceType.ValueType.LONG); } else if (script.outputType() == BOOLEAN) { - builder.userValuetypeHint(ValueType.BOOLEAN); + builder.userValuetypeHint(CoreValuesSourceType.ValueType.BOOLEAN); } else if (script.outputType() == IP) { - builder.userValuetypeHint(ValueType.IP); + builder.userValuetypeHint(CoreValuesSourceType.ValueType.IP); } } // field based