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 treeQueries 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
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract booleanadvancePhase(double minWeight)Find the next-most highly-weighted path below this nodestatic QueryTreeanyTerm(String reason)Returns a leaf node that will match any documentabstract voidcollectTerms(BiConsumer<String,BytesRef> termCollector)Collect terms from the most highly-weighted path below this nodestatic QueryTreeconjunction(List<Function<TermWeightor,QueryTree>> children, TermWeightor weightor)Returns a conjunction of a set of child nodesstatic QueryTreedisjunction(List<Function<TermWeightor,QueryTree>> children, TermWeightor weightor)Returns a disjunction of a set of child nodesprotected Stringspace(int width)Returns a string ofwidthspacesstatic QueryTreeterm(String field, BytesRef term, double weight)Returns a leaf node for a particular term and weightstatic QueryTreeterm(Term term, double weight)Returns a leaf node for a particular term and weightstatic QueryTreeterm(Term term, TermWeightor weightor)Returns a leaf node for a particular termStringtoString()abstract StringtoString(int depth)Returns a string representation of the nodeabstract doubleweight()The weight of this node
-
-
-
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:
falseif 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
-
space
protected String space(int width)
Returns a string ofwidthspaces
-
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 weightThe 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 weightThe 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
-
-