From 1b1aa4ecff2a7d4ac4a37be77226a444259aec95 Mon Sep 17 00:00:00 2001 From: Julie Tibshirani Date: Mon, 23 Jul 2018 12:25:42 -0700 Subject: [PATCH] Fix a test bug around nested aggregations and field aliases. (#32287) This issue affected both NestedAggregatorTest and ReverseNestedAggregatorTest. --- .../aggregations/bucket/nested/NestedAggregatorTests.java | 5 +++-- .../bucket/nested/ReverseNestedAggregatorTests.java | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) 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 c893e59596484..e1206cb8d1552 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 @@ -655,6 +655,7 @@ public void testPreGetChildLeafCollectors() throws IOException { public void testFieldAlias() throws IOException { int numRootDocs = randomIntBetween(1, 20); + int expectedNestedDocs = 0; MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType( NumberFieldMapper.NumberType.LONG); @@ -665,6 +666,7 @@ public void testFieldAlias() throws IOException { for (int i = 0; i < numRootDocs; i++) { List documents = new ArrayList<>(); int numNestedDocs = randomIntBetween(0, 20); + expectedNestedDocs += numNestedDocs; generateDocuments(documents, numNestedDocs, i, NESTED_OBJECT, VALUE_FIELD_NAME); Document document = new Document(); @@ -681,7 +683,6 @@ public void testFieldAlias() throws IOException { try (IndexReader indexReader = wrap(DirectoryReader.open(directory))) { NestedAggregationBuilder agg = nested(NESTED_AGG, NESTED_OBJECT).subAggregation( max(MAX_AGG_NAME).field(VALUE_FIELD_NAME)); - NestedAggregationBuilder aliasAgg = nested(NESTED_AGG, NESTED_OBJECT).subAggregation( max(MAX_AGG_NAME).field(VALUE_FIELD_NAME + "-alias")); @@ -690,8 +691,8 @@ public void testFieldAlias() throws IOException { Nested aliasNested = search(newSearcher(indexReader, false, true), new MatchAllDocsQuery(), aliasAgg, fieldType); - assertTrue(nested.getDocCount() > 0); assertEquals(nested, aliasNested); + assertEquals(expectedNestedDocs, nested.getDocCount()); } } } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregatorTests.java index 99322af2264ac..fd831e5076caa 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregatorTests.java @@ -169,6 +169,7 @@ public void testMaxFromParentDocs() throws IOException { public void testFieldAlias() throws IOException { int numParentDocs = randomIntBetween(1, 20); + int expectedParentDocs = 0; MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType( NumberFieldMapper.NumberType.LONG); @@ -179,6 +180,10 @@ public void testFieldAlias() throws IOException { for (int i = 0; i < numParentDocs; i++) { List documents = new ArrayList<>(); int numNestedDocs = randomIntBetween(0, 20); + if (numNestedDocs > 0) { + expectedParentDocs++; + } + for (int nested = 0; nested < numNestedDocs; nested++) { Document document = new Document(); document.add(new Field(IdFieldMapper.NAME, Uid.encodeId(Integer.toString(i)), @@ -203,7 +208,6 @@ public void testFieldAlias() throws IOException { } try (IndexReader indexReader = wrap(DirectoryReader.open(directory))) { - MaxAggregationBuilder maxAgg = max(MAX_AGG_NAME).field(VALUE_FIELD_NAME); MaxAggregationBuilder aliasMaxAgg = max(MAX_AGG_NAME).field(VALUE_FIELD_NAME + "-alias"); @@ -220,8 +224,8 @@ public void testFieldAlias() throws IOException { ReverseNested reverseNested = nested.getAggregations().get(REVERSE_AGG_NAME); ReverseNested aliasReverseNested = aliasNested.getAggregations().get(REVERSE_AGG_NAME); - assertTrue(reverseNested.getDocCount() > 0); assertEquals(reverseNested, aliasReverseNested); + assertEquals(expectedParentDocs, reverseNested.getDocCount()); } } }