Skip to content

Commit ea4f3bd

Browse files
committed
Add time series aggregation (#2862)
(cherry picked from commit be63cfc)
1 parent 5978dbd commit ea4f3bd

File tree

4 files changed

+30
-0
lines changed

4 files changed

+30
-0
lines changed

specification/_doc_ids/table.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ search-aggregations-metrics-string-stats-aggregation,https://www.elastic.co/guid
494494
search-aggregations-metrics-sum-aggregation,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/search-aggregations-metrics-sum-aggregation.html
495495
search-aggregations-pipeline-sum-bucket-aggregation,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/search-aggregations-pipeline-sum-bucket-aggregation.html
496496
search-aggregations-bucket-terms-aggregation,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/search-aggregations-bucket-terms-aggregation.html
497+
search-aggregations-bucket-time-series-aggregation,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/search-aggregations-bucket-time-series-aggregation.html
497498
search-aggregations-metrics-top-hits-aggregation,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/search-aggregations-metrics-top-hits-aggregation.html
498499
search-aggregations-metrics-ttest-aggregation,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/search-aggregations-metrics-ttest-aggregation.html
499500
search-aggregations-metrics-top-metrics,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/search-aggregations-metrics-top-metrics.html

specification/_types/aggregations/Aggregate.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ export type Aggregate =
108108
| UnmappedSignificantTermsAggregate
109109
| CompositeAggregate
110110
| FrequentItemSetsAggregate
111+
| TimeSeriesAggregate
111112
//
112113
| ScriptedMetricAggregate
113114
| TopHitsAggregate
@@ -648,6 +649,14 @@ export class FrequentItemSetsBucket extends MultiBucketBase {
648649
support: double
649650
}
650651

652+
/** @variant name=time_series */
653+
export class TimeSeriesAggregate extends MultiBucketAggregateBase<TimeSeriesBucket> {}
654+
655+
export class TimeSeriesBucket extends MultiBucketBase {
656+
key: Dictionary<Field, FieldValue>
657+
doc_count: long
658+
}
659+
651660
//----- Misc
652661

653662
/** @variant name=scripted_metric */

specification/_types/aggregations/AggregationContainer.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,14 @@ export class AggregationContainer {
481481
* @doc_id search-aggregations-bucket-terms-aggregation
482482
*/
483483
terms?: TermsAggregation
484+
/**
485+
* The time series aggregation queries data created using a time series index.
486+
* This is typically data such as metrics or other data streams with a time component, and requires creating an index using the time series mode.
487+
* @doc_id search-aggregations-bucket-time-series-aggregation
488+
* @availability stack stability=experimental
489+
* @availability serverless stability=experimental
490+
*/
491+
time_series?: TimeSeriesAggregation
484492
/**
485493
* A metric aggregation that returns the top matching documents per bucket.
486494
* @doc_id search-aggregations-metrics-top-hits-aggregation

specification/_types/aggregations/bucket.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,18 @@ export class TermsAggregation extends BucketAggregationBase {
976976
format?: string
977977
}
978978

979+
export class TimeSeriesAggregation extends BucketAggregationBase {
980+
/**
981+
* The maximum number of results to return.
982+
* @server_default 10000
983+
*/
984+
size?: integer
985+
/**
986+
* Set to `true` to associate a unique string key with each bucket and returns the ranges as a hash rather than an array.
987+
*/
988+
keyed?: boolean
989+
}
990+
979991
// Note: ES is very lazy when parsing this data type: it accepts any number of properties in the objects below,
980992
// but will only keep the *last* property in JSON document order and ignore others.
981993
// This means that something like `"order": { "downloads": "desc", "_key": "asc" }` will actually be interpreted

0 commit comments

Comments
 (0)