|
27 | 27 | import org.apache.lucene.document.LongPoint; |
28 | 28 | import org.apache.lucene.document.NumericDocValuesField; |
29 | 29 | import org.apache.lucene.document.SortedNumericDocValuesField; |
30 | | -import org.apache.lucene.document.SortedSetDocValuesField; |
31 | 30 | import org.apache.lucene.document.StringField; |
32 | 31 | import org.apache.lucene.index.DirectoryReader; |
33 | 32 | import org.apache.lucene.index.IndexOptions; |
|
45 | 44 | import org.apache.lucene.search.Query; |
46 | 45 | import org.apache.lucene.search.TermQuery; |
47 | 46 | import org.apache.lucene.store.Directory; |
48 | | -import org.apache.lucene.util.BytesRef; |
49 | 47 | import org.elasticsearch.Version; |
50 | 48 | import org.elasticsearch.cluster.metadata.IndexMetaData; |
51 | 49 | import org.elasticsearch.common.CheckedConsumer; |
|
55 | 53 | import org.elasticsearch.index.IndexSettings; |
56 | 54 | import org.elasticsearch.index.mapper.ContentPath; |
57 | 55 | import org.elasticsearch.index.mapper.DateFieldMapper; |
58 | | -import org.elasticsearch.index.mapper.KeywordFieldMapper; |
59 | 56 | import org.elasticsearch.index.mapper.MappedFieldType; |
60 | 57 | import org.elasticsearch.index.mapper.Mapper; |
61 | 58 | import org.elasticsearch.index.mapper.MapperService; |
|
84 | 81 | import org.elasticsearch.search.aggregations.bucket.terms.Terms; |
85 | 82 | import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; |
86 | 83 | import org.elasticsearch.search.aggregations.support.AggregationInspectionHelper; |
| 84 | +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; |
87 | 85 | import org.elasticsearch.search.aggregations.support.FieldContext; |
88 | 86 | import org.elasticsearch.search.aggregations.support.ValueType; |
89 | 87 | import org.elasticsearch.search.aggregations.support.ValuesSource; |
90 | 88 | import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; |
| 89 | +import org.elasticsearch.search.aggregations.support.ValuesSourceType; |
91 | 90 | import org.elasticsearch.search.internal.SearchContext; |
92 | 91 | import org.elasticsearch.search.lookup.LeafDocLookup; |
93 | 92 |
|
@@ -278,22 +277,6 @@ public void testUnmappedWithMissingField() throws IOException { |
278 | 277 | }, fieldType); |
279 | 278 | } |
280 | 279 |
|
281 | | - public void testUnsupportedType() { |
282 | | - MinAggregationBuilder aggregationBuilder = new MinAggregationBuilder("min").field("not_a_number"); |
283 | | - |
284 | | - MappedFieldType fieldType = new KeywordFieldMapper.KeywordFieldType(); |
285 | | - fieldType.setName("not_a_number"); |
286 | | - fieldType.setHasDocValues(true); |
287 | | - |
288 | | - IllegalArgumentException e = expectThrows(IllegalArgumentException.class, |
289 | | - () -> testCase(aggregationBuilder, new MatchAllDocsQuery(), iw -> { |
290 | | - iw.addDocument(singleton(new SortedSetDocValuesField("string", new BytesRef("foo")))); |
291 | | - }, (Consumer<InternalMin>) min -> { |
292 | | - fail("Should have thrown exception"); |
293 | | - }, fieldType)); |
294 | | - assertEquals(e.getMessage(), "Expected numeric type on field [not_a_number], but got [keyword]"); |
295 | | - } |
296 | | - |
297 | 280 | public void testBadMissingField() { |
298 | 281 | MinAggregationBuilder aggregationBuilder = new MinAggregationBuilder("min").field("number").missing("not_a_number"); |
299 | 282 |
|
@@ -936,5 +919,13 @@ private <T extends AggregationBuilder, V extends InternalAggregation> void testC |
936 | 919 | } |
937 | 920 | } |
938 | 921 |
|
| 922 | + @Override |
| 923 | + protected List<ValuesSourceType> getSupportedValuesSourceTypes() { |
| 924 | + return Collections.singletonList(CoreValuesSourceType.NUMERIC); |
| 925 | + } |
939 | 926 |
|
| 927 | + @Override |
| 928 | + protected AggregationBuilder createAggBuilderForTypeTest(MappedFieldType fieldType, String fieldName) { |
| 929 | + return new MinAggregationBuilder("foo").field(fieldName); |
| 930 | + } |
940 | 931 | } |
0 commit comments