## Uses of Class
org.apache.lucene.search.TopDocs

- Packages that use TopDocs
  Package | Description
  --- | ---
  org.apache.lucene.index | Code to maintain and access indices.
  org.apache.lucene.search | Code to search indices.
  org.apache.lucene.search.knn | Classes related to vector search: knn and vector fields.
  org.apache.lucene.util.hnsw | Navigable Small-World graph, nominally Hierarchical but currently only has a single layer.

- - ### Uses of TopDocs in org.apache.lucene.index

    Methods in org.apache.lucene.index that return TopDocs
    Modifier and Type | Method | Description
    --- | --- | ---
    `TopDocs` | LeafReader.`searchNearestVectors​(String field, byte[] target, int k, Bits acceptDocs, int visitedLimit)` | Return the k nearest neighbor documents as determined by comparison of their vector values for this field, to the given vector, by the field's similarity function.
    `TopDocs` | LeafReader.`searchNearestVectors​(String field, float[] target, int k, Bits acceptDocs, int visitedLimit)` | Return the k nearest neighbor documents as determined by comparison of their vector values for this field, to the given vector, by the field's similarity function.

  - ### Uses of TopDocs in org.apache.lucene.search

    Subclasses of TopDocs in org.apache.lucene.search
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `TopFieldDocs` | Represents hits returned by `IndexSearcher.search(Query,int,Sort)`.

    Fields in org.apache.lucene.search declared as TopDocs
    Modifier and Type | Field | Description
    --- | --- | ---
    `static TopDocs` | TopDocsCollector.`EMPTY_TOPDOCS` | This is used in case topDocs() is called with illegal parameters, or there simply aren't (enough) results.

    Methods in org.apache.lucene.search that return TopDocs
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected TopDocs` | ByteVectorSimilarityQuery.`approximateSearch​(LeafReaderContext context, Bits acceptDocs, int visitLimit)` |
    `protected TopDocs` | FloatVectorSimilarityQuery.`approximateSearch​(LeafReaderContext context, Bits acceptDocs, int visitLimit)` |
    `protected TopDocs` | KnnByteVectorQuery.`approximateSearch​(LeafReaderContext context, Bits acceptDocs, int visitedLimit, KnnCollectorManager knnCollectorManager)` |
    `protected TopDocs` | KnnFloatVectorQuery.`approximateSearch​(LeafReaderContext context, Bits acceptDocs, int visitedLimit, KnnCollectorManager knnCollectorManager)` |
    `static TopDocs` | TopDocs.`merge​(int start, int topN, TopDocs[] shardHits)` | Same as `merge(int, TopDocs[])` but also ignores the top `start` top docs.
    `static TopDocs` | TopDocs.`merge​(int start, int topN, TopDocs[] shardHits, Comparator<ScoreDoc> tieBreaker)` | Same as above, but accepts the passed in tie breaker
    `static TopDocs` | TopDocs.`merge​(int topN, TopDocs[] shardHits)` | Returns a new TopDocs, containing topN results across the provided TopDocs, sorting by score.
    `protected TopDocs` | TopDocsCollector.`newTopDocs​(ScoreDoc[] results, int start)` | Returns a `TopDocs` instance containing the given results.
    `protected TopDocs` | TopFieldCollector.`newTopDocs​(ScoreDoc[] results, int start)` |
    `protected TopDocs` | TopScoreDocCollector.`newTopDocs​(ScoreDoc[] results, int start)` |
    `TopDocs` | TopScoreDocCollectorManager.`reduce​(Collection<TopScoreDocCollector> collectors)` |
    `TopDocs` | QueryRescorer.`rescore​(IndexSearcher searcher, TopDocs firstPassTopDocs, int topN)` |
    `static TopDocs` | QueryRescorer.`rescore​(IndexSearcher searcher, TopDocs topDocs, Query query, double weight, int topN)` | Sugar API, calling {#rescore} using a simple linear combination of firstPassScore + weight * secondPassScore
    `abstract TopDocs` | Rescorer.`rescore​(IndexSearcher searcher, TopDocs firstPassTopDocs, int topN)` | Rescore an initial first-pass `TopDocs`.
    `TopDocs` | SortRescorer.`rescore​(IndexSearcher searcher, TopDocs firstPassTopDocs, int topN)` |
    `TopDocs` | IndexSearcher.`search​(Query query, int n)` | Finds the top `n` hits for `query`.
    `TopDocs` | IndexSearcher.`searchAfter​(ScoreDoc after, Query query, int numHits)` | Finds the top `n` hits for `query` where all results are after a previous result (`after`).
    `TopDocs` | IndexSearcher.`searchAfter​(ScoreDoc after, Query query, int n, Sort sort)` | Finds the top `n` hits for `query` where all results are after a previous result (`after`).
    `abstract TopDocs` | AbstractKnnCollector.`topDocs()` |
    `TopDocs` | KnnCollector.`topDocs()` | This drains the collected nearest kNN results and returns them in a new `TopDocs` collection, ordered by score descending.
    `TopDocs` | TopDocsCollector.`topDocs()` | Returns the top docs that were collected by this collector.
    `TopDocs` | TopDocsCollector.`topDocs​(int start)` | Returns the documents in the range [start ..
    `TopDocs` | TopDocsCollector.`topDocs​(int start, int howMany)` | Returns the documents in the range [start ..
    `TopDocs` | TopKnnCollector.`topDocs()` |

    Methods in org.apache.lucene.search that return types with arguments of type TopDocs
    Modifier and Type | Method | Description
    --- | --- | ---
    `static CollectorManager<TopScoreDocCollector,​TopDocs>` | TopScoreDocCollector.`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

    Methods in org.apache.lucene.search with parameters of type TopDocs
    Modifier and Type | Method | Description
    --- | --- | ---
    `static TopDocs` | TopDocs.`merge​(int start, int topN, TopDocs[] shardHits)` | Same as `merge(int, TopDocs[])` but also ignores the top `start` top docs.
    `static TopDocs` | TopDocs.`merge​(int start, int topN, TopDocs[] shardHits, Comparator<ScoreDoc> tieBreaker)` | Same as above, but accepts the passed in tie breaker
    `static TopDocs` | TopDocs.`merge​(int topN, TopDocs[] shardHits)` | Returns a new TopDocs, containing topN results across the provided TopDocs, sorting by score.
    `TopDocs` | QueryRescorer.`rescore​(IndexSearcher searcher, TopDocs firstPassTopDocs, int topN)` |
    `static TopDocs` | QueryRescorer.`rescore​(IndexSearcher searcher, TopDocs topDocs, Query query, double weight, int topN)` | Sugar API, calling {#rescore} using a simple linear combination of firstPassScore + weight * secondPassScore
    `abstract TopDocs` | Rescorer.`rescore​(IndexSearcher searcher, TopDocs firstPassTopDocs, int topN)` | Rescore an initial first-pass `TopDocs`.
    `TopDocs` | SortRescorer.`rescore​(IndexSearcher searcher, TopDocs firstPassTopDocs, int topN)` |

  - ### Uses of TopDocs in org.apache.lucene.search.knn

    Methods in org.apache.lucene.search.knn that return TopDocs
    Modifier and Type | Method | Description
    --- | --- | ---
    `TopDocs` | MultiLeafTopKnnCollector.`topDocs()` |

  - ### Uses of TopDocs in org.apache.lucene.util.hnsw

    Methods in org.apache.lucene.util.hnsw that return TopDocs
    Modifier and Type | Method | Description
    --- | --- | ---
    `TopDocs` | HnswGraphBuilder.GraphBuilderKnnCollector.`topDocs()` |
    `TopDocs` | OrdinalTranslatedKnnCollector.`topDocs()` |