TopScoreDocCollector

A Collector implementation that collects the top-scoring hits, returning them as a [ ]. 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.

Properties

Link copied to clipboard
Link copied to clipboard

The total number of documents that the collector encountered.

Link copied to clipboard
Link copied to clipboard
open override var weight: Weight?

Set the Weight that will be used to produce scorers that will feed [ ]s. This is typically useful to have access to Weight.count from .

Functions

Link copied to clipboard
open override fun getLeafCollector(context: LeafReaderContext): LeafCollector

Create a new collector to collect the given context.

Link copied to clipboard
open override fun scoreMode(): ScoreMode

Indicates what features are required from the scorer.

Link copied to clipboard
open fun topDocs(): TopDocs

Returns the top docs that were collected by this collector.

fun topDocs(start: Int): TopDocs

Returns the documents in the range [start .. pq.size()) that were collected by this collector. Note that if start >= pq.size(), an empty TopDocs is returned.

This method is convenient to call if the application always asks for the last results, starting from the last 'page'.

NOTE: you cannot call this method more than once for each search execution. If you need to call it more than once, passing each time a different start, you should call .topDocs and work with the returned TopDocs object, which will contain all the results this search execution collected.

fun topDocs(start: Int, howMany: Int): TopDocs

Returns the documents in the range [start .. start+howMany) that were collected by this collector. Note that if start >= pq.size(), an empty TopDocs is returned, and if pq.size() - start < howMany, then only the available documents in [start .. pq.size()) are returned.

This method is useful to call in case pagination of search results is allowed by the search application, as well as it attempts to optimize the memory used by allocating only as much as requested by howMany.

NOTE: you cannot call this method more than once for each search execution. If you need to call it more than once, passing each time a different range, you should call .topDocs and work with the returned TopDocs object, which will contain all the results this search execution collected.