Class SearchPhaseController

    • Constructor Detail

      • SearchPhaseController

        public SearchPhaseController​(Settings settings,
                                     java.util.function.Function<java.lang.Boolean,​InternalAggregation.ReduceContext> reduceContextFunction)
        Constructor.
        Parameters:
        settings - Node settings
        reduceContextFunction - A function that builds a context for the reduce of an InternalAggregation
    • Method Detail

      • 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 from
        bufferedTopDocs - the pre-consumed buffered top docs
        topDocsStats - the top docs stats to fill
        from - the offset into the search results top docs
        size - the number of hits to return from the merged top docs
      • 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 from sortedDocs using fetchResultsArr, 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