Class AggregationPath
- java.lang.Object
-
- org.elasticsearch.search.aggregations.support.AggregationPath
-
public class AggregationPath extends java.lang.Object
A path that can be used to sort/order buckets (in some multi-bucket aggregations, e.g. terms & histogram) based on sub-aggregations. The path may point to either a single-bucket aggregation or a metrics aggregation. If the path points to a single-bucket aggregation, the sort will be applied based on thedoc_count
of the bucket. If this path points to a metrics aggregation, if it's a single-value metrics (eg. avg, max, min, etc..) the sort will be applied on that single value. If it points to a multi-value metrics, the path should point out what metric should be the sort-by value.The path has the following form:
<aggregation_name>['>'<aggregation_name>*]['.'<metric_name>]
Examples:
-
agg1>agg2>agg3
- where agg1, agg2 and agg3 are all single-bucket aggs (eg filter, nested, missing, etc..). In this case, the order will be based on the number of documents underagg3
. -
agg1>agg2>agg3
- where agg1 and agg2 are both single-bucket aggs and agg3 is a single-value metrics agg (eg avg, max, min, etc..). In this case, the order will be based on the value ofagg3
. -
agg1>agg2>agg3.avg
- where agg1 and agg2 are both single-bucket aggs and agg3 is a multi-value metrics agg (eg stats, extended_stats, etc...). In this case, the order will be based on the avg value ofagg3
.
-
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AggregationPath.PathElement
-
Constructor Summary
Constructors Constructor Description AggregationPath(java.util.List<AggregationPath.PathElement> tokens)
-
Method Summary
Modifier and Type Method Description java.util.List<AggregationPath.PathElement>
getPathElements()
java.util.List<java.lang.String>
getPathElementsAsStringList()
AggregationPath.PathElement
lastPathElement()
static AggregationPath
parse(java.lang.String path)
Aggregator
resolveAggregator(Aggregator root)
Resolves the aggregator pointed by this path using the given root as a point of reference.Aggregator
resolveTopmostAggregator(Aggregator root)
Resolves the topmost aggregator pointed by this path using the given root as a point of reference.double
resolveValue(HasAggregations root)
Resolves the value pointed by this path given an aggregations rootAggregationPath
subPath(int offset, int length)
java.lang.String
toString()
void
validate(Aggregator root)
Validates this path over the given aggregator as a point of reference.
-
-
-
Constructor Detail
-
AggregationPath
public AggregationPath(java.util.List<AggregationPath.PathElement> tokens)
-
-
Method Detail
-
parse
public static AggregationPath parse(java.lang.String path)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
lastPathElement
public AggregationPath.PathElement lastPathElement()
-
getPathElements
public java.util.List<AggregationPath.PathElement> getPathElements()
-
getPathElementsAsStringList
public java.util.List<java.lang.String> getPathElementsAsStringList()
-
subPath
public AggregationPath subPath(int offset, int length)
-
resolveValue
public double resolveValue(HasAggregations root)
Resolves the value pointed by this path given an aggregations root- Parameters:
root
- The root that serves as a point of reference for this path- Returns:
- The resolved value
-
resolveAggregator
public Aggregator resolveAggregator(Aggregator root)
Resolves the aggregator pointed by this path using the given root as a point of reference.- Parameters:
root
- The point of reference of this path- Returns:
- The aggregator pointed by this path starting from the given aggregator as a point of reference
-
resolveTopmostAggregator
public Aggregator resolveTopmostAggregator(Aggregator root)
Resolves the topmost aggregator pointed by this path using the given root as a point of reference.- Parameters:
root
- The point of reference of this path- Returns:
- The first child aggregator of the root pointed by this path
-
validate
public void validate(Aggregator root) throws AggregationExecutionException
Validates this path over the given aggregator as a point of reference.- Parameters:
root
- The point of reference of this path- Throws:
AggregationExecutionException
- on validation error
-
-