java.lang.Object | ||
↳ | org.apache.lucene.search.Searcher | |
↳ | org.apache.lucene.search.IndexSearcher |
Implements search over a single IndexReader.
Applications usually need only call the inherited
search(Query, int)
or search(Query, Filter, int)
methods. For performance reasons it is
recommended to open only one IndexSearcher and use it for all of your searches.
NOTE: IndexSearcher
instances are completely
thread safe, meaning multiple threads can call any of its
methods, concurrently. If your application requires
external synchronization, you should not
synchronize on the IndexSearcher
instance;
use your own (non-Lucene) objects instead.
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
docStarts | |||||||||||
subReaders |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Creates a searcher searching the index in the named
directory, with readOnly=true
| |||||||||||
Creates a searcher searching the index in the named
directory.
| |||||||||||
Creates a searcher searching the provided index.
| |||||||||||
Expert: directly specify the reader, subReaders and
their docID starts.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Note that the underlying IndexReader is not closed, if
IndexSearcher was constructed with IndexSearcher(IndexReader r).
| |||||||||||
Returns the stored fields of document
i . | |||||||||||
Get the
Document at the n th position. | |||||||||||
Expert: Returns the number of documents containing
term . | |||||||||||
Expert: low-level implementation method
Returns an Explanation that describes how
doc scored against
weight . | |||||||||||
Return the
IndexReader this searches. | |||||||||||
Expert: Returns one greater than the largest possible document number.
| |||||||||||
Expert: called to re-write queries into primitive queries.
| |||||||||||
Lower-level search API.
| |||||||||||
Expert: Low-level search implementation.
| |||||||||||
Just like
search(Weight, Filter, int, Sort) , but you choose
whether or not the fields in the returned FieldDoc instances should
be set by specifying fillFields. | |||||||||||
Expert: Low-level search implementation with arbitrary sorting.
| |||||||||||
By default, no scores are computed when sorting by
field (using
search(Query, Filter, int, Sort) ). |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.apache.lucene.search.Searcher
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
java.io.Closeable
| |||||||||||
From interface
org.apache.lucene.search.Searchable
|
Creates a searcher searching the index in the named directory, with readOnly=true
path | directory where IndexReader will be opened |
---|
CorruptIndexException | if the index is corrupt |
---|---|
IOException | if there is a low-level IO error |
Creates a searcher searching the index in the named directory. You should pass readOnly=true, since it gives much better concurrent performance, unless you intend to do write operations (delete documents or change norms) with the underlying IndexReader.
path | directory where IndexReader will be opened |
---|---|
readOnly | if true, the underlying IndexReader will be opened readOnly |
CorruptIndexException | if the index is corrupt |
---|---|
IOException | if there is a low-level IO error |
Expert: directly specify the reader, subReaders and their docID starts.
NOTE: This API is experimental and might change in incompatible ways in the next release.
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.
IOException |
---|
Returns the stored fields of document i
.
CorruptIndexException | |
---|---|
IOException |
Get the Document
at the n
th position. The FieldSelector
may be used to determine what Field
s to load and how they should be loaded.
NOTE: If the underlying Reader (more specifically, the underlying FieldsReader
) is closed before the lazy Field
is
loaded an exception may be thrown. If you want the value of a lazy Field
to be available after closing you must
explicitly load it or fetch the Document again with a new loader.
i | Get the document at the n th position |
---|---|
fieldSelector | The FieldSelector to use to determine what Fields should be loaded on the Document. May be null, in which case all Fields will be loaded. |
Document
at the nth positionCorruptIndexException | |
---|---|
IOException |
Expert: Returns the number of documents containing term
.
IOException |
---|
Expert: low-level implementation method
Returns an Explanation that describes how doc
scored against
weight
.
This is intended to be used in developing Similarity implementations, and, for good performance, should not be displayed with every hit. Computing an explanation is as expensive as executing the query over the entire index.
Applications should call explain(Query, int)
.
IOException |
---|
Expert: Returns one greater than the largest possible document number.
IOException |
---|
Expert: called to re-write queries into primitive queries.
IOException |
---|
Lower-level search API.
collect(int)
is called for every document.
Collector-based access to remote indexes is discouraged.
Applications should only use this if they need all of the matching
documents. The high-level search API (search(Query, int)
) is
usually more efficient, as it skips non-high-scoring hits.
weight | to match documents |
---|---|
filter | if non-null, used to permit documents to be collected. |
collector | to receive hits |
IOException |
---|
Expert: Low-level search implementation. Finds the top n
hits for query
, applying filter
if non-null.
Applications should usually call search(Query, int)
or
search(Query, Filter, int)
instead.
IOException |
---|
Just like search(Weight, Filter, int, Sort)
, but you choose
whether or not the fields in the returned FieldDoc
instances should
be set by specifying fillFields.
NOTE: this does not compute scores by default. If you
need scores, create a TopFieldCollector
instance by calling create(Sort, int, boolean, boolean, boolean, boolean)
and
then pass that to search(Weight, Filter, Collector)
.
IOException |
---|
Expert: Low-level search implementation with arbitrary sorting. Finds
the top n
hits for query
, applying
filter
if non-null, and sorting the hits by the criteria in
sort
.
Applications should usually call search(Query, Filter, int, Sort)
instead.
IOException |
---|
By default, no scores are computed when sorting by
field (using search(Query, Filter, int, Sort)
).
You can change that, per IndexSearcher instance, by
calling this method. Note that this will incur a CPU
cost.
doTrackScores | If true, then scores are
returned for every matching document in TopFieldDocs . |
---|---|
doMaxScore | If true, then the max score for all matching docs is computed. |