@@ -14,15 +14,6 @@ public AggregationsHelper(IDictionary<string, IAggregationResult> aggregations)
1414 this . Aggregations = aggregations ;
1515 }
1616
17- private TAggregation TryGet < TAggregation > ( string key )
18- where TAggregation : class , IAggregationResult
19- {
20- IAggregationResult agg ;
21- return this . Aggregations . TryGetValue ( key , out agg )
22- ? agg as TAggregation
23- : null ;
24- }
25-
2617 public ValueMetric Min ( string key ) => this . TryGet < ValueMetric > ( key ) ;
2718
2819 public ValueMetric Max ( string key ) => this . TryGet < ValueMetric > ( key ) ;
@@ -56,7 +47,7 @@ public ScriptedValueMetric ScriptedMetric(string key)
5647 var valueMetric = this . TryGet < ValueMetric > ( key ) ;
5748
5849 return valueMetric != null
59- ? new ScriptedValueMetric { _Value = valueMetric . Value }
50+ ? new ScriptedValueMetric { _Value = valueMetric . Value , Meta = valueMetric . Meta }
6051 : this . TryGet < ScriptedValueMetric > ( key ) ;
6152 }
6253
@@ -79,7 +70,7 @@ public FiltersBucket Filters(string key)
7970 return named ;
8071
8172 var anonymous = this . TryGet < Bucket > ( key ) ;
82- return anonymous != null ? new FiltersBucket ( anonymous . Items ) : null ;
73+ return anonymous != null ? new FiltersBucket ( anonymous . Items ) { Meta = anonymous . Meta } : null ;
8374 }
8475
8576 public SingleBucket Global ( string key ) => this . TryGet < SingleBucket > ( key ) ;
@@ -104,17 +95,12 @@ public DocCountBucket<SignificantTermItem> SignificantTerms(string key)
10495 : new DocCountBucket < SignificantTermItem >
10596 {
10697 DocCount = bucket . DocCount ,
107- Items = bucket . Items . OfType < SignificantTermItem > ( ) . ToList ( )
98+ Items = bucket . Items . OfType < SignificantTermItem > ( ) . ToList ( ) ,
99+ Meta = bucket . Meta
108100 } ;
109101 }
110102
111- public Bucket < KeyedBucket > Terms ( string key )
112- {
113- var bucket = this . TryGet < Bucket > ( key ) ;
114- return bucket == null
115- ? null
116- : new Bucket < KeyedBucket > { Items = bucket . Items . OfType < KeyedBucket > ( ) . ToList ( ) } ;
117- }
103+ public Bucket < KeyedBucket > Terms ( string key ) => GetBucket < KeyedBucket > ( key ) ;
118104
119105 public Bucket < HistogramItem > Histogram ( string key )
120106 {
@@ -124,7 +110,7 @@ public Bucket<HistogramItem> Histogram(string key)
124110 : new Bucket < HistogramItem >
125111 {
126112 Items = bucket . Items . OfType < HistogramItem > ( )
127- . Concat < HistogramItem > ( bucket . Items . OfType < KeyedBucket > ( )
113+ . Concat ( bucket . Items . OfType < KeyedBucket > ( )
128114 . Select ( x =>
129115 new HistogramItem
130116 {
@@ -135,56 +121,40 @@ public Bucket<HistogramItem> Histogram(string key)
135121 }
136122 )
137123 )
138- . ToList ( )
124+ . ToList ( ) ,
125+ Meta = bucket . Meta
139126 } ;
140127 }
141128
142- public Bucket < KeyedBucket > GeoHash ( string key )
143- {
144- var bucket = this . TryGet < Bucket > ( key ) ;
145- return bucket == null
146- ? null
147- : new Bucket < KeyedBucket > { Items = bucket . Items . OfType < KeyedBucket > ( ) . ToList ( ) } ;
148- }
129+ public Bucket < KeyedBucket > GeoHash ( string key ) => GetBucket < KeyedBucket > ( key ) ;
149130
150- public Bucket < RangeItem > Range ( string key )
151- {
152- var bucket = this . TryGet < Bucket > ( key ) ;
153- return bucket == null
154- ? null
155- : new Bucket < RangeItem > { Items = bucket . Items . OfType < RangeItem > ( ) . ToList ( ) } ;
156- }
131+ public Bucket < RangeItem > Range ( string key ) => GetBucket < RangeItem > ( key ) ;
157132
158- public Bucket < RangeItem > DateRange ( string key )
159- {
160- var bucket = this . TryGet < Bucket > ( key ) ;
161- return bucket == null
162- ? null
163- : new Bucket < RangeItem > { Items = bucket . Items . OfType < RangeItem > ( ) . ToList ( ) } ;
164- }
133+ public Bucket < RangeItem > DateRange ( string key ) => GetBucket < RangeItem > ( key ) ;
165134
166- public Bucket < RangeItem > IpRange ( string key )
167- {
168- var bucket = this . TryGet < Bucket > ( key ) ;
169- return bucket == null
170- ? null
171- : new Bucket < RangeItem > { Items = bucket . Items . OfType < RangeItem > ( ) . ToList ( ) } ;
172- }
135+ public Bucket < RangeItem > IpRange ( string key ) => GetBucket < RangeItem > ( key ) ;
173136
174- public Bucket < RangeItem > GeoDistance ( string key )
137+ public Bucket < RangeItem > GeoDistance ( string key ) => GetBucket < RangeItem > ( key ) ;
138+
139+ public Bucket < DateHistogramItem > DateHistogram ( string key ) => GetBucket < DateHistogramItem > ( key ) ;
140+
141+ private TAggregation TryGet < TAggregation > ( string key )
142+ where TAggregation : class , IAggregationResult
175143 {
176- var bucket = this . TryGet < Bucket > ( key ) ;
177- return bucket == null
178- ? null
179- : new Bucket < RangeItem > { Items = bucket . Items . OfType < RangeItem > ( ) . ToList ( ) } ;
144+ IAggregationResult agg ;
145+ return this . Aggregations . TryGetValue ( key , out agg ) ? agg as TAggregation : null ;
180146 }
181147
182- public Bucket < DateHistogramItem > DateHistogram ( string key )
148+ private Bucket < TBucketItem > GetBucket < TBucketItem > ( string key )
149+ where TBucketItem : IBucketItem
183150 {
184151 var bucket = this . TryGet < Bucket > ( key ) ;
185- return bucket == null
186- ? null
187- : new Bucket < DateHistogramItem > { Items = bucket . Items . OfType < DateHistogramItem > ( ) . ToList ( ) } ;
152+ if ( bucket == null ) return null ;
153+ return new Bucket < TBucketItem >
154+ {
155+ Items = bucket . Items . OfType < TBucketItem > ( ) . ToList ( ) ,
156+ Meta = bucket . Meta
157+ } ;
188158 }
189159 }
190160}
0 commit comments