diff --git a/server/src/main/java/org/elasticsearch/action/search/SearchQueryThenFetchAsyncAction.java b/server/src/main/java/org/elasticsearch/action/search/SearchQueryThenFetchAsyncAction.java index e42d8405da5..e8e864ddd1b 100644 --- a/server/src/main/java/org/elasticsearch/action/search/SearchQueryThenFetchAsyncAction.java +++ b/server/src/main/java/org/elasticsearch/action/search/SearchQueryThenFetchAsyncAction.java @@ -88,7 +88,10 @@ class SearchQueryThenFetchAsyncAction extends AbstractSearchAsyncAction new InternalAggregation.ReduceContextBuilder() { @Override @@ -143,12 +156,22 @@ public class SearchQueryThenFetchAsyncActionTests extends ESTestCase { action.start(); latch.await(); assertThat(successfulOps.get(), equalTo(numShards)); - assertTrue(canReturnNullResponse.get()); - assertThat(numWithTopDocs.get(), greaterThanOrEqualTo(1)); + if (withScroll) { + assertFalse(canReturnNullResponse.get()); + assertThat(numWithTopDocs.get(), equalTo(0)); + } else { + assertTrue(canReturnNullResponse.get()); + assertThat(numWithTopDocs.get(), greaterThanOrEqualTo(1)); + } SearchPhaseController.ReducedQueryPhase phase = action.results.reduce(); assertThat(phase.numReducePhases, greaterThanOrEqualTo(1)); - assertThat(phase.totalHits.value, equalTo(2L)); - assertThat(phase.totalHits.relation, equalTo(TotalHits.Relation.GREATER_THAN_OR_EQUAL_TO)); + if (withScroll) { + assertThat(phase.totalHits.value, equalTo((long) numShards)); + assertThat(phase.totalHits.relation, equalTo(TotalHits.Relation.EQUAL_TO)); + } else { + assertThat(phase.totalHits.value, equalTo(2L)); + assertThat(phase.totalHits.relation, equalTo(TotalHits.Relation.GREATER_THAN_OR_EQUAL_TO)); + } assertThat(phase.sortedTopDocs.scoreDocs.length, equalTo(1)); assertThat(phase.sortedTopDocs.scoreDocs[0], instanceOf(FieldDoc.class)); assertThat(((FieldDoc) phase.sortedTopDocs.scoreDocs[0]).fields.length, equalTo(1));