Class TopFieldCollectorManager

java.lang.Object
org.apache.lucene.search.TopFieldCollectorManager
All Implemented Interfaces:
CollectorManager<TopFieldCollector,TopFieldDocs>

public class TopFieldCollectorManager extends Object implements CollectorManager<TopFieldCollector,TopFieldDocs>
Create a TopFieldCollectorManager which uses a shared hit counter to maintain number of hits and a shared MaxScoreAccumulator to propagate the minimum score across segments if the primary sort is by relevancy.

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

  • Constructor Details

    • TopFieldCollectorManager

      @Deprecated public TopFieldCollectorManager(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold, boolean supportsConcurrency)
      Deprecated.
      Use TopFieldCollectorManager(Sort, int, FieldDoc, int), the supportsConcurrency parameter is now a no-op.
      Creates a new TopFieldCollectorManager from the given arguments.

      NOTE: The instances returned by this method pre-allocate a full array of length numHits.

      Parameters:
      sort - the sort criteria (SortFields).
      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.
      supportsConcurrency - to use thread-safe and slower internal states for count tracking.
    • TopFieldCollectorManager

      public TopFieldCollectorManager(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold)
      Creates a new TopFieldCollectorManager from the given arguments.

      Thread safety is guaranteed for the shared internal states (hit counting, minimum score propagation) across collectors created by newCollector(). Note that newCollector() itself is designed to be called from a single thread; IndexSearcher handles this by calling it sequentially before parallel slice execution.

      NOTE: The instances returned by this method pre-allocate a full array of length numHits.

      Parameters:
      sort - the sort criteria (SortFields).
      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.
    • TopFieldCollectorManager

      public TopFieldCollectorManager(Sort sort, int numHits, int totalHitsThreshold)
      Creates a new TopFieldCollectorManager from the given arguments, with thread-safe internal states.

      NOTE: The instances returned by this method pre-allocate a full array of length numHits.

      Parameters:
      sort - the sort criteria (SortFields).
      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