@@ -29,25 +29,29 @@ class DateRangeAggregation extends AbstractAggregation
2929 private $ format ;
3030
3131 /**
32- * @return string
32+ * @var array
3333 */
34- public function getFormat ()
35- {
36- return $ this ->format ;
37- }
34+ private $ ranges = [];
35+
36+ /**
37+ * @var bool
38+ */
39+ private $ keyed = false ;
3840
3941 /**
4042 * @param string $name
4143 * @param string $field
4244 * @param string $format
4345 * @param array $ranges
46+ * @param bool $keyed
4447 */
45- public function __construct ($ name , $ field = null , $ format = null , array $ ranges = [])
48+ public function __construct ($ name , $ field = null , $ format = null , array $ ranges = [], $ keyed = false )
4649 {
4750 parent ::__construct ($ name );
4851
4952 $ this ->setField ($ field );
5053 $ this ->setFormat ($ format );
54+ $ this ->setKeyed ($ keyed );
5155 foreach ($ ranges as $ range ) {
5256 $ from = isset ($ range ['from ' ]) ? $ range ['from ' ] : null ;
5357 $ to = isset ($ range ['to ' ]) ? $ range ['to ' ] : null ;
@@ -57,23 +61,41 @@ public function __construct($name, $field = null, $format = null, array $ranges
5761 }
5862
5963 /**
60- * @param string $format
64+ * Sets if result buckets should be keyed.
65+ *
66+ * @param bool $keyed
67+ *
68+ * @return DateRangeAggregation
6169 */
62- public function setFormat ( $ format )
70+ public function setKeyed ( $ keyed )
6371 {
64- $ this ->format = $ format ;
72+ $ this ->keyed = $ keyed ;
73+
74+ return $ this ;
6575 }
6676
6777 /**
68- * @var array
78+ * @return string
6979 */
70- private $ ranges = [];
80+ public function getFormat ()
81+ {
82+ return $ this ->format ;
83+ }
84+
85+ /**
86+ * @param string $format
87+ */
88+ public function setFormat ($ format )
89+ {
90+ $ this ->format = $ format ;
91+ }
7192
7293 /**
7394 * Add range to aggregation.
7495 *
7596 * @param string|null $from
7697 * @param string|null $to
98+ * @param string|null $key
7799 *
78100 * @return $this
79101 *
@@ -111,6 +133,7 @@ public function getArray()
111133 'format ' => $ this ->getFormat (),
112134 'field ' => $ this ->getField (),
113135 'ranges ' => $ this ->ranges ,
136+ 'keyed ' => $ this ->keyed ,
114137 ];
115138
116139 return $ data ;
0 commit comments