-
Notifications
You must be signed in to change notification settings - Fork 730
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add sum_bucket & avg_bucket aggregations
- Loading branch information
Josselin Henrot
committed
Jan 24, 2018
1 parent
a00e6b7
commit e831f39
Showing
4 changed files
with
184 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
<?php | ||
namespace Elastica\Aggregation; | ||
|
||
use Elastica\Exception\InvalidException; | ||
|
||
/** | ||
* Class AvgBucket. | ||
* | ||
* @link https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-avg-bucket-aggregation.html | ||
*/ | ||
class AvgBucket extends AbstractAggregation | ||
{ | ||
/** | ||
* @param string $name | ||
* @param array|null $bucketsPath | ||
*/ | ||
public function __construct($name, $bucketsPath = null) | ||
{ | ||
parent::__construct($name); | ||
|
||
if ($bucketsPath !== null) { | ||
$this->setBucketsPath($bucketsPath); | ||
} | ||
} | ||
|
||
/** | ||
* Set the buckets_path for this aggregation. | ||
* | ||
* @param array $bucketsPath | ||
* | ||
* @return $this | ||
*/ | ||
public function setBucketsPath($bucketsPath) | ||
{ | ||
return $this->setParam('buckets_path', $bucketsPath); | ||
} | ||
|
||
/** | ||
* Set the gap policy for this aggregation. | ||
* | ||
* @param string $gapPolicy | ||
* | ||
* @return $this | ||
*/ | ||
public function setGapPolicy($gapPolicy) | ||
{ | ||
return $this->setParam('gap_policy', $gapPolicy); | ||
} | ||
|
||
/** | ||
* Set the format for this aggregation. | ||
* | ||
* @param string $format | ||
* | ||
* @return $this | ||
*/ | ||
public function setFormat($format) | ||
{ | ||
return $this->setParam('format', $format); | ||
} | ||
|
||
/** | ||
* @throws InvalidException If buckets path or script is not set | ||
* | ||
* @return array | ||
*/ | ||
public function toArray() | ||
{ | ||
if (!$this->hasParam('buckets_path')) { | ||
throw new InvalidException('Buckets path is required'); | ||
} | ||
|
||
return parent::toArray(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
<?php | ||
namespace Elastica\Aggregation; | ||
|
||
use Elastica\Exception\InvalidException; | ||
|
||
/** | ||
* Class SumBucket. | ||
* | ||
* @link https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-sum-bucket-aggregation.html | ||
*/ | ||
class SumBucket extends AbstractAggregation | ||
{ | ||
/** | ||
* @param string $name | ||
* @param array|null $bucketsPath | ||
*/ | ||
public function __construct($name, $bucketsPath = null) | ||
{ | ||
parent::__construct($name); | ||
|
||
if ($bucketsPath !== null) { | ||
$this->setBucketsPath($bucketsPath); | ||
} | ||
} | ||
|
||
/** | ||
* Set the buckets_path for this aggregation. | ||
* | ||
* @param array $bucketsPath | ||
* | ||
* @return $this | ||
*/ | ||
public function setBucketsPath($bucketsPath) | ||
{ | ||
return $this->setParam('buckets_path', $bucketsPath); | ||
} | ||
|
||
/** | ||
* Set the gap policy for this aggregation. | ||
* | ||
* @param string $gapPolicy | ||
* | ||
* @return $this | ||
*/ | ||
public function setGapPolicy($gapPolicy) | ||
{ | ||
return $this->setParam('gap_policy', $gapPolicy); | ||
} | ||
|
||
/** | ||
* Set the format for this aggregation. | ||
* | ||
* @param string $format | ||
* | ||
* @return $this | ||
*/ | ||
public function setFormat($format) | ||
{ | ||
return $this->setParam('format', $format); | ||
} | ||
|
||
/** | ||
* @throws InvalidException If buckets path or script is not set | ||
* | ||
* @return array | ||
*/ | ||
public function toArray() | ||
{ | ||
if (!$this->hasParam('buckets_path')) { | ||
throw new InvalidException('Buckets path is required'); | ||
} | ||
|
||
return parent::toArray(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters