Skip to content

Commit 301adfd

Browse files
committed
Fix a test bug around nested aggregations and field aliases. (elastic#32287)
This issue affected both NestedAggregatorTest and ReverseNestedAggregatorTest.
1 parent 142be2e commit 301adfd

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,7 @@ public void testPreGetChildLeafCollectors() throws IOException {
659659

660660
public void testFieldAlias() throws IOException {
661661
int numRootDocs = randomIntBetween(1, 20);
662+
int expectedNestedDocs = 0;
662663

663664
MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(
664665
NumberFieldMapper.NumberType.LONG);
@@ -669,6 +670,7 @@ public void testFieldAlias() throws IOException {
669670
for (int i = 0; i < numRootDocs; i++) {
670671
List<Document> documents = new ArrayList<>();
671672
int numNestedDocs = randomIntBetween(0, 20);
673+
expectedNestedDocs += numNestedDocs;
672674
generateDocuments(documents, numNestedDocs, i, NESTED_OBJECT, VALUE_FIELD_NAME);
673675

674676
Document document = new Document();
@@ -685,7 +687,6 @@ public void testFieldAlias() throws IOException {
685687
try (IndexReader indexReader = wrap(DirectoryReader.open(directory))) {
686688
NestedAggregationBuilder agg = nested(NESTED_AGG, NESTED_OBJECT).subAggregation(
687689
max(MAX_AGG_NAME).field(VALUE_FIELD_NAME));
688-
689690
NestedAggregationBuilder aliasAgg = nested(NESTED_AGG, NESTED_OBJECT).subAggregation(
690691
max(MAX_AGG_NAME).field(VALUE_FIELD_NAME + "-alias"));
691692

@@ -694,8 +695,8 @@ public void testFieldAlias() throws IOException {
694695
Nested aliasNested = search(newSearcher(indexReader, false, true),
695696
new MatchAllDocsQuery(), aliasAgg, fieldType);
696697

697-
assertTrue(nested.getDocCount() > 0);
698698
assertEquals(nested, aliasNested);
699+
assertEquals(expectedNestedDocs, nested.getDocCount());
699700
}
700701
}
701702
}

server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregatorTests.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ public void testMaxFromParentDocs() throws IOException {
170170

171171
public void testFieldAlias() throws IOException {
172172
int numParentDocs = randomIntBetween(1, 20);
173+
int expectedParentDocs = 0;
173174

174175
MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(
175176
NumberFieldMapper.NumberType.LONG);
@@ -180,6 +181,10 @@ public void testFieldAlias() throws IOException {
180181
for (int i = 0; i < numParentDocs; i++) {
181182
List<Document> documents = new ArrayList<>();
182183
int numNestedDocs = randomIntBetween(0, 20);
184+
if (numNestedDocs > 0) {
185+
expectedParentDocs++;
186+
}
187+
183188
for (int nested = 0; nested < numNestedDocs; nested++) {
184189
Document document = new Document();
185190
document.add(new Field(IdFieldMapper.NAME, Uid.encodeId(Integer.toString(i)),
@@ -204,7 +209,6 @@ public void testFieldAlias() throws IOException {
204209
}
205210

206211
try (IndexReader indexReader = wrap(DirectoryReader.open(directory))) {
207-
208212
MaxAggregationBuilder maxAgg = max(MAX_AGG_NAME).field(VALUE_FIELD_NAME);
209213
MaxAggregationBuilder aliasMaxAgg = max(MAX_AGG_NAME).field(VALUE_FIELD_NAME + "-alias");
210214

@@ -221,8 +225,8 @@ public void testFieldAlias() throws IOException {
221225
ReverseNested reverseNested = nested.getAggregations().get(REVERSE_AGG_NAME);
222226
ReverseNested aliasReverseNested = aliasNested.getAggregations().get(REVERSE_AGG_NAME);
223227

224-
assertTrue(reverseNested.getDocCount() > 0);
225228
assertEquals(reverseNested, aliasReverseNested);
229+
assertEquals(expectedParentDocs, reverseNested.getDocCount());
226230
}
227231
}
228232
}

0 commit comments

Comments
 (0)