## org.apache.lucene.search
Class TopDocCollector

    java.lang.Object
      org.apache.lucene.search.HitCollector
          org.apache.lucene.search.TopDocCollector

Direct Known Subclasses:
  TopFieldDocCollector

    public class TopDocCollector

extends HitCollector

A `HitCollector` implementation that collects the top-scoring documents, returning them as a `TopDocs`. This is used by `IndexSearcher` to implement `TopDocs`-based search.

This may be extended, overriding the collect method to, e.g., conditionally invoke `super()` in order to filter which documents are collected.

Field Summary
`protected PriorityQueue` `hq` The priority queue which holds the top-scoring documents.
`protected int` `totalHits` The total number of hits the collector encountered.

Constructor Summary
`` `TopDocCollector(int numHits)` Construct to collect a given number of hits.
`protected` `TopDocCollector(PriorityQueue hq)` Constructor to collect the top-scoring documents by using the given PQ.

Method Summary
`void` `collect(int doc, float score)` Called once for every document matching a query, with the document number and its raw score.
`int` `getTotalHits()` The total number of documents that matched this query.
`TopDocs` `topDocs()` The top-scoring hits.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### totalHits

    protected int totalHits

  The total number of hits the collector encountered.

### hq

    protected PriorityQueue hq

  The priority queue which holds the top-scoring documents.

Constructor Detail

### TopDocCollector

    public TopDocCollector(int numHits)

  Construct to collect a given number of hits.

  Parameters:
    `numHits` - the maximum number of hits to collect

### TopDocCollector

    protected TopDocCollector(PriorityQueue hq)

  Constructor to collect the top-scoring documents by using the given PQ.

  Parameters:
    `hq` - the PQ to use by this instance.

Method Detail

### collect

    public void collect(int doc,
                        float score)

  Description copied from class: `HitCollector`
  Called once for every document matching a query, with the document number and its raw score.

  If, for example, an application wished to collect all of the hits for a query in a BitSet, then it might:

         Searcher searcher = new IndexSearcher(indexReader);
         final BitSet bits = new BitSet(indexReader.maxDoc());
         searcher.search(query, new HitCollector() {
             public void collect(int doc, float score) {
               bits.set(doc);
             }
           });

  Note: This is called in an inner search loop. For good search performance, implementations of this method should not call `Searcher.doc(int)` or `IndexReader.document(int)` on every document number encountered. Doing so can slow searches by an order of magnitude or more.

  Note: The `score` passed to this method is a raw score. In other words, the score will not necessarily be a float whose value is between 0 and 1.

  Specified by:
    `collect` in class `HitCollector`

### getTotalHits

    public int getTotalHits()

  The total number of documents that matched this query.

### topDocs

    public TopDocs topDocs()

  The top-scoring hits.

Copyright © 2000-2009 Apache Software Foundation. All Rights Reserved.