diff --git a/elasticsearch_dsl/aggs.py b/elasticsearch_dsl/aggs.py index d30716400..3b55a8ab1 100644 --- a/elasticsearch_dsl/aggs.py +++ b/elasticsearch_dsl/aggs.py @@ -296,6 +296,10 @@ def result(self, search, data): return FieldBucketData(self, search, data) +class MultiTerms(Bucket): + name = "multi_terms" + + # metric aggregations class TopHits(Agg): name = "top_hits" diff --git a/tests/test_aggs.py b/tests/test_aggs.py index 6c39383a3..0874a66c4 100644 --- a/tests/test_aggs.py +++ b/tests/test_aggs.py @@ -300,6 +300,18 @@ def test_variable_width_histogram_aggregation(): assert {"variable_width_histogram": {"buckets": 2, "field": "price"}} == a.to_dict() +def test_multi_terms_aggregation(): + a = aggs.MultiTerms(terms=[{"field": "tags"}, {"field": "author.row"}]) + assert { + "multi_terms": { + "terms": [ + {"field": "tags"}, + {"field": "author.row"}, + ] + } + } == a.to_dict() + + def test_median_absolute_deviation_aggregation(): a = aggs.MedianAbsoluteDeviation(field="rating")