Package org.elasticsearch.search.profile
Class AbstractInternalProfileTree<PB extends AbstractProfileBreakdown<?>,E>
org.elasticsearch.search.profile.AbstractInternalProfileTree<PB,E>
- Direct Known Subclasses:
InternalAggregationProfileTree
public abstract class AbstractInternalProfileTree<PB extends AbstractProfileBreakdown<?>,E>
extends
-
Field Summary
Modifier and TypeFieldDescriptionprotected <PB>
protected <E>
A list of the original queries, keyed by index positionprotected <>
A list of top-level "roots".protected <>
A temporary stack used to record where we are in the dependency tree.protected <<>>
Maps the Query to it's list of children. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract PB
protected abstract
getDescriptionFromElement(E element)
getProfileBreakdown(E query)
Returns aQueryProfileBreakdown
for a scoring query.getTree()
After the element 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
getTypeFromElement(E element)
void
pollLast()
Removes the last (e.g.Methods inherited from class java.lang.
, , , , , , , , , ,
-
Field Details
-
breakdowns
-
tree
protected <<>> treeMaps the Query to it's list of children. This is basically the dependency tree -
elements
A list of the original queries, keyed by index position -
roots
protected <> rootsA list of top-level "roots". Each root can have its own tree of profiles -
stack
protected <> stackA temporary stack used to record where we are in the dependency tree.
-
-
Constructor Details
-
AbstractInternalProfileTree
public AbstractInternalProfileTree()
-
-
Method Details
-
getProfileBreakdown
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
-
pollLast
public void pollLast()Removes the last (e.g. most recent) value on the stack -
getTree
After the element 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
-
getDescriptionFromElement
-