Package org.elasticsearch.action.search
Class SearchPhaseController
- java.lang.Object
-
- org.elasticsearch.action.search.SearchPhaseController
-
public final class SearchPhaseController extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SearchPhaseController.ReducedQueryPhase
-
Constructor Summary
Constructors Constructor Description SearchPhaseController(java.util.function.Function<java.lang.Boolean,InternalAggregation.ReduceContext> reduceContextFunction)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AggregatedDfs
aggregateDfs(java.util.Collection<DfsSearchResult> results)
com.carrotsearch.hppc.IntArrayList[]
fillDocIdsToLoad(int numShards, org.apache.lucene.search.ScoreDoc[] shardDocs)
Builds an array, with potential null elements, with docs to load.org.apache.lucene.search.ScoreDoc[]
getLastEmittedDocPerShard(SearchPhaseController.ReducedQueryPhase reducedQueryPhase, int numShards)
InternalSearchResponse
merge(boolean ignoreFrom, SearchPhaseController.ReducedQueryPhase reducedQueryPhase, java.util.Collection<? extends SearchPhaseResult> fetchResults, java.util.function.IntFunction<SearchPhaseResult> resultsLookup)
Enriches search hits and completion suggestion hits fromsortedDocs
usingfetchResultsArr
, merges suggestions, aggregations and profile results Expects sortedDocs to have top search docs across all shards, optionally followed by top suggest docs for each named completion suggestion ordered by suggestion nameSearchPhaseController.ReducedQueryPhase
reducedQueryPhase(java.util.Collection<? extends SearchPhaseResult> queryResults, boolean isScrollRequest)
Reduces the given query results and consumes all aggregations and profile results.SearchPhaseController.ReducedQueryPhase
reducedQueryPhase(java.util.Collection<? extends SearchPhaseResult> queryResults, boolean isScrollRequest, boolean trackTotalHits)
Reduces the given query results and consumes all aggregations and profile results.org.elasticsearch.action.search.SearchPhaseController.SortedTopDocs
sortDocs(boolean ignoreFrom, java.util.Collection<? extends SearchPhaseResult> results, java.util.Collection<org.apache.lucene.search.TopDocs> bufferedTopDocs, org.elasticsearch.action.search.SearchPhaseController.TopDocsStats topDocsStats, int from, int size)
Returns a score doc array of top N search docs across all shards, followed by top suggest docs for each named completion suggestion across all shards.
-
-
-
Constructor Detail
-
SearchPhaseController
public SearchPhaseController(java.util.function.Function<java.lang.Boolean,InternalAggregation.ReduceContext> reduceContextFunction)
Constructor.- Parameters:
reduceContextFunction
- A function that builds a context for the reduce of anInternalAggregation
-
-
Method Detail
-
aggregateDfs
public AggregatedDfs aggregateDfs(java.util.Collection<DfsSearchResult> results)
-
sortDocs
public org.elasticsearch.action.search.SearchPhaseController.SortedTopDocs sortDocs(boolean ignoreFrom, java.util.Collection<? extends SearchPhaseResult> results, java.util.Collection<org.apache.lucene.search.TopDocs> bufferedTopDocs, org.elasticsearch.action.search.SearchPhaseController.TopDocsStats topDocsStats, int from, int size)
Returns a score doc array of top N search docs across all shards, followed by top suggest docs for each named completion suggestion across all shards. If more than one named completion suggestion is specified in the request, the suggest docs for a named suggestion are ordered by the suggestion name. Note: The order of the sorted score docs depends on the shard index in the result array if the merge process needs to disambiguate the result. In oder to obtain stable results the shard index (index of the result in the result array) must be the same.- Parameters:
ignoreFrom
- Whether to ignore the from and sort all hits in each shard result. Enabled only for scroll search, because that only retrieves hits of length 'size' in the query phase.results
- the search phase results to obtain the sort docs frombufferedTopDocs
- the pre-consumed buffered top docstopDocsStats
- the top docs stats to fillfrom
- the offset into the search results top docssize
- the number of hits to return from the merged top docs
-
getLastEmittedDocPerShard
public org.apache.lucene.search.ScoreDoc[] getLastEmittedDocPerShard(SearchPhaseController.ReducedQueryPhase reducedQueryPhase, int numShards)
-
fillDocIdsToLoad
public com.carrotsearch.hppc.IntArrayList[] fillDocIdsToLoad(int numShards, org.apache.lucene.search.ScoreDoc[] shardDocs)
Builds an array, with potential null elements, with docs to load.
-
merge
public InternalSearchResponse merge(boolean ignoreFrom, SearchPhaseController.ReducedQueryPhase reducedQueryPhase, java.util.Collection<? extends SearchPhaseResult> fetchResults, java.util.function.IntFunction<SearchPhaseResult> resultsLookup)
Enriches search hits and completion suggestion hits fromsortedDocs
usingfetchResultsArr
, merges suggestions, aggregations and profile results Expects sortedDocs to have top search docs across all shards, optionally followed by top suggest docs for each named completion suggestion ordered by suggestion name
-
reducedQueryPhase
public SearchPhaseController.ReducedQueryPhase reducedQueryPhase(java.util.Collection<? extends SearchPhaseResult> queryResults, boolean isScrollRequest)
Reduces the given query results and consumes all aggregations and profile results.- Parameters:
queryResults
- a list of non-null query shard results
-
reducedQueryPhase
public SearchPhaseController.ReducedQueryPhase reducedQueryPhase(java.util.Collection<? extends SearchPhaseResult> queryResults, boolean isScrollRequest, boolean trackTotalHits)
Reduces the given query results and consumes all aggregations and profile results.- Parameters:
queryResults
- a list of non-null query shard results
-
-