diff --git a/server/src/main/java/org/elasticsearch/search/SearchService.java b/server/src/main/java/org/elasticsearch/search/SearchService.java index a61267c81df71..e3c78e13c9f8f 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchService.java +++ b/server/src/main/java/org/elasticsearch/search/SearchService.java @@ -1451,7 +1451,8 @@ public SearchContext createSearchContext(ShardSearchRequest request, TimeValue t final Engine.SearcherSupplier reader = indexShard.acquireSearcherSupplier(); final ShardSearchContextId id = new ShardSearchContextId(sessionId, idGenerator.incrementAndGet(), reader.getSearcherId()); try (ReaderContext readerContext = new ReaderContext(id, indexService, indexShard, reader, -1L, true)) { - DefaultSearchContext searchContext = createSearchContext(readerContext, request, timeout, ResultsType.NONE); + // Use ResultsType.QUERY so that the created search context can execute queries correctly. + DefaultSearchContext searchContext = createSearchContext(readerContext, request, timeout, ResultsType.QUERY); searchContext.addReleasable(readerContext.markAsUsed(0L)); return searchContext; } diff --git a/server/src/test/java/org/elasticsearch/search/SearchServiceSingleNodeTests.java b/server/src/test/java/org/elasticsearch/search/SearchServiceSingleNodeTests.java index fb964ed1c0387..433ca3833e7ce 100644 --- a/server/src/test/java/org/elasticsearch/search/SearchServiceSingleNodeTests.java +++ b/server/src/test/java/org/elasticsearch/search/SearchServiceSingleNodeTests.java @@ -2001,6 +2001,7 @@ public void testCreateSearchContext() throws IOException { clusterAlias ); try (SearchContext searchContext = service.createSearchContext(request, new TimeValue(System.currentTimeMillis()))) { + assertTrue(searchContext.searcher().hasExecutor()); SearchShardTarget searchShardTarget = searchContext.shardTarget(); SearchExecutionContext searchExecutionContext = searchContext.getSearchExecutionContext(); String expectedIndexName = clusterAlias == null ? index : clusterAlias + ":" + index;