Class SolrIndexSearcher
- java.lang.Object
-
- org.apache.lucene.search.IndexSearcher
-
- org.apache.solr.search.SolrIndexSearcher
-
- All Implemented Interfaces:
Closeable,AutoCloseable,SolrInfoBean,SolrMetricProducer
public class SolrIndexSearcher extends org.apache.lucene.search.IndexSearcher implements Closeable, SolrInfoBean
SolrIndexSearcher adds schema awareness and caching functionality overIndexSearcher.- Since:
- solr 0.9
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSolrIndexSearcher.DocsEnumStatestatic classSolrIndexSearcher.ProcessedFilterINTERNAL: The response object fromgetProcessedFilter(DocSet, List).-
Nested classes/interfaces inherited from class org.apache.lucene.search.IndexSearcher
org.apache.lucene.search.IndexSearcher.LeafSlice, org.apache.lucene.search.IndexSearcher.TooManyClauses, org.apache.lucene.search.IndexSearcher.TooManyNestedClauses
-
Nested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group
-
-
Field Summary
Fields Modifier and Type Field Description static intEXECUTOR_MAX_CPU_THREADSstatic intGET_DOCLISTstatic intGET_DOCSETstatic intGET_SCORESstatic intNO_CHECK_QCACHEstatic AtomicLongnumClosesstatic AtomicLongnumOpensstatic StringSTATISTICS_KEYstatic StringSTATS_SOURCEstatic intTERMINATE_EARLY
-
Constructor Summary
Constructors Constructor Description SolrIndexSearcher(SolrCore core, String path, IndexSchema schema, String name, org.apache.lucene.index.DirectoryReader r, boolean closeReader, boolean enableCache, boolean reserveDirectory, DirectoryFactory directoryFactory)SolrIndexSearcher(SolrCore core, String path, IndexSchema schema, SolrIndexConfig config, String name, boolean enableCache, DirectoryFactory directoryFactory)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidbootstrapFirstSearcher()Called on the initial searcher for each core, immediately beforefirstSearcherListenersare called for the searcher.voidcacheDocSet(org.apache.lucene.search.Query query, DocSet optionalAnswer, boolean mustCache)Compute and cache the DocSet that matches a query.ObjectcacheInsert(String cacheName, Object key, Object val)insert an entry in a generic cacheObjectcacheLookup(String cacheName, Object key)lookup an entry in a generic cachevoidclose()Free's resources associated with this searcher.org.apache.lucene.search.CollectionStatisticscollectionStatistics(String field)org.apache.lucene.document.Documentdoc(int docId)Deprecated.org.apache.lucene.document.Documentdoc(int i, Set<String> fields)Deprecated.voiddoc(int docId, org.apache.lucene.index.StoredFieldVisitor visitor)Deprecated.intdocFreq(org.apache.lucene.index.Term term)org.apache.lucene.search.Explanationexplain(org.apache.lucene.search.Query query, int doc)SolrCachegetCache(String cacheName)return the named generic cacheSolrInfoBean.CategorygetCategory()Category of this componentSolrCoregetCore()StringgetDescription()Simple one or two line descriptionSolrDocumentFetchergetDocFetcher()DocListgetDocList(org.apache.lucene.search.Query query, List<org.apache.lucene.search.Query> filterList, org.apache.lucene.search.Sort lsort, int offset, int len, int flags)Deprecated.DocListgetDocList(org.apache.lucene.search.Query query, org.apache.lucene.search.Query filter, org.apache.lucene.search.Sort lsort, int offset, int len)Deprecated.DocListgetDocList(org.apache.lucene.search.Query query, DocSet filter, org.apache.lucene.search.Sort lsort, int offset, int len)Deprecated.DocListAndSetgetDocListAndSet(org.apache.lucene.search.Query query, List<org.apache.lucene.search.Query> filterList, org.apache.lucene.search.Sort lsort, int offset, int len)Deprecated.DocListAndSetgetDocListAndSet(org.apache.lucene.search.Query query, List<org.apache.lucene.search.Query> filterList, org.apache.lucene.search.Sort lsort, int offset, int len, int flags)Deprecated.DocListAndSetgetDocListAndSet(org.apache.lucene.search.Query query, org.apache.lucene.search.Query filter, org.apache.lucene.search.Sort lsort, int offset, int len)Deprecated.DocListAndSetgetDocListAndSet(org.apache.lucene.search.Query query, org.apache.lucene.search.Query filter, org.apache.lucene.search.Sort lsort, int offset, int len, int flags)Deprecated.DocListAndSetgetDocListAndSet(org.apache.lucene.search.Query query, DocSet filter, org.apache.lucene.search.Sort lsort, int offset, int len)Deprecated.DocListAndSetgetDocListAndSet(org.apache.lucene.search.Query query, DocSet filter, org.apache.lucene.search.Sort lsort, int offset, int len, int flags)Deprecated.DocSetgetDocSet(List<org.apache.lucene.search.Query> queries)Returns the set of document ids matching all queries.DocSetgetDocSet(org.apache.lucene.search.Query query)Returns the set of document ids matching both the query.DocSetgetDocSet(org.apache.lucene.search.Query query, DocSet filter)Returns the set of document ids matching both the query and the filter.DocSetgetDocSet(SolrIndexSearcher.DocsEnumState deState)BitDocSetgetDocSetBits(org.apache.lucene.search.Query q)protected DocSetgetDocSetNC(org.apache.lucene.search.Query query, DocSet filter)org.apache.lucene.index.FieldInfosgetFieldInfos()Iterable<String>getFieldNames()Returns a collection of all field names the index reader knows about.SolrCache<String,UnInvertedField>getFieldValueCache()expert: internal API, subject to changeSolrCache<org.apache.lucene.search.Query,DocSet>getFilterCache()intgetFirstMatch(org.apache.lucene.index.Term t)Returns the first document number containing the termtReturns -1 if no document was found.IndexFingerprintgetIndexFingerprint(long maxVersion)org.apache.lucene.index.DirectoryReadergetIndexReader()org.apache.lucene.util.BitsgetLiveDocsBits()Returns an efficient random-accessBitsof the live docs.BitDocSetgetLiveDocSet()Returns an efficient random-accessDocSetof the live docs.StringgetName()Simple common usage name, e.g.longgetOpenNanoTime()DategetOpenTimeStamp()StringgetPath()SolrIndexSearcher.ProcessedFiltergetProcessedFilter(DocSet setFilter, List<org.apache.lucene.search.Query> queries)INTERNAL: Processes conjunction (AND) of both args into aSolrIndexSearcher.ProcessedFilterresult.org.apache.lucene.index.DirectoryReadergetRawReader()Raw reader (no fieldcaches etc).IndexSchemagetSchema()Direct access to the IndexSchema for use with this searcherorg.apache.lucene.index.LeafReadergetSlowAtomicReader()Not recommended to call this method unless there is some particular reason due to internally callingSlowCompositeReaderWrapper.SolrMetricsContextgetSolrMetricsContext()Implementations should return the context used inSolrMetricProducer.initializeMetrics(SolrMetricsContext, String)to ensure proper cleanup of metrics at the end of the life-cycle of this component.StatsCachegetStatsCache()longgetWarmupTime()static ExecutorServiceinitCollectorExecutor(NodeConfig cfg)Create anExecutorServiceto be used by the LuceneIndexSearcher.getExecutor().voidinitializeMetrics(SolrMetricsContext parentContext, String scope)Initialize metrics specific to this producer.static voidinitRegenerators(SolrConfig solrConfig)<T> TinterrogateDocFetcher(Function<SolrDocumentFetcher,T> func)Allows interrogation ofdocFetchertemplate (checking field names, etc.) without forcing it to be cloned (as it would be if an instance were retrieved viagetDocFetcher()).booleanintersects(DocSet a, SolrIndexSearcher.DocsEnumState deState)booleanisCachingEnabled()org.apache.lucene.search.CollectionStatisticslocalCollectionStatistics(String field)org.apache.lucene.search.TermStatisticslocalTermStatistics(org.apache.lucene.index.Term term, int docFreq, long totalTermFreq)longlookupId(org.apache.lucene.util.BytesRef idBytes)lookup the docid by the unique key field, and return the id *within* the leaf reader in the low 32 bits, and the index of the leaf reader in the high 32 bits.intmaxDoc()intnumDocs()intnumDocs(org.apache.lucene.search.Query a, org.apache.lucene.search.Query b)Returns the number of documents that match bothaandb.intnumDocs(org.apache.lucene.search.Query a, DocSet b)Returns the number of documents that match bothaandb.intnumDocs(DocSet a, SolrIndexSearcher.DocsEnumState deState)BitDocSetofferLiveDocs(Supplier<DocSet> docSetSupplier, int suppliedSize)If some process external toSolrIndexSearcherhas produced a DocSet whose cardinality matches that of `liveDocs`, this method provides such caller the ability to offer its own DocSet to be cached in the searcher.voidregister()Register sub-objects such as caches and our own metricsprotected voidsearch(List<org.apache.lucene.index.LeafReaderContext> leaves, org.apache.lucene.search.Weight weight, org.apache.lucene.search.Collector collector)QueryResultsearch(QueryCommand cmd)Primary entrypoint for searching, using aQueryCommand.QueryResultsearch(QueryResult qr, QueryCommand cmd)Deprecated.protected voidsortDocSet(QueryResult qr, QueryCommand cmd)org.apache.lucene.search.TermStatisticstermStatistics(org.apache.lucene.index.Term term, int docFreq, long totalTermFreq)StringtoString()voidwarm(SolrIndexSearcher old)Warm this searcher based on an old one (primarily for auto-cache warming).org.apache.lucene.search.SortweightSort(org.apache.lucene.search.Sort sort)Returns a weighted sort according to this searcherSortSpecweightSortSpec(SortSpec originalSortSpec, org.apache.lucene.search.Sort nullEquivalent)Returns a weighted sort spec according to this searcher-
Methods inherited from class org.apache.lucene.search.IndexSearcher
count, createWeight, explain, getDefaultQueryCache, getDefaultQueryCachingPolicy, getDefaultSimilarity, getExecutor, getLeafContexts, getMaxClauseCount, getQueryCache, getQueryCachingPolicy, getSimilarity, getSlices, getTaskExecutor, getTimeout, getTopReaderContext, rewrite, search, search, search, search, search, searchAfter, searchAfter, searchAfter, searchLeaf, setDefaultQueryCache, setDefaultQueryCachingPolicy, setMaxClauseCount, setQueryCache, setQueryCachingPolicy, setSimilarity, setTimeout, slices, slices, storedFields, timedOut
-
-
-
-
Field Detail
-
STATS_SOURCE
public static final String STATS_SOURCE
- See Also:
- Constant Field Values
-
STATISTICS_KEY
public static final String STATISTICS_KEY
- See Also:
- Constant Field Values
-
numOpens
public static final AtomicLong numOpens
-
numCloses
public static final AtomicLong numCloses
-
EXECUTOR_MAX_CPU_THREADS
public static final int EXECUTOR_MAX_CPU_THREADS
-
NO_CHECK_QCACHE
public static final int NO_CHECK_QCACHE
- See Also:
- Constant Field Values
-
GET_DOCSET
public static final int GET_DOCSET
- See Also:
- Constant Field Values
-
TERMINATE_EARLY
public static final int TERMINATE_EARLY
- See Also:
- Constant Field Values
-
GET_DOCLIST
public static final int GET_DOCLIST
- See Also:
- Constant Field Values
-
GET_SCORES
public static final int GET_SCORES
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SolrIndexSearcher
public SolrIndexSearcher(SolrCore core, String path, IndexSchema schema, SolrIndexConfig config, String name, boolean enableCache, DirectoryFactory directoryFactory) throws IOException
- Throws:
IOException
-
SolrIndexSearcher
public SolrIndexSearcher(SolrCore core, String path, IndexSchema schema, String name, org.apache.lucene.index.DirectoryReader r, boolean closeReader, boolean enableCache, boolean reserveDirectory, DirectoryFactory directoryFactory) throws IOException
- Throws:
IOException
-
-
Method Detail
-
initCollectorExecutor
public static ExecutorService initCollectorExecutor(NodeConfig cfg)
Create anExecutorServiceto be used by the LuceneIndexSearcher.getExecutor(). Shared across the whole node because it's a machine CPU resource.
-
getDocFetcher
public SolrDocumentFetcher getDocFetcher()
-
interrogateDocFetcher
public <T> T interrogateDocFetcher(Function<SolrDocumentFetcher,T> func)
Allows interrogation ofdocFetchertemplate (checking field names, etc.) without forcing it to be cloned (as it would be if an instance were retrieved viagetDocFetcher()).
-
getStatsCache
public StatsCache getStatsCache()
-
getFieldInfos
public org.apache.lucene.index.FieldInfos getFieldInfos()
-
termStatistics
public org.apache.lucene.search.TermStatistics termStatistics(org.apache.lucene.index.Term term, int docFreq, long totalTermFreq) throws IOException- Overrides:
termStatisticsin classorg.apache.lucene.search.IndexSearcher- Throws:
IOException
-
collectionStatistics
public org.apache.lucene.search.CollectionStatistics collectionStatistics(String field) throws IOException
- Overrides:
collectionStatisticsin classorg.apache.lucene.search.IndexSearcher- Throws:
IOException
-
localTermStatistics
public org.apache.lucene.search.TermStatistics localTermStatistics(org.apache.lucene.index.Term term, int docFreq, long totalTermFreq) throws IOException- Throws:
IOException
-
localCollectionStatistics
public org.apache.lucene.search.CollectionStatistics localCollectionStatistics(String field) throws IOException
- Throws:
IOException
-
isCachingEnabled
public boolean isCachingEnabled()
-
getPath
public String getPath()
-
toString
public String toString()
- Overrides:
toStringin classorg.apache.lucene.search.IndexSearcher
-
getCore
public SolrCore getCore()
-
maxDoc
public final int maxDoc()
-
numDocs
public final int numDocs()
-
docFreq
public final int docFreq(org.apache.lucene.index.Term term) throws IOException- Throws:
IOException
-
getSlowAtomicReader
public final org.apache.lucene.index.LeafReader getSlowAtomicReader()
Not recommended to call this method unless there is some particular reason due to internally callingSlowCompositeReaderWrapper. UseIndexSearcher.leafContextsto get the sub readers instead of using this method.
-
getRawReader
public final org.apache.lucene.index.DirectoryReader getRawReader()
Raw reader (no fieldcaches etc). Useful for operations like addIndexes
-
getIndexReader
public final org.apache.lucene.index.DirectoryReader getIndexReader()
- Overrides:
getIndexReaderin classorg.apache.lucene.search.IndexSearcher
-
register
public void register()
Register sub-objects such as caches and our own metrics
-
close
public void close() throws IOExceptionFree's resources associated with this searcher.In particular, the underlying reader and any cache's in use are closed.
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceSolrMetricProducer- Throws:
IOException
-
getSchema
public IndexSchema getSchema()
Direct access to the IndexSchema for use with this searcher
-
getFieldNames
public Iterable<String> getFieldNames()
Returns a collection of all field names the index reader knows about.
-
initRegenerators
public static void initRegenerators(SolrConfig solrConfig)
-
search
public QueryResult search(QueryCommand cmd) throws IOException
Primary entrypoint for searching, using aQueryCommand.- Throws:
IOException
-
search
@Deprecated public QueryResult search(QueryResult qr, QueryCommand cmd) throws IOException
Deprecated.- Throws:
IOException
-
search
protected void search(List<org.apache.lucene.index.LeafReaderContext> leaves, org.apache.lucene.search.Weight weight, org.apache.lucene.search.Collector collector) throws IOException
- Overrides:
searchin classorg.apache.lucene.search.IndexSearcher- Throws:
IOException
-
doc
@Deprecated public org.apache.lucene.document.Document doc(int docId) throws IOException
Deprecated.Retrieve theDocumentinstance corresponding to the document id.- Overrides:
docin classorg.apache.lucene.search.IndexSearcher- Throws:
IOException- See Also:
SolrDocumentFetcher
-
doc
@Deprecated public final void doc(int docId, org.apache.lucene.index.StoredFieldVisitor visitor) throws IOException
Deprecated.Visit a document's fields using aStoredFieldVisitor. This method does not currently add to the Solr document cache.- Overrides:
docin classorg.apache.lucene.search.IndexSearcher- Throws:
IOException- See Also:
IndexReader.document(int, StoredFieldVisitor),SolrDocumentFetcher
-
doc
@Deprecated public final org.apache.lucene.document.Document doc(int i, Set<String> fields) throws IOException
Deprecated.Retrieve theDocumentinstance corresponding to the document id.NOTE: the document will have all fields accessible, but if a field filter is provided, only the provided fields will be loaded (the remainder will be available lazily).
- Overrides:
docin classorg.apache.lucene.search.IndexSearcher- Throws:
IOException- See Also:
SolrDocumentFetcher
-
getFieldValueCache
public SolrCache<String,UnInvertedField> getFieldValueCache()
expert: internal API, subject to change
-
weightSort
public org.apache.lucene.search.Sort weightSort(org.apache.lucene.search.Sort sort) throws IOExceptionReturns a weighted sort according to this searcher- Throws:
IOException
-
weightSortSpec
public SortSpec weightSortSpec(SortSpec originalSortSpec, org.apache.lucene.search.Sort nullEquivalent) throws IOException
Returns a weighted sort spec according to this searcher- Throws:
IOException
-
getFirstMatch
public int getFirstMatch(org.apache.lucene.index.Term t) throws IOExceptionReturns the first document number containing the termtReturns -1 if no document was found. This method is primarily intended for clients that want to fetch documents using a unique identifier."- Returns:
- the first document number containing the term
- Throws:
IOException
-
lookupId
public long lookupId(org.apache.lucene.util.BytesRef idBytes) throws IOExceptionlookup the docid by the unique key field, and return the id *within* the leaf reader in the low 32 bits, and the index of the leaf reader in the high 32 bits. -1 is returned if not found.- Throws:
IOException- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
cacheDocSet
public void cacheDocSet(org.apache.lucene.search.Query query, DocSet optionalAnswer, boolean mustCache) throws IOExceptionCompute and cache the DocSet that matches a query. The normal usage is expected to be cacheDocSet(myQuery, null,false) meaning that Solr will determine if the Query warrants caching, and if so, will compute the DocSet that matches the Query and cache it. If the answer to the query is already cached, nothing further will be done.If the optionalAnswer DocSet is provided, it should *not* be modified after this call.
- Parameters:
query- the lucene query that will act as the keyoptionalAnswer- the DocSet to be cached - if null, it will be computed.mustCache- if true, a best effort will be made to cache this entry. if false, heuristics may be used to determine if it should be cached.- Throws:
IOException
-
getDocSetBits
public BitDocSet getDocSetBits(org.apache.lucene.search.Query q) throws IOException
- Throws:
IOException
-
getLiveDocSet
public BitDocSet getLiveDocSet() throws IOException
Returns an efficient random-accessDocSetof the live docs. It's cached. Never null.- Throws:
IOException- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
- the type of DocSet returned may change in the future
-
getLiveDocsBits
public org.apache.lucene.util.Bits getLiveDocsBits() throws IOExceptionReturns an efficient random-accessBitsof the live docs. It's cached. Null means all docs are live. Use this likeLeafReader.getLiveDocs().- Throws:
IOException- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
offerLiveDocs
public BitDocSet offerLiveDocs(Supplier<DocSet> docSetSupplier, int suppliedSize)
If some process external toSolrIndexSearcherhas produced a DocSet whose cardinality matches that of `liveDocs`, this method provides such caller the ability to offer its own DocSet to be cached in the searcher. The caller should then use the returned value (which may or may not be derived from the DocSet instance supplied), allowing more efficient memory use.- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
getDocSet
public DocSet getDocSet(List<org.apache.lucene.search.Query> queries) throws IOException
Returns the set of document ids matching all queries. This method is cache-aware and attempts to retrieve the answer from the cache if possible. If the answer was not cached, it may have been inserted into the cache as a result of this call. This method can handle negative queries. A null/empty list results ingetLiveDocSet().The DocSet returned should not be modified.
- Throws:
IOException
-
getProcessedFilter
public SolrIndexSearcher.ProcessedFilter getProcessedFilter(DocSet setFilter, List<org.apache.lucene.search.Query> queries) throws IOException
INTERNAL: Processes conjunction (AND) of both args into aSolrIndexSearcher.ProcessedFilterresult. Either arg may be null/empty thus doesn't restrict the matching docs. Queries typically are resolved against the filter cache, and populate it.- Throws:
IOException
-
getDocSet
public DocSet getDocSet(SolrIndexSearcher.DocsEnumState deState) throws IOException
- Throws:
IOException- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
getDocSetNC
protected DocSet getDocSetNC(org.apache.lucene.search.Query query, DocSet filter) throws IOException
- Throws:
IOException
-
getDocSet
public DocSet getDocSet(org.apache.lucene.search.Query query) throws IOException
Returns the set of document ids matching both the query. This method is cache-aware and attempts to retrieve a DocSet of the query from the cache if possible. If the answer was not cached, it may have been inserted into the cache as a result of this call.- Returns:
- Non-null DocSet meeting the specified criteria. Should not be modified by the caller.
- Throws:
IOException- See Also:
getDocSet(Query,DocSet)
-
getDocSet
public DocSet getDocSet(org.apache.lucene.search.Query query, DocSet filter) throws IOException
Returns the set of document ids matching both the query and the filter. This method is cache-aware and attempts to retrieve a DocSet of the query from the cache if possible. If the answer was not cached, it may have been inserted into the cache as a result of this call.- Parameters:
filter- may be null if none- Returns:
- Non-null DocSet meeting the specified criteria. Should not be modified by the caller.
- Throws:
IOException
-
getDocList
@Deprecated public DocList getDocList(org.apache.lucene.search.Query query, org.apache.lucene.search.Query filter, org.apache.lucene.search.Sort lsort, int offset, int len) throws IOException
Deprecated.Returns documents matching bothqueryandfilterand sorted bysort.This method is cache aware and may retrieve
filterfrom the cache or make an insertion into the cache as a result of this call.FUTURE: The returned DocList may be retrieved from a cache.
- Parameters:
filter- may be nulllsort- criteria by which to sort (if null, query relevance is used)offset- offset into the list of documents to returnlen- maximum number of documents to return- Returns:
- DocList meeting the specified criteria, should not be modified by the caller.
- Throws:
IOException- If there is a low-level I/O error.
-
getDocList
@Deprecated public DocList getDocList(org.apache.lucene.search.Query query, List<org.apache.lucene.search.Query> filterList, org.apache.lucene.search.Sort lsort, int offset, int len, int flags) throws IOException
Deprecated.Returns documents matching bothqueryand the intersection of thefilterList, sorted bysort.This method is cache aware and may retrieve
filterfrom the cache or make an insertion into the cache as a result of this call.FUTURE: The returned DocList may be retrieved from a cache.
- Parameters:
filterList- may be nulllsort- criteria by which to sort (if null, query relevance is used)offset- offset into the list of documents to returnlen- maximum number of documents to return- Returns:
- DocList meeting the specified criteria, should not be modified by the caller.
- Throws:
IOException- If there is a low-level I/O error.
-
getDocList
@Deprecated public DocList getDocList(org.apache.lucene.search.Query query, DocSet filter, org.apache.lucene.search.Sort lsort, int offset, int len) throws IOException
Deprecated.Returns documents matching bothqueryandfilterand sorted bysort. FUTURE: The returned DocList may be retrieved from a cache.- Parameters:
filter- may be nulllsort- criteria by which to sort (if null, query relevance is used)offset- offset into the list of documents to returnlen- maximum number of documents to return- Returns:
- DocList meeting the specified criteria, should not be modified by the caller.
- Throws:
IOException- If there is a low-level I/O error.
-
getDocListAndSet
@Deprecated public DocListAndSet getDocListAndSet(org.apache.lucene.search.Query query, org.apache.lucene.search.Query filter, org.apache.lucene.search.Sort lsort, int offset, int len) throws IOException
Deprecated.Returns documents matching bothqueryandfilterand sorted bysort. Also returns the complete set of documents matchingqueryandfilter(regardless ofoffsetandlen).This method is cache aware and may retrieve
filterfrom the cache or make an insertion into the cache as a result of this call.FUTURE: The returned DocList may be retrieved from a cache.
The DocList and DocSet returned should not be modified.
- Parameters:
filter- may be nulllsort- criteria by which to sort (if null, query relevance is used)offset- offset into the list of documents to returnlen- maximum number of documents to return- Returns:
- DocListAndSet meeting the specified criteria, should not be modified by the caller.
- Throws:
IOException- If there is a low-level I/O error.
-
getDocListAndSet
@Deprecated public DocListAndSet getDocListAndSet(org.apache.lucene.search.Query query, org.apache.lucene.search.Query filter, org.apache.lucene.search.Sort lsort, int offset, int len, int flags) throws IOException
Deprecated.Returns documents matching bothqueryandfilterand sorted bysort. Also returns the compete set of documents matchingqueryandfilter(regardless ofoffsetandlen).This method is cache aware and may retrieve
filterfrom the cache or make an insertion into the cache as a result of this call.FUTURE: The returned DocList may be retrieved from a cache.
The DocList and DocSet returned should not be modified.
- Parameters:
filter- may be nulllsort- criteria by which to sort (if null, query relevance is used)offset- offset into the list of documents to returnlen- maximum number of documents to returnflags- user supplied flags for the result set- Returns:
- DocListAndSet meeting the specified criteria, should not be modified by the caller.
- Throws:
IOException- If there is a low-level I/O error.
-
getDocListAndSet
@Deprecated public DocListAndSet getDocListAndSet(org.apache.lucene.search.Query query, List<org.apache.lucene.search.Query> filterList, org.apache.lucene.search.Sort lsort, int offset, int len) throws IOException
Deprecated.Returns documents matching bothqueryand the intersection offilterList, sorted bysort. Also returns the compete set of documents matchingqueryandfilter(regardless ofoffsetandlen).This method is cache aware and may retrieve
filterfrom the cache or make an insertion into the cache as a result of this call.FUTURE: The returned DocList may be retrieved from a cache.
The DocList and DocSet returned should not be modified.
- Parameters:
filterList- may be nulllsort- criteria by which to sort (if null, query relevance is used)offset- offset into the list of documents to returnlen- maximum number of documents to return- Returns:
- DocListAndSet meeting the specified criteria, should not be modified by the caller.
- Throws:
IOException- If there is a low-level I/O error.
-
getDocListAndSet
@Deprecated public DocListAndSet getDocListAndSet(org.apache.lucene.search.Query query, List<org.apache.lucene.search.Query> filterList, org.apache.lucene.search.Sort lsort, int offset, int len, int flags) throws IOException
Deprecated.Returns documents matching bothqueryand the intersection offilterList, sorted bysort. Also returns the compete set of documents matchingqueryandfilter(regardless ofoffsetandlen).This method is cache aware and may retrieve
filterfrom the cache or make an insertion into the cache as a result of this call.FUTURE: The returned DocList may be retrieved from a cache.
The DocList and DocSet returned should not be modified.
- Parameters:
filterList- may be nulllsort- criteria by which to sort (if null, query relevance is used)offset- offset into the list of documents to returnlen- maximum number of documents to returnflags- user supplied flags for the result set- Returns:
- DocListAndSet meeting the specified criteria, should not be modified by the caller.
- Throws:
IOException- If there is a low-level I/O error.
-
getDocListAndSet
@Deprecated public DocListAndSet getDocListAndSet(org.apache.lucene.search.Query query, DocSet filter, org.apache.lucene.search.Sort lsort, int offset, int len) throws IOException
Deprecated.Returns documents matching bothqueryandfilterand sorted bysort. Also returns the compete set of documents matchingqueryandfilter(regardless ofoffsetandlen).FUTURE: The returned DocList may be retrieved from a cache.
- Parameters:
filter- may be nulllsort- criteria by which to sort (if null, query relevance is used)offset- offset into the list of documents to returnlen- maximum number of documents to return- Returns:
- DocListAndSet meeting the specified criteria, should not be modified by the caller.
- Throws:
IOException- If there is a low-level I/O error.
-
getDocListAndSet
@Deprecated public DocListAndSet getDocListAndSet(org.apache.lucene.search.Query query, DocSet filter, org.apache.lucene.search.Sort lsort, int offset, int len, int flags) throws IOException
Deprecated.Returns documents matching bothqueryandfilterand sorted bysort. Also returns the compete set of documents matchingqueryandfilter(regardless ofoffsetandlen).This method is cache aware and may make an insertion into the cache as a result of this call.
FUTURE: The returned DocList may be retrieved from a cache.
The DocList and DocSet returned should not be modified.
- Parameters:
filter- may be nulllsort- criteria by which to sort (if null, query relevance is used)offset- offset into the list of documents to returnlen- maximum number of documents to returnflags- user supplied flags for the result set- Returns:
- DocListAndSet meeting the specified criteria, should not be modified by the caller.
- Throws:
IOException- If there is a low-level I/O error.
-
sortDocSet
protected void sortDocSet(QueryResult qr, QueryCommand cmd) throws IOException
- Throws:
IOException
-
numDocs
public int numDocs(org.apache.lucene.search.Query a, DocSet b) throws IOExceptionReturns the number of documents that match bothaandb.This method is cache-aware and may check as well as modify the cache.
- Returns:
- the number of documents in the intersection between
aandb. - Throws:
IOException- If there is a low-level I/O error.
-
numDocs
public int numDocs(DocSet a, SolrIndexSearcher.DocsEnumState deState) throws IOException
- Throws:
IOException- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
numDocs
public int numDocs(org.apache.lucene.search.Query a, org.apache.lucene.search.Query b) throws IOExceptionReturns the number of documents that match bothaandb.This method is cache-aware and may check as well as modify the cache.
- Returns:
- the number of documents in the intersection between
aandb. - Throws:
IOException- If there is a low-level I/O error.
-
intersects
public boolean intersects(DocSet a, SolrIndexSearcher.DocsEnumState deState) throws IOException
- Throws:
IOException- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
bootstrapFirstSearcher
public void bootstrapFirstSearcher()
Called on the initial searcher for each core, immediately beforefirstSearcherListenersare called for the searcher. This provides the opportunity to perform initialization on the first registered searcher before the searcher begins to see anyfirstSearcher-triggered events.
-
warm
public void warm(SolrIndexSearcher old)
Warm this searcher based on an old one (primarily for auto-cache warming).
-
cacheLookup
public Object cacheLookup(String cacheName, Object key)
lookup an entry in a generic cache
-
cacheInsert
public Object cacheInsert(String cacheName, Object key, Object val)
insert an entry in a generic cache
-
getOpenTimeStamp
public Date getOpenTimeStamp()
-
getOpenNanoTime
public long getOpenNanoTime()
-
explain
public org.apache.lucene.search.Explanation explain(org.apache.lucene.search.Query query, int doc) throws IOException- Overrides:
explainin classorg.apache.lucene.search.IndexSearcher- Throws:
IOException
-
getIndexFingerprint
public IndexFingerprint getIndexFingerprint(long maxVersion) throws IOException
- Throws:
IOException- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
- gets a cached version of the IndexFingerprint for this searcher
-
getName
public String getName()
Description copied from interface:SolrInfoBeanSimple common usage name, e.g. BasicQueryHandler, or fully qualified class name.- Specified by:
getNamein interfaceSolrInfoBean
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBeanSimple one or two line description- Specified by:
getDescriptionin interfaceSolrInfoBean
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBeanCategory of this component- Specified by:
getCategoryin interfaceSolrInfoBean
-
getSolrMetricsContext
public SolrMetricsContext getSolrMetricsContext()
Description copied from interface:SolrMetricProducerImplementations should return the context used inSolrMetricProducer.initializeMetrics(SolrMetricsContext, String)to ensure proper cleanup of metrics at the end of the life-cycle of this component. This should be the child context if one was created, or null if the parent context was used.- Specified by:
getSolrMetricsContextin interfaceSolrMetricProducer
-
initializeMetrics
public void initializeMetrics(SolrMetricsContext parentContext, String scope)
Description copied from interface:SolrMetricProducerInitialize metrics specific to this producer.- Specified by:
initializeMetricsin interfaceSolrMetricProducer- Parameters:
parentContext- parent metrics context. If this component has the same life-cycle as the parent it can simply use the parent context, otherwise it should obtain a child context usingSolrMetricsContext.getChildContext(Object)passingthisas the child object.scope- component scope
-
getWarmupTime
public long getWarmupTime()
-
-