Class CachingEnableFilterQuery
Lucene uses heuristics to determine whether a query should be cached (UsageTrackingQueryCachingPolicy),
and some queries may be skipped if they are considered too cheap or otherwise uninteresting for caching.
Wrapping a query in CachingEnableFilterQuery guarantees that it will be treated as
cacheable by the query cache.
This wrapper does not alter the scoring or filtering semantics of the inner query. It only changes how the query cache perceives it, by making it always considered interesting enough to cache.
This is particularly useful in cases where the filter is always entirely consumed, such as filtered vector search, where the filter is transformed into a bitset eagerly. In these scenarios, caching the filter query can significantly improve performance and avoid recomputation.
Example usage:
Query inner = new TermQuery(new Term("field", "value"));
Query cacheable = new CacheWrapperQuery(inner);
TopDocs results = searcher.search(cacheable, 10);
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.lucene.search.WeightcreateWeight(org.apache.lucene.search.IndexSearcher searcher, org.apache.lucene.search.ScoreMode scoreMode, float boost) booleaninthashCode()org.apache.lucene.search.Queryrewrite(org.apache.lucene.search.IndexSearcher indexSearcher) voidvisit(org.apache.lucene.search.QueryVisitor visitor) Methods inherited from class org.apache.lucene.search.Query
classHash, sameClassAs, toString
-
Constructor Details
-
CachingEnableFilterQuery
public CachingEnableFilterQuery(org.apache.lucene.search.Query in)
-
-
Method Details
-
createWeight
public org.apache.lucene.search.Weight createWeight(org.apache.lucene.search.IndexSearcher searcher, org.apache.lucene.search.ScoreMode scoreMode, float boost) throws IOException - Overrides:
createWeightin classorg.apache.lucene.search.Query- Throws:
IOException
-
rewrite
public org.apache.lucene.search.Query rewrite(org.apache.lucene.search.IndexSearcher indexSearcher) throws IOException - Overrides:
rewritein classorg.apache.lucene.search.Query- Throws:
IOException
-
toString
- Specified by:
toStringin classorg.apache.lucene.search.Query
-
visit
public void visit(org.apache.lucene.search.QueryVisitor visitor) - Specified by:
visitin classorg.apache.lucene.search.Query
-
equals
- Specified by:
equalsin classorg.apache.lucene.search.Query
-
hashCode
public int hashCode()- Specified by:
hashCodein classorg.apache.lucene.search.Query
-