Class QueryVisitor

java.lang.Object
org.apache.lucene.search.QueryVisitor

public abstract class QueryVisitor extends Object
Allows recursion through a query tree
See Also:
  • Field Details

    • EMPTY_VISITOR

      public static final QueryVisitor EMPTY_VISITOR
      A QueryVisitor implementation that does nothing
  • Constructor Details

    • QueryVisitor

      public QueryVisitor()
  • Method Details

    • consumeTerms

      public void consumeTerms(Query query, Term... terms)
      Called by leaf queries that match on specific terms
      Parameters:
      query - the leaf query
      terms - the terms the query will match on
    • consumeTermsMatching

      public void consumeTermsMatching(Query query, String field, Supplier<ByteRunAutomaton> automaton)
      Called by leaf queries that match on a class of terms
      Parameters:
      query - the leaf query
      field - the field queried against
      automaton - a supplier for an automaton defining which terms match
      WARNING: This API is experimental and might change in incompatible ways in the next release.
    • visitLeaf

      public void visitLeaf(Query query)
      Called by leaf queries that do not match on terms
      Parameters:
      query - the query
    • acceptField

      public boolean acceptField(String field)
      Whether or not terms from this field are of interest to the visitor

      Implement this to avoid collecting terms from heavy queries such as TermInSetQuery that are not running on fields of interest

    • getSubVisitor

      public QueryVisitor getSubVisitor(BooleanClause.Occur occur, Query parent)
      Pulls a visitor instance for visiting child clauses of a query

      The default implementation returns this, unless occur is equal to BooleanClause.Occur.MUST_NOT in which case it returns EMPTY_VISITOR

      Parameters:
      occur - the relationship between the parent and its children
      parent - the query visited
    • termCollector

      public static QueryVisitor termCollector(Set<Term> termSet)
      Builds a QueryVisitor instance that collects all terms that may match a query
      Parameters:
      termSet - a Set to add collected terms to