| Method from org.apache.lucene.search.IndexSearcher Detail: |
public void close() throws IOException {
if(closeReader)
reader.close();
}
Note that the underlying IndexReader is not closed, if
IndexSearcher was constructed with IndexSearcher(IndexReader r).
If the IndexReader was supplied implicitly by specifying a directory, then
the IndexReader gets closed. |
public Document doc(int i) throws IOException, CorruptIndexException {
return reader.document(i);
}
|
public Document doc(int i,
FieldSelector fieldSelector) throws IOException, CorruptIndexException {
return reader.document(i, fieldSelector);
}
|
public int docFreq(Term term) throws IOException {
return reader.docFreq(term);
}
|
public Explanation explain(Weight weight,
int doc) throws IOException {
return weight.explain(reader, doc);
}
|
public IndexReader getIndexReader() {
return reader;
}
|
public int maxDoc() throws IOException {
return reader.maxDoc();
}
|
public Query rewrite(Query original) throws IOException {
Query query = original;
for (Query rewrittenQuery = query.rewrite(reader); rewrittenQuery != query;
rewrittenQuery = query.rewrite(reader)) {
query = rewrittenQuery;
}
return query;
}
|
public TopDocs search(Weight weight,
Filter filter,
int nDocs) throws IOException {
if (nDocs < = 0) // null might be returned from hq.top() below.
throw new IllegalArgumentException("nDocs must be > 0");
TopDocCollector collector = new TopDocCollector(nDocs);
search(weight, filter, collector);
return collector.topDocs();
}
|
public void search(Weight weight,
Filter filter,
HitCollector results) throws IOException {
Scorer scorer = weight.scorer(reader);
if (scorer == null)
return;
if (filter == null) {
scorer.score(results);
return;
}
DocIdSetIterator filterDocIdIterator = filter.getDocIdSet(reader).iterator(); // CHECKME: use ConjunctionScorer here?
boolean more = filterDocIdIterator.next() && scorer.skipTo(filterDocIdIterator.doc());
while (more) {
int filterDocId = filterDocIdIterator.doc();
if (filterDocId > scorer.doc() && !scorer.skipTo(filterDocId)) {
more = false;
} else {
int scorerDocId = scorer.doc();
if (scorerDocId == filterDocId) { // permitted by filter
results.collect(scorerDocId, scorer.score());
more = filterDocIdIterator.next();
} else {
more = filterDocIdIterator.skipTo(scorerDocId);
}
}
}
}
|
public TopFieldDocs search(Weight weight,
Filter filter,
int nDocs,
Sort sort) throws IOException {
TopFieldDocCollector collector =
new TopFieldDocCollector(reader, sort, nDocs);
search(weight, filter, collector);
return (TopFieldDocs)collector.topDocs();
}
|