Class BooleanQuery

  • All Implemented Interfaces:
    java.lang.Iterable<BooleanClause>

    public class BooleanQuery
    extends Query
    implements java.lang.Iterable<BooleanClause>
    A Query that matches documents matching boolean combinations of other queries, e.g. TermQuerys, PhraseQuerys or other BooleanQuerys.
    • Field Detail

      • minimumNumberShouldMatch

        private final int minimumNumberShouldMatch
      • hashCode

        private int hashCode
    • Constructor Detail

      • BooleanQuery

        private BooleanQuery​(int minimumNumberShouldMatch,
                             BooleanClause[] clauses)
    • Method Detail

      • setMaxClauseCount

        @Deprecated
        public static void setMaxClauseCount​(int maxClauseCount)
        Set the maximum number of clauses permitted per BooleanQuery. Default value is 1024.
      • getMinimumNumberShouldMatch

        public int getMinimumNumberShouldMatch()
        Gets the minimum number of the optional BooleanClauses which must be satisfied.
      • isPureDisjunction

        boolean isPureDisjunction()
        Whether this query is a pure disjunction, ie. it only has SHOULD clauses and it is enough for a single clause to match for this boolean query to match.
      • iterator

        public final java.util.Iterator<BooleanClause> iterator()
        Returns an iterator on the clauses in this query. It implements the Iterable interface to make it possible to do:
        for (BooleanClause clause : booleanQuery) {}
        Specified by:
        iterator in interface java.lang.Iterable<BooleanClause>
      • rewriteNoScoring

        BooleanQuery rewriteNoScoring​(IndexReader reader)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • createWeight

        public Weight createWeight​(IndexSearcher searcher,
                                   ScoreMode scoreMode,
                                   float boost)
                            throws java.io.IOException
        Description copied from class: Query
        Expert: Constructs an appropriate Weight implementation for this query.

        Only implemented by primitive queries, which re-write to themselves.

        Overrides:
        createWeight in class Query
        scoreMode - How the produced scorers will be consumed.
        boost - The boost that is propagated by the parent queries.
        Throws:
        java.io.IOException
      • rewrite

        public Query rewrite​(IndexReader reader)
                      throws java.io.IOException
        Description copied from class: Query
        Expert: called to re-write queries into primitive queries. For example, a PrefixQuery will be rewritten into a BooleanQuery that consists of TermQuerys.

        Callers are expected to call rewrite multiple times if necessary, until the rewritten query is the same as the original query.

        Overrides:
        rewrite in class Query
        Throws:
        java.io.IOException
        See Also:
        IndexSearcher.rewrite(Query)
      • visit

        public void visit​(QueryVisitor visitor)
        Description copied from class: Query
        Recurse through the query tree, visiting any child queries
        Specified by:
        visit in class Query
        Parameters:
        visitor - a QueryVisitor to be called by each query in the tree
      • toString

        public java.lang.String toString​(java.lang.String field)
        Prints a user-readable version of this query.
        Specified by:
        toString in class Query
      • equalsTo

        private boolean equalsTo​(BooleanQuery other)
      • computeHashCode

        private int computeHashCode()
      • hashCode

        public int hashCode()
        Description copied from class: Query
        Override and implement query hash code properly in a subclass. This is required so that QueryCache works properly.
        Specified by:
        hashCode in class Query
        See Also:
        Query.equals(Object)