|
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