Package org.apache.lucene.search

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

Constructors
Constructor
Description
`TopFieldCollectorManager(Sort sort, int numHits, int totalHitsThreshold)`
Creates a new `TopFieldCollectorManager` from the given arguments, with thread-safe internal states.
`TopFieldCollectorManager(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold)`
Creates a new `TopFieldCollectorManager` from the given arguments, with thread-safe internal states.
`TopFieldCollectorManager(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold, boolean supportsConcurrency)`
Creates a new `TopFieldCollectorManager` from the given arguments.

## Method Summary

Modifier and Type
Method
Description
`List<TopFieldCollector>`
`getCollectors()`
`TopFieldCollector`
`newCollector()`
Return a new `Collector`.
`TopFieldDocs`
`reduce(Collection<TopFieldCollector> 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

### TopFieldCollectorManager

public TopFieldCollectorManager(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold, boolean supportsConcurrency)
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, 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.
  `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

### newCollector

public TopFieldCollector 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<TopFieldCollector,TopFieldDocs>`

### reduce

public TopFieldDocs reduce(Collection<TopFieldCollector> 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<TopFieldCollector,TopFieldDocs>`
Throws:
  `IOException`

### getCollectors

public List<TopFieldCollector> getCollectors()