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 and Description
`QueryTree()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`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 The weight must be greater than 0
`static QueryTree` `term(Term term, double weight)` Returns a leaf node for a particular term and weight The weight must be greater than 0
`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 Detail

#### QueryTree

    public QueryTree()

### Method Detail

#### 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