Class TopScoreDocCollector


  • public abstract class TopScoreDocCollector
    extends TopDocsCollector<ScoreDoc>
    A Collector implementation that collects the top-scoring hits, returning them as a TopDocs. This is used by IndexSearcher to implement TopDocs-based search. Hits are sorted by score descending and then (when the scores are tied) docID ascending. When you create an instance of this collector you should know in advance whether documents are going to be collected in doc Id order or not.

    NOTE: The values Float.NaN and {Float#NEGATIVE_INFINITY} are not valid scores. This collector will not properly collect hits with such scores.

    • Method Detail

      • create

        public static TopScoreDocCollector create​(int numHits,
                                                  boolean docsScoredInOrder)
        Creates a new TopScoreDocCollector given the number of hits to collect and whether documents are scored in order by the input Scorer to setScorer(Scorer).

        NOTE: The instances returned by this method pre-allocate a full array of length numHits, and fill the array with sentinel objects.

      • create

        public static TopScoreDocCollector create​(int numHits,
                                                  ScoreDoc after,
                                                  boolean docsScoredInOrder)
        Creates a new TopScoreDocCollector given the number of hits to collect, the bottom of the previous page, and whether documents are scored in order by the input Scorer to setScorer(Scorer).

        NOTE: The instances returned by this method pre-allocate a full array of length numHits, and fill the array with sentinel objects.

      • newTopDocs

        protected TopDocs newTopDocs​(ScoreDoc[] results,
                                     int start)
        Description copied from class: TopDocsCollector
        Returns a TopDocs instance containing the given results. If results is null it means there are no results to return, either because there were 0 calls to collect() or because the arguments to topDocs were invalid.
        Overrides:
        newTopDocs in class TopDocsCollector<ScoreDoc>