|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.lucene.search.Query org.apache.lucene.search.FilteredQuery
public class FilteredQuery
A query that applies a filter to the results of another query.
Note: the bits are retrieved from the filter each time this query is used in a search - use a CachingWrapperFilter to avoid regenerating the bits every time.
CachingWrapperFilter
Nested Class Summary | |
---|---|
static class |
FilteredQuery.FilterStrategy
Abstract class that defines how the filter ( DocIdSet ) applied during document collection. |
static class |
FilteredQuery.RandomAccessFilterStrategy
A FilteredQuery.FilterStrategy that conditionally uses a random access filter if
the given DocIdSet supports random access (returns a non-null value
from DocIdSet.bits() ) and
FilteredQuery.RandomAccessFilterStrategy.useRandomAccess(Bits, int) returns
true . |
Field Summary | |
---|---|
static FilteredQuery.FilterStrategy |
LEAP_FROG_FILTER_FIRST_STRATEGY
A filter strategy that uses a "leap-frog" approach (also called "zig-zag join"). |
static FilteredQuery.FilterStrategy |
LEAP_FROG_QUERY_FIRST_STRATEGY
A filter strategy that uses a "leap-frog" approach (also called "zig-zag join"). |
static FilteredQuery.FilterStrategy |
QUERY_FIRST_FILTER_STRATEGY
A filter strategy that advances the Query or rather its Scorer first and consults the
filter DocIdSet for each matched document. |
static FilteredQuery.FilterStrategy |
RANDOM_ACCESS_FILTER_STRATEGY
A FilteredQuery.FilterStrategy that conditionally uses a random access filter if
the given DocIdSet supports random access (returns a non-null value
from DocIdSet.bits() ) and
FilteredQuery.RandomAccessFilterStrategy.useRandomAccess(Bits, int) returns
true . |
Constructor Summary | |
---|---|
FilteredQuery(Query query,
Filter filter)
Constructs a new query which applies a filter to the results of the original query. |
|
FilteredQuery(Query query,
Filter filter,
FilteredQuery.FilterStrategy strategy)
Expert: Constructs a new query which applies a filter to the results of the original query. |
Method Summary | |
---|---|
Weight |
createWeight(IndexSearcher searcher)
Returns a Weight that applies the filter to the enclosed query's Weight. |
boolean |
equals(Object o)
Returns true iff o is equal to this. |
void |
extractTerms(Set<Term> terms)
Expert: adds all terms occurring in this query to the terms set. |
Filter |
getFilter()
Returns this FilteredQuery's filter |
FilteredQuery.FilterStrategy |
getFilterStrategy()
Returns this FilteredQuery's FilteredQuery.FilterStrategy |
Query |
getQuery()
Returns this FilteredQuery's (unfiltered) Query |
int |
hashCode()
Returns a hash code value for this object. |
Query |
rewrite(IndexReader reader)
Rewrites the query. |
String |
toString(String s)
Prints a user-readable version of this query. |
Methods inherited from class org.apache.lucene.search.Query |
---|
clone, getBoost, setBoost, toString |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final FilteredQuery.FilterStrategy RANDOM_ACCESS_FILTER_STRATEGY
FilteredQuery.FilterStrategy
that conditionally uses a random access filter if
the given DocIdSet
supports random access (returns a non-null value
from DocIdSet.bits()
) and
FilteredQuery.RandomAccessFilterStrategy.useRandomAccess(Bits, int)
returns
true
. Otherwise this strategy falls back to a "zig-zag join" (
LEAP_FROG_FILTER_FIRST_STRATEGY
) strategy.
Note: this strategy is the default strategy in FilteredQuery
public static final FilteredQuery.FilterStrategy LEAP_FROG_FILTER_FIRST_STRATEGY
Note: This strategy uses the filter to lead the iteration.
public static final FilteredQuery.FilterStrategy LEAP_FROG_QUERY_FIRST_STRATEGY
Note: This strategy uses the query to lead the iteration.
public static final FilteredQuery.FilterStrategy QUERY_FIRST_FILTER_STRATEGY
Scorer
first and consults the
filter DocIdSet
for each matched document.
Note: this strategy requires a DocIdSet.bits()
to return a non-null value. Otherwise
this strategy falls back to LEAP_FROG_QUERY_FIRST_STRATEGY
Use this strategy if the filter computation is more expensive than document scoring or if the filter has a linear running time to compute the next matching doc like exact geo distances.
Constructor Detail |
---|
public FilteredQuery(Query query, Filter filter)
Filter.getDocIdSet(org.apache.lucene.index.AtomicReaderContext, org.apache.lucene.util.Bits)
will be called every time this query is used in a search.
query
- Query to be filtered, cannot be null
.filter
- Filter to apply to query results, cannot be null
.public FilteredQuery(Query query, Filter filter, FilteredQuery.FilterStrategy strategy)
Filter.getDocIdSet(org.apache.lucene.index.AtomicReaderContext, org.apache.lucene.util.Bits)
will be called every time this query is used in a search.
query
- Query to be filtered, cannot be null
.filter
- Filter to apply to query results, cannot be null
.strategy
- a filter strategy used to create a filtered scorer.FilteredQuery.FilterStrategy
Method Detail |
---|
public Weight createWeight(IndexSearcher searcher) throws IOException
createWeight
in class Query
IOException
public Query rewrite(IndexReader reader) throws IOException
MatchAllDocsQuery
it returns a ConstantScoreQuery
. Otherwise
it returns a new FilteredQuery
wrapping the rewritten query.
rewrite
in class Query
IOException
public final Query getQuery()
public final Filter getFilter()
public FilteredQuery.FilterStrategy getFilterStrategy()
FilteredQuery.FilterStrategy
public void extractTerms(Set<Term> terms)
Query
rewritten
form.
extractTerms
in class Query
public String toString(String s)
toString
in class Query
public boolean equals(Object o)
o
is equal to this.
equals
in class Query
public int hashCode()
hashCode
in class Query
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |