Class LuceneOptimizedIndexSearcher
java.lang.Object
org.apache.lucene.search.IndexSearcher
com.apple.foundationdb.record.lucene.search.LuceneOptimizedIndexSearcher
public class LuceneOptimizedIndexSearcher
extends org.apache.lucene.search.IndexSearcher
This class optimizes the current IndexSearcher and attempts to perform operations in parallel in places where
data access can occur.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.search.IndexSearcher
org.apache.lucene.search.IndexSearcher.LeafSlice -
Field Summary
Fields inherited from class org.apache.lucene.search.IndexSearcher
leafContexts, readerContext -
Constructor Summary
ConstructorsConstructorDescriptionLuceneOptimizedIndexSearcher(org.apache.lucene.index.IndexReader r) LuceneOptimizedIndexSearcher(org.apache.lucene.index.IndexReader r, Executor executor) -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.lucene.search.WeightcreateWeight(org.apache.lucene.search.Query query, org.apache.lucene.search.ScoreMode scoreMode, float boost) This overridden call will attempt to cache the relevant terms low level blocks in the case where we need scores.voidsearch(org.apache.lucene.search.Query query, org.apache.lucene.search.Collector results) Lower-level search API.<C extends org.apache.lucene.search.Collector,T>
Tsearch(org.apache.lucene.search.Query query, org.apache.lucene.search.CollectorManager<C, T> collectorManager) Lower-level search API.Methods inherited from class org.apache.lucene.search.IndexSearcher
collectionStatistics, count, doc, doc, doc, explain, explain, getDefaultQueryCache, getDefaultQueryCachingPolicy, getDefaultSimilarity, getExecutor, getIndexReader, getQueryCache, getQueryCachingPolicy, getSimilarity, getSlices, getTopReaderContext, rewrite, search, search, search, search, searchAfter, searchAfter, searchAfter, setDefaultQueryCache, setDefaultQueryCachingPolicy, setQueryCache, setQueryCachingPolicy, setSimilarity, slices, termStatistics, termStatistics, toString
-
Constructor Details
-
LuceneOptimizedIndexSearcher
public LuceneOptimizedIndexSearcher(org.apache.lucene.index.IndexReader r) -
LuceneOptimizedIndexSearcher
-
-
Method Details
-
search
public void search(org.apache.lucene.search.Query query, org.apache.lucene.search.Collector results) throws IOException Lower-level search API.LeafCollector.collect(int)is called for every matching document.- Overrides:
searchin classorg.apache.lucene.search.IndexSearcher- Throws:
org.apache.lucene.search.BooleanQuery.TooManyClauses- If a query would exceedBooleanQuery.getMaxClauseCount()clauses.IOException
-
search
public <C extends org.apache.lucene.search.Collector,T> T search(org.apache.lucene.search.Query query, org.apache.lucene.search.CollectorManager<C, T> collectorManager) throws IOExceptionLower-level search API. This is optimized into an attempt to parallelize database access in FDB, for each collector incollectorManager.LeafCollector.collect(int)is called for every document.
NOTE: this method executes the searches on all given leaves exclusively. To search across all the searchers leaves use
IndexSearcher.leafContexts.most of this code is copied verbatim from
IndexSearcher.search(Query, CollectorManager), the refactored code is, as explained above, takes care of parallelizing database access in FDB for each collector incollectorManager.- Overrides:
searchin classorg.apache.lucene.search.IndexSearcher- Parameters:
query- the search querycollectorManager- manager of collectors that receive hits- Throws:
IOException
-
createWeight
public org.apache.lucene.search.Weight createWeight(org.apache.lucene.search.Query query, org.apache.lucene.search.ScoreMode scoreMode, float boost) throws IOException This overridden call will attempt to cache the relevant terms low level blocks in the case where we need scores.- Overrides:
createWeightin classorg.apache.lucene.search.IndexSearcher- Parameters:
query- query implementationscoreMode- mode for scoringboost- boost for scores- Returns:
- Weight of query
- Throws:
IOException- IOException
-