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