Package org.apache.lucene.monitor

# Class QueryTree

java.lang.Object
org.apache.lucene.monitor.QueryTree

public abstract class QueryTree extends Object
A representation of a node in a query tree

Queries are analyzed and converted into an abstract tree, consisting of conjunction and disjunction nodes, and leaf nodes containing terms.

Terms may be collected from a node, which will use the weights of its sub-nodes to determine which paths are followed. The path may be changed by calling `advancePhase(double)`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `QueryTree()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract boolean`
  `advancePhase(double minWeight)`
  Find the next-most highly-weighted path below this node
  `static QueryTree`
  `anyTerm(String reason)`
  Returns a leaf node that will match any document
  `abstract void`
  `collectTerms(BiConsumer<String,BytesRef> termCollector)`
  Collect terms from the most highly-weighted path below this node
  `static QueryTree`
  `conjunction(List<Function<TermWeightor,QueryTree>> children, TermWeightor weightor)`
  Returns a conjunction of a set of child nodes
  `static QueryTree`
  `disjunction(List<Function<TermWeightor,QueryTree>> children, TermWeightor weightor)`
  Returns a disjunction of a set of child nodes
  `protected String`
  `space(int width)`
  Returns a string of `width` spaces
  `static QueryTree`
  `term(String field, BytesRef term, double weight)`
  Returns a leaf node for a particular term and weight
  `static QueryTree`
  `term(Term term, double weight)`
  Returns a leaf node for a particular term and weight
  `static QueryTree`
  `term(Term term, TermWeightor weightor)`
  Returns a leaf node for a particular term
  `String`
  `toString()`
  `abstract String`
  `toString(int depth)`
  Returns a string representation of the node
  `abstract double`
  `weight()`
  The weight of this node

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### QueryTree

    public QueryTree()

- ## Method Details

  - ### weight

    public abstract double weight()
    The weight of this node

  - ### collectTerms

    public abstract void collectTerms(BiConsumer<String,BytesRef> termCollector)
    Collect terms from the most highly-weighted path below this node

  - ### advancePhase

    public abstract boolean advancePhase(double minWeight)
    Find the next-most highly-weighted path below this node
    Parameters:
      `minWeight` - do not advance if the next path has a weight below this value
    Returns:
      `false` if there are no more paths above the minimum weight

  - ### toString

    public abstract String toString(int depth)
    Returns a string representation of the node
    Parameters:
      `depth` - the current depth of this node in the overall query tree

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### space

    protected String space(int width)
    Returns a string of `width` spaces

  - ### term

    public static QueryTree term(Term term, TermWeightor weightor)
    Returns a leaf node for a particular term

  - ### term

    public static QueryTree term(Term term, double weight)
    Returns a leaf node for a particular term and weight

    The weight must be greater than 0

  - ### term

    public static QueryTree term(String field, BytesRef term, double weight)
    Returns a leaf node for a particular term and weight

    The weight must be greater than 0

  - ### anyTerm

    public static QueryTree anyTerm(String reason)
    Returns a leaf node that will match any document

  - ### conjunction

    public static QueryTree conjunction(List<Function<TermWeightor,QueryTree>> children, TermWeightor weightor)
    Returns a conjunction of a set of child nodes

  - ### disjunction

    public static QueryTree disjunction(List<Function<TermWeightor,QueryTree>> children, TermWeightor weightor)
    Returns a disjunction of a set of child nodes