Package org.apache.lucene.search

## Class TopScoreDocCollector

- java.lang.Object
- - org.apache.lucene.search.TopDocsCollector<ScoreDoc>
  - - org.apache.lucene.search.TopScoreDocCollector

- All Implemented Interfaces:
    `Collector`

      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.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `TopScoreDocCollector.ScorerLeafCollector` | Scorable leaf collector

  - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.search.TopDocsCollector

      `EMPTY_TOPDOCS, pq, totalHits, totalHitsRelation`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static TopScoreDocCollector` | `create​(int numHits, int totalHitsThreshold)` | Deprecated. This method is deprecated in favor of the constructor of `TopScoreDocCollectorManager` due to its support for concurrency in IndexSearcher
    `static TopScoreDocCollector` | `create​(int numHits, ScoreDoc after, int totalHitsThreshold)` | Deprecated. This method is deprecated in favor of the constructor of `TopScoreDocCollectorManager` due to its support for concurrency in IndexSearcher
    `static CollectorManager<TopScoreDocCollector,​TopDocs>` | `createSharedManager​(int numHits, ScoreDoc after, int totalHitsThreshold)` | Deprecated. This method is deprecated in favor of the constructor of `TopScoreDocCollectorManager` due to its support for concurrency in IndexSearcher
    `protected TopDocs` | `newTopDocs​(ScoreDoc[] results, int start)` | Returns a `TopDocs` instance containing the given results.
    `ScoreMode` | `scoreMode()` | Indicates what features are required from the scorer.
    `protected void` | `updateGlobalMinCompetitiveScore​(Scorable scorer)` |
    `protected void` | `updateMinCompetitiveScore​(Scorable scorer)` |

    - ### Methods inherited from class org.apache.lucene.search.TopDocsCollector

      `getTotalHits, populateResults, topDocs, topDocs, topDocs, topDocsSize`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.lucene.search.Collector

      `getLeafCollector, setWeight`

- - ### Method Detail

    - #### create

          @Deprecated
          public static TopScoreDocCollector create​(int numHits,
                                                    int totalHitsThreshold)

      Deprecated.
      This method is deprecated in favor of the constructor of `TopScoreDocCollectorManager` due to its support for concurrency in IndexSearcher
      Creates a new `TopScoreDocCollector` given the number of hits to collect and the number of hits to count accurately.

      NOTE: If the total hit count of the top docs is less than or exactly `totalHitsThreshold` then this value is accurate. On the other hand, if the `TopDocs.totalHits` value is greater than `totalHitsThreshold` then its value is a lower bound of the hit count. A value of `Integer.MAX_VALUE` will make the hit count accurate but will also likely make query processing slower.

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

    - #### create

          @Deprecated
          public static TopScoreDocCollector create​(int numHits,
                                                    ScoreDoc after,
                                                    int totalHitsThreshold)

      Deprecated.
      This method is deprecated in favor of the constructor of `TopScoreDocCollectorManager` due to its support for concurrency in IndexSearcher
      Creates a new `TopScoreDocCollector` given the number of hits to collect, the bottom of the previous page, and the number of hits to count accurately.

      NOTE: If the total hit count of the top docs is less than or exactly `totalHitsThreshold` then this value is accurate. On the other hand, if the `TopDocs.totalHits` value is greater than `totalHitsThreshold` then its value is a lower bound of the hit count. A value of `Integer.MAX_VALUE` will make the hit count accurate but will also likely make query processing slower.

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

    - #### createSharedManager

          @Deprecated
          public static CollectorManager<TopScoreDocCollector,​TopDocs> createSharedManager​(int numHits,
                                                                                                 ScoreDoc after,
                                                                                                 int totalHitsThreshold)

      Deprecated.
      This method is deprecated in favor of the constructor of `TopScoreDocCollectorManager` due to its support for concurrency in IndexSearcher
      Create a CollectorManager which uses a shared hit counter to maintain number of hits and a shared `MaxScoreAccumulator` to propagate the minimum score accross segments

    - #### 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>`

    - #### scoreMode

          public ScoreMode scoreMode()

      Description copied from interface: `Collector`
      Indicates what features are required from the scorer.

    - #### updateGlobalMinCompetitiveScore

          protected void updateGlobalMinCompetitiveScore​(Scorable scorer)
                                                  throws IOException

      Throws:
        `IOException`

    - #### updateMinCompetitiveScore

          protected void updateMinCompetitiveScore​(Scorable scorer)
                                            throws IOException

      Throws:
        `IOException`