Class FilteredQuery

  • All Implemented Interfaces:
    Serializable, Cloneable

    public class FilteredQuery
    extends Query
    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.

    Created: Apr 20, 2004 8:58:29 AM

    Since:
    1.4
    See Also:
    CachingWrapperFilter, Serialized Form
    • Constructor Detail

      • FilteredQuery

        public FilteredQuery​(Query query,
                             Filter filter)
        Constructs a new query which applies a filter to the results of the original query. Filter.getDocIdSet() will be called every time this query is used in a search.
        Parameters:
        query - Query to be filtered, cannot be null.
        filter - Filter to apply to query results, cannot be null.
    • Method Detail

      • createWeight

        public Weight createWeight​(Searcher searcher)
                            throws IOException
        Returns a Weight that applies the filter to the enclosed query's Weight. This is accomplished by overriding the Scorer returned by the Weight.
        Overrides:
        createWeight in class Query
        Throws:
        IOException
      • getQuery

        public Query getQuery()
      • getFilter

        public Filter getFilter()
      • extractTerms

        public void extractTerms​(Set<Term> terms)
        Description copied from class: Query
        Expert: adds all terms occurring in this query to the terms set. Only works if this query is in its rewritten form.
        Overrides:
        extractTerms in class Query
      • toString

        public String toString​(String s)
        Prints a user-readable version of this query.
        Specified by:
        toString in class Query
      • equals

        public boolean equals​(Object o)
        Returns true iff o is equal to this.
        Overrides:
        equals in class Query
      • hashCode

        public int hashCode()
        Returns a hash code value for this object.
        Overrides:
        hashCode in class Query