|
87 | 87 | import java.util.function.Function;
|
88 | 88 | import java.util.function.Supplier;
|
89 | 89 |
|
| 90 | +import static java.util.Collections.emptyList; |
90 | 91 | import static java.util.Collections.singleton;
|
91 | 92 | import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
92 | 93 | import static org.hamcrest.Matchers.equalTo;
|
@@ -232,6 +233,22 @@ public void testUnmappedWithMissingField() throws IOException {
|
232 | 233 | }, null);
|
233 | 234 | }
|
234 | 235 |
|
| 236 | + public void testMissingFieldOptimization() throws IOException { |
| 237 | + MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(NumberFieldMapper.NumberType.INTEGER); |
| 238 | + fieldType.setName("number"); |
| 239 | + |
| 240 | + MaxAggregationBuilder aggregationBuilder = new MaxAggregationBuilder("_name").field("number").missing(19L); |
| 241 | + |
| 242 | + testCase(aggregationBuilder, new MatchAllDocsQuery(), iw -> { |
| 243 | + iw.addDocument(Arrays.asList(new IntPoint("number", 7), new SortedNumericDocValuesField("number", 7))); |
| 244 | + iw.addDocument(Arrays.asList(new IntPoint("number", 1), new SortedNumericDocValuesField("number", 1))); |
| 245 | + iw.addDocument(emptyList()); |
| 246 | + }, max -> { |
| 247 | + assertEquals(max.getValue(), 19.0, 0); |
| 248 | + assertTrue(AggregationInspectionHelper.hasValue(max)); |
| 249 | + }, fieldType); |
| 250 | + } |
| 251 | + |
235 | 252 | public void testScript() throws IOException {
|
236 | 253 | MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(NumberFieldMapper.NumberType.INTEGER);
|
237 | 254 | fieldType.setName("number");
|
|
0 commit comments