## org.apache.lucene.search
Class TopFieldDocCollector

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

    public class TopFieldDocCollector

extends TopDocCollector

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

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

Constructor Summary
`TopFieldDocCollector(IndexReader reader, Sort sort, int numHits)` Construct to collect a given number of hits.

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

Methods inherited from class org.apache.lucene.search.TopDocCollector
`getTotalHits`

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

Constructor Detail

### TopFieldDocCollector

    public TopFieldDocCollector(IndexReader reader,
                                Sort sort,
                                int numHits)
                         throws IOException

  Construct to collect a given number of hits.

  Parameters:
    `reader` - the index to be searched
    `sort` - the sort criteria
    `numHits` - the maximum number of hits to collect
  Throws:
    `IOException`

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.

  Overrides:
    `collect` in class `TopDocCollector`

### topDocs

    public TopDocs topDocs()

  Description copied from class: `TopDocCollector`
  The top-scoring hits.

  Overrides:
    `topDocs` in class `TopDocCollector`

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