diff --git a/src/Aggregation/AbstractAggregation.php b/src/Aggregation/AbstractAggregation.php index 975cdaf54c2b5688577e12b518eb39dfae4c5617..5a5f1e563a4206ccb55633ab2ba86ba70566b5a7 100644 --- a/src/Aggregation/AbstractAggregation.php +++ b/src/Aggregation/AbstractAggregation.php @@ -24,6 +24,8 @@ abstract class AbstractAggregation implements BuilderInterface use ParametersTrait; use NameAwareTrait; + const PREFIX = 'agg_'; + /** * @var string */ @@ -53,7 +55,7 @@ abstract class AbstractAggregation implements BuilderInterface */ public function __construct($name) { - $this->setName($name); + $this->setName(self::PREFIX.$name); } /** @@ -100,6 +102,20 @@ abstract class AbstractAggregation implements BuilderInterface } } + /** + * Returns sub aggregation. + * + * @return AbstractAggregation + */ + public function getAggregation($name) + { + if ($this->aggregations && $this->aggregations->has(self::PREFIX.$name)) { + return $this->aggregations->get(self::PREFIX.$name); + } else { + return []; + } + } + /** * {@inheritdoc} */