Class MultiSearcher
- java.lang.Object
-
- org.apache.lucene.search.Searcher
-
- org.apache.lucene.search.MultiSearcher
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Searchable
- Direct Known Subclasses:
ParallelMultiSearcher
@Deprecated public class MultiSearcher extends Searcher
Deprecated.If you are using MultiSearcher over IndexSearchers, please use MultiReader instead; this class does not properly handle certain kinds of queries (see LUCENE-2756).Implements search over a set ofSearchables
.Applications usually need only call the inherited
Searcher.search(Query,int)
orSearcher.search(Query,Filter,int)
methods.
-
-
Constructor Summary
Constructors Constructor Description MultiSearcher(Searchable... searchables)
Deprecated.Creates a searcher which searches searchers.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
close()
Deprecated.Frees resources associated with this Searcher.Weight
createNormalizedWeight(Query original)
Deprecated.Create weight in multiple index scenario.Document
doc(int n)
Deprecated.Returns the stored fields of documenti
.Document
doc(int n, FieldSelector fieldSelector)
Deprecated.Get theDocument
at then
th position.int
docFreq(Term term)
Deprecated.Expert: Returns the number of documents containingterm
.Explanation
explain(Weight weight, int doc)
Deprecated.Expert: low-level implementation method Returns an Explanation that describes howdoc
scored againstweight
.Searchable[]
getSearchables()
Deprecated.Return the array ofSearchable
s this searches.protected int[]
getStarts()
Deprecated.int
maxDoc()
Deprecated.Expert: Returns one greater than the largest possible document number.Query
rewrite(Query original)
Deprecated.Expert: called to re-write queries into primitive queries.TopDocs
search(Weight weight, Filter filter, int nDocs)
Deprecated.Expert: Low-level search implementation.TopFieldDocs
search(Weight weight, Filter filter, int n, Sort sort)
Deprecated.Expert: Low-level search implementation with arbitrary sorting.void
search(Weight weight, Filter filter, Collector collector)
Deprecated.Lower-level search API.int
subDoc(int n)
Deprecated.Returns the document number of documentn
within its sub-index.int
subSearcher(int n)
Deprecated.Returns index of the searcher for documentn
in the array used to construct this searcher.-
Methods inherited from class org.apache.lucene.search.Searcher
createWeight, docFreqs, explain, getSimilarity, search, search, search, search, search, search, setSimilarity
-
-
-
-
Constructor Detail
-
MultiSearcher
public MultiSearcher(Searchable... searchables) throws IOException
Deprecated.Creates a searcher which searches searchers.- Throws:
IOException
-
-
Method Detail
-
getSearchables
public Searchable[] getSearchables()
Deprecated.Return the array ofSearchable
s this searches.
-
getStarts
protected int[] getStarts()
Deprecated.
-
close
public void close() throws IOException
Deprecated.Description copied from interface:Searchable
Frees resources associated with this Searcher. Be careful not to call this method while you are still using objects that reference this Searchable.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceSearchable
- Specified by:
close
in classSearcher
- Throws:
IOException
-
docFreq
public int docFreq(Term term) throws IOException
Deprecated.Description copied from interface:Searchable
Expert: Returns the number of documents containingterm
.- Specified by:
docFreq
in interfaceSearchable
- Specified by:
docFreq
in classSearcher
- Throws:
IOException
- See Also:
IndexReader.docFreq(Term)
-
doc
public Document doc(int n) throws CorruptIndexException, IOException
Deprecated.Description copied from interface:Searchable
Returns the stored fields of documenti
.- Specified by:
doc
in interfaceSearchable
- Specified by:
doc
in classSearcher
- Throws:
CorruptIndexException
- if the index is corruptIOException
- if there is a low-level IO error- See Also:
IndexReader.document(int)
-
doc
public Document doc(int n, FieldSelector fieldSelector) throws CorruptIndexException, IOException
Deprecated.Description copied from interface:Searchable
Get theDocument
at then
th position. TheFieldSelector
may be used to determine whatField
s to load and how they should be loaded. NOTE: If the underlying Reader (more specifically, the underlyingFieldsReader
) is closed before the lazyField
is loaded an exception may be thrown. If you want the value of a lazyField
to be available after closing you must explicitly load it or fetch the Document again with a new loader.- Specified by:
doc
in interfaceSearchable
- Specified by:
doc
in classSearcher
- Parameters:
n
- Get the document at then
th positionfieldSelector
- TheFieldSelector
to use to determine what Fields should be loaded on the Document. May be null, in which case all Fields will be loaded.- Returns:
- The stored fields of the
Document
at the nth position - Throws:
CorruptIndexException
- if the index is corruptIOException
- if there is a low-level IO error- See Also:
IndexReader.document(int, FieldSelector)
,Fieldable
,FieldSelector
,SetBasedFieldSelector
,LoadFirstFieldSelector
-
subSearcher
public int subSearcher(int n)
Deprecated.Returns index of the searcher for documentn
in the array used to construct this searcher.
-
subDoc
public int subDoc(int n)
Deprecated.Returns the document number of documentn
within its sub-index.
-
maxDoc
public int maxDoc() throws IOException
Deprecated.Description copied from interface:Searchable
Expert: Returns one greater than the largest possible document number.- Specified by:
maxDoc
in interfaceSearchable
- Specified by:
maxDoc
in classSearcher
- Throws:
IOException
- See Also:
IndexReader.maxDoc()
-
search
public TopDocs search(Weight weight, Filter filter, int nDocs) throws IOException
Deprecated.Description copied from interface:Searchable
Expert: Low-level search implementation. Finds the topn
hits forquery
, applyingfilter
if non-null.Applications should usually call
Searcher.search(Query,int)
orSearcher.search(Query,Filter,int)
instead.- Specified by:
search
in interfaceSearchable
- Specified by:
search
in classSearcher
- Throws:
IOException
-
search
public TopFieldDocs search(Weight weight, Filter filter, int n, Sort sort) throws IOException
Deprecated.Description copied from interface:Searchable
Expert: Low-level search implementation with arbitrary sorting. Finds the topn
hits forquery
, applyingfilter
if non-null, and sorting the hits by the criteria insort
.Applications should usually call
Searcher.search(Query,Filter,int,Sort)
instead.- Specified by:
search
in interfaceSearchable
- Specified by:
search
in classSearcher
- Throws:
IOException
-
search
public void search(Weight weight, Filter filter, Collector collector) throws IOException
Deprecated.Description copied from interface:Searchable
Lower-level search API.Collector.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 (
Searcher.search(Query,int)
) is usually more efficient, as it skips non-high-scoring hits.- Specified by:
search
in interfaceSearchable
- Specified by:
search
in classSearcher
- Parameters:
weight
- to match documentsfilter
- if non-null, used to permit documents to be collected.collector
- to receive hits- Throws:
IOException
-
rewrite
public Query rewrite(Query original) throws IOException
Deprecated.Description copied from interface:Searchable
Expert: called to re-write queries into primitive queries.- Specified by:
rewrite
in interfaceSearchable
- Specified by:
rewrite
in classSearcher
- Throws:
IOException
-
explain
public Explanation explain(Weight weight, int doc) throws IOException
Deprecated.Description copied from interface:Searchable
Expert: low-level implementation method Returns an Explanation that describes howdoc
scored againstweight
.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
Searcher.explain(Query, int)
.- Specified by:
explain
in interfaceSearchable
- Specified by:
explain
in classSearcher
- Throws:
IOException
-
createNormalizedWeight
public Weight createNormalizedWeight(Query original) throws IOException
Deprecated.Create weight in multiple index scenario. Distributed query processing is done in the following steps: 1. rewrite query 2. extract necessary terms 3. collect dfs for these terms from the Searchables 4. create query weight using aggregate dfs. 5. distribute that weight to Searchables 6. merge results Steps 1-4 are done here, 5+6 in the search() methods- Overrides:
createNormalizedWeight
in classSearcher
- Returns:
- rewritten queries
- Throws:
IOException
-
-