|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.lucene.search.HitCollector
org.apache.lucene.search.TopDocCollector
public class TopDocCollector
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 |
|---|
protected int totalHits
protected PriorityQueue hq
| Constructor Detail |
|---|
public TopDocCollector(int numHits)
numHits - the maximum number of hits to collectprotected TopDocCollector(PriorityQueue hq)
hq - the PQ to use by this instance.| Method Detail |
|---|
public void collect(int doc,
float score)
HitCollectorIf, 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.
collect in class HitCollectorpublic int getTotalHits()
public TopDocs topDocs()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||