Package org.elasticsearch.search.profile
Class AbstractInternalProfileTree<PB extends AbstractProfileBreakdown<?>,E>
- java.lang.Object
-
- org.elasticsearch.search.profile.AbstractInternalProfileTree<PB,E>
-
- Direct Known Subclasses:
InternalAggregationProfileTree
public abstract class AbstractInternalProfileTree<PB extends AbstractProfileBreakdown<?>,E> extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.ArrayList<E>
elements
A list of the original queries, keyed by index positionprotected java.util.ArrayList<java.lang.Integer>
roots
A list of top-level "roots".protected java.util.Deque<java.lang.Integer>
stack
A temporary stack used to record where we are in the dependency tree.protected java.util.ArrayList<PB>
timings
protected java.util.ArrayList<java.util.ArrayList<java.lang.Integer>>
tree
Maps the Query to it's list of children.
-
Constructor Summary
Constructors Constructor Description AbstractInternalProfileTree()
-
Method Summary
Modifier and Type Method Description protected abstract PB
createProfileBreakdown()
protected abstract java.lang.String
getDescriptionFromElement(E element)
PB
getProfileBreakdown(E query)
Returns aQueryProfileBreakdown
for a scoring query.java.util.List<ProfileResult>
getTree()
After the query has been run and profiled, we need to merge the flat timing map with the dependency graph to build a data structure that mirrors the original query treeprotected abstract java.lang.String
getTypeFromElement(E element)
void
pollLast()
Removes the last (e.g.
-
-
-
Field Detail
-
timings
protected java.util.ArrayList<PB extends AbstractProfileBreakdown<?>> timings
-
tree
protected java.util.ArrayList<java.util.ArrayList<java.lang.Integer>> tree
Maps the Query to it's list of children. This is basically the dependency tree
-
elements
protected java.util.ArrayList<E> elements
A list of the original queries, keyed by index position
-
roots
protected java.util.ArrayList<java.lang.Integer> roots
A list of top-level "roots". Each root can have its own tree of profiles
-
stack
protected java.util.Deque<java.lang.Integer> stack
A temporary stack used to record where we are in the dependency tree.
-
-
Method Detail
-
getProfileBreakdown
public PB getProfileBreakdown(E query)
Returns aQueryProfileBreakdown
for a scoring query. Scoring queries (e.g. those that are past the rewrite phase and are now being wrapped by createWeight() ) follow a recursive progression. We can track the dependency tree by a simple stack The only hiccup is that the first scoring query will be identical to the last rewritten query, so we need to take special care to fix that- Parameters:
query
- The scoring query we wish to profile- Returns:
- A ProfileBreakdown for this query
-
createProfileBreakdown
protected abstract PB createProfileBreakdown()
-
pollLast
public void pollLast()
Removes the last (e.g. most recent) value on the stack
-
getTree
public java.util.List<ProfileResult> getTree()
After the query has been run and profiled, we need to merge the flat timing map with the dependency graph to build a data structure that mirrors the original query tree- Returns:
- a hierarchical representation of the profiled query tree
-
getTypeFromElement
protected abstract java.lang.String getTypeFromElement(E element)
-
getDescriptionFromElement
protected abstract java.lang.String getDescriptionFromElement(E element)
-
-