TopScoreDocCollectorManager (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.search, class: TopScoreDocCollectorManager

Package org.apache.lucene.search

# Class TopScoreDocCollectorManager

java.lang.Object
org.apache.lucene.search.TopScoreDocCollectorManager

All Implemented Interfaces:
  `CollectorManager<TopScoreDocCollector,TopDocs>`

public class TopScoreDocCollectorManager extends Object implements CollectorManager<TopScoreDocCollector,TopDocs>
Create a TopScoreDocCollectorManager which uses a shared hit counter to maintain number of hits and a shared `MaxScoreAccumulator` to propagate the minimum score across segments

Note that a new collectorManager should be created for each search due to its internal states.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TopScoreDocCollectorManager(int numHits, int totalHitsThreshold)`
  Creates a new `TopScoreDocCollectorManager` given the number of hits to collect and the number of hits to count accurately, with thread-safe internal states.
  `TopScoreDocCollectorManager(int numHits, ScoreDoc after, int totalHitsThreshold)`
  Creates a new `TopScoreDocCollectorManager` given the number of hits to collect and the number of hits to count accurately, with thread-safe internal states.
  `TopScoreDocCollectorManager(int numHits, ScoreDoc after, int totalHitsThreshold, boolean supportsConcurrency)`
  Deprecated.
  Use `TopScoreDocCollectorManager(int, ScoreDoc, int)`, the supportsConcurrency parameter is now a no-op.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TopScoreDocCollector`
  `newCollector()`
  Return a new `Collector`.
  `TopDocs`
  `reduce(Collection<TopScoreDocCollector> collectors)`
  Reduce the results of individual collectors into a meaningful result.

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

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

- ## Constructor Details

  - ### TopScoreDocCollectorManager

    @Deprecated public TopScoreDocCollectorManager(int numHits, ScoreDoc after, int totalHitsThreshold, boolean supportsConcurrency)
    Deprecated.
    Use `TopScoreDocCollectorManager(int, ScoreDoc, int)`, the supportsConcurrency parameter is now a no-op.
    Creates a new `TopScoreDocCollectorManager` 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.

    Parameters:
      `numHits` - the number of results to collect.
      `after` - the previous doc after which matching docs will be collected.
      `totalHitsThreshold` - the number of docs to count accurately. If the query matches more than `totalHitsThreshold` hits then its hit count will be a lower bound. On the other hand if the query matches less than or exactly `totalHitsThreshold` hits then the hit count of the result will be accurate. `Integer.MAX_VALUE` may be used to make the hit count accurate, but this will also make query processing slower.

  - ### TopScoreDocCollectorManager

    public TopScoreDocCollectorManager(int numHits, ScoreDoc after, int totalHitsThreshold)
    Creates a new `TopScoreDocCollectorManager` given the number of hits to collect and the number of hits to count accurately, with thread-safe internal states.

    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.

    Parameters:
      `numHits` - the number of results to collect.
      `after` - the previous doc after which matching docs will be collected.
      `totalHitsThreshold` - the number of docs to count accurately. If the query matches more than `totalHitsThreshold` hits then its hit count will be a lower bound. On the other hand if the query matches less than or exactly `totalHitsThreshold` hits then the hit count of the result will be accurate. `Integer.MAX_VALUE` may be used to make the hit count accurate, but this will also make query processing slower.

  - ### TopScoreDocCollectorManager

    public TopScoreDocCollectorManager(int numHits, int totalHitsThreshold)
    Creates a new `TopScoreDocCollectorManager` given the number of hits to collect and the number of hits to count accurately, with thread-safe internal states.

    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.

    Parameters:
      `numHits` - the number of results to collect.
      `totalHitsThreshold` - the number of docs to count accurately. If the query matches more than `totalHitsThreshold` hits then its hit count will be a lower bound. On the other hand if the query matches less than or exactly `totalHitsThreshold` hits then the hit count of the result will be accurate. `Integer.MAX_VALUE` may be used to make the hit count accurate, but this will also make query processing slower.

- ## Method Details

  - ### newCollector

    public TopScoreDocCollector newCollector()
    Description copied from interface: `CollectorManager`
    Return a new `Collector`. This must return a different instance on each call.
    Specified by:
      `newCollector` in interface `CollectorManager<TopScoreDocCollector,TopDocs>`

  - ### reduce

    public TopDocs reduce(Collection<TopScoreDocCollector> collectors) throws IOException
    Description copied from interface: `CollectorManager`
    Reduce the results of individual collectors into a meaningful result. For instance a `TopDocsCollector` would compute the `top docs` of each collector and then merge them using `TopDocs.merge(int, TopDocs[])`. This method must be called after collection is finished on all provided collectors.
    Specified by:
      `reduce` in interface `CollectorManager<TopScoreDocCollector,TopDocs>`
    Throws:
      `IOException`