Skip to content

Commit

Permalink
Remove explicit SearchResponse references from server bucket aggs (pa…
Browse files Browse the repository at this point in the history
…rt1) (#102035)
  • Loading branch information
iverase authored Nov 11, 2023
1 parent 5f08929 commit 697dac2
Show file tree
Hide file tree
Showing 6 changed files with 2,346 additions and 2,203 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,13 @@
package org.elasticsearch.search.aggregations.bucket;

import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode;
import org.elasticsearch.search.aggregations.bucket.terms.LongTerms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.aggregations.bucket.terms.UnmappedTerms;
import org.elasticsearch.test.ESIntegTestCase;

import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailuresAndResponse;
import static org.elasticsearch.xcontent.XContentFactory.jsonBuilder;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
Expand Down Expand Up @@ -73,81 +72,84 @@ public void setupSuiteScopeCluster() throws Exception {
}

public void testSingleValueField() throws Exception {
SearchResponse response = prepareSearch("idx").addAggregation(
new TermsAggregationBuilder("terms").field(SINGLE_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values()))
).get();

assertNoFailures(response);

LongTerms terms = response.getAggregations().get("terms");
assertThat(terms, notNullValue());
assertThat(terms.getName(), equalTo("terms"));
final int bucketCount = numSingleFalses > 0 && numSingleTrues > 0 ? 2 : numSingleFalses + numSingleTrues > 0 ? 1 : 0;
assertThat(terms.getBuckets().size(), equalTo(bucketCount));

LongTerms.Bucket bucket = terms.getBucketByKey("false");
if (numSingleFalses == 0) {
assertNull(bucket);
} else {
assertNotNull(bucket);
assertEquals(numSingleFalses, bucket.getDocCount());
assertEquals("false", bucket.getKeyAsString());
}
assertNoFailuresAndResponse(
prepareSearch("idx").addAggregation(
new TermsAggregationBuilder("terms").field(SINGLE_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values()))
),
response -> {
LongTerms terms = response.getAggregations().get("terms");
assertThat(terms, notNullValue());
assertThat(terms.getName(), equalTo("terms"));
final int bucketCount = numSingleFalses > 0 && numSingleTrues > 0 ? 2 : numSingleFalses + numSingleTrues > 0 ? 1 : 0;
assertThat(terms.getBuckets().size(), equalTo(bucketCount));

LongTerms.Bucket bucket = terms.getBucketByKey("false");
if (numSingleFalses == 0) {
assertNull(bucket);
} else {
assertNotNull(bucket);
assertEquals(numSingleFalses, bucket.getDocCount());
assertEquals("false", bucket.getKeyAsString());
}

bucket = terms.getBucketByKey("true");
if (numSingleTrues == 0) {
assertNull(bucket);
} else {
assertNotNull(bucket);
assertEquals(numSingleTrues, bucket.getDocCount());
assertEquals("true", bucket.getKeyAsString());
}
bucket = terms.getBucketByKey("true");
if (numSingleTrues == 0) {
assertNull(bucket);
} else {
assertNotNull(bucket);
assertEquals(numSingleTrues, bucket.getDocCount());
assertEquals("true", bucket.getKeyAsString());
}
}
);
}

public void testMultiValueField() throws Exception {
SearchResponse response = prepareSearch("idx").addAggregation(
new TermsAggregationBuilder("terms").field(MULTI_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values()))
).get();

assertNoFailures(response);

LongTerms terms = response.getAggregations().get("terms");
assertThat(terms, notNullValue());
assertThat(terms.getName(), equalTo("terms"));
final int bucketCount = numMultiFalses > 0 && numMultiTrues > 0 ? 2 : numMultiFalses + numMultiTrues > 0 ? 1 : 0;
assertThat(terms.getBuckets(), hasSize(bucketCount));

LongTerms.Bucket bucket = terms.getBucketByKey("false");
if (numMultiFalses == 0) {
assertNull(bucket);
} else {
assertNotNull(bucket);
assertEquals(numMultiFalses, bucket.getDocCount());
assertEquals("false", bucket.getKeyAsString());
}
assertNoFailuresAndResponse(
prepareSearch("idx").addAggregation(
new TermsAggregationBuilder("terms").field(MULTI_VALUED_FIELD_NAME).collectMode(randomFrom(SubAggCollectionMode.values()))
),
response -> {
LongTerms terms = response.getAggregations().get("terms");
assertThat(terms, notNullValue());
assertThat(terms.getName(), equalTo("terms"));
final int bucketCount = numMultiFalses > 0 && numMultiTrues > 0 ? 2 : numMultiFalses + numMultiTrues > 0 ? 1 : 0;
assertThat(terms.getBuckets(), hasSize(bucketCount));

LongTerms.Bucket bucket = terms.getBucketByKey("false");
if (numMultiFalses == 0) {
assertNull(bucket);
} else {
assertNotNull(bucket);
assertEquals(numMultiFalses, bucket.getDocCount());
assertEquals("false", bucket.getKeyAsString());
}

bucket = terms.getBucketByKey("true");
if (numMultiTrues == 0) {
assertNull(bucket);
} else {
assertNotNull(bucket);
assertEquals(numMultiTrues, bucket.getDocCount());
assertEquals("true", bucket.getKeyAsString());
}
bucket = terms.getBucketByKey("true");
if (numMultiTrues == 0) {
assertNull(bucket);
} else {
assertNotNull(bucket);
assertEquals(numMultiTrues, bucket.getDocCount());
assertEquals("true", bucket.getKeyAsString());
}
}
);
}

public void testUnmapped() throws Exception {
SearchResponse response = prepareSearch("idx_unmapped").addAggregation(
new TermsAggregationBuilder("terms").field(SINGLE_VALUED_FIELD_NAME)
.size(between(1, 5))
.collectMode(randomFrom(SubAggCollectionMode.values()))
).get();

assertNoFailures(response);

UnmappedTerms terms = response.getAggregations().get("terms");
assertThat(terms, notNullValue());
assertThat(terms.getName(), equalTo("terms"));
assertThat(terms.getBuckets().size(), equalTo(0));
assertNoFailuresAndResponse(
prepareSearch("idx_unmapped").addAggregation(
new TermsAggregationBuilder("terms").field(SINGLE_VALUED_FIELD_NAME)
.size(between(1, 5))
.collectMode(randomFrom(SubAggCollectionMode.values()))
),
response -> {
UnmappedTerms terms = response.getAggregations().get("terms");
assertThat(terms, notNullValue());
assertThat(terms.getName(), equalTo("terms"));
assertThat(terms.getBuckets().size(), equalTo(0));
}
);
}
}
Loading

0 comments on commit 697dac2

Please sign in to comment.