Aggregation constructor
Implementation
Aggregation(String name, Map<String, dynamic> param, Map<String, dynamic> m) {
this.name = name;
value = m['value'];
values = m['values'] as Map?;
docCountErrorUpperBound = m['doc_count_error_upper_bound'] as int?;
sumOtherDocCount = m['sum_other_doc_count'] as int?;
docCount = m['doc_count'] as int?;
final hitsMap = m['hits'] ?? const {};
final hitsList = (hitsMap['hits'] as List?)?.cast<Map>() ?? const <Map>[];
final hits = hitsList
.map((map) => Doc(
map['_id'] as String,
map['_source'] as Map,
index: map['_index'] as String,
type: map['_type'] as String,
score: (map['_score'] as double?) ?? 0.0,
sort: map['sort'] as List<dynamic>,
))
.toList();
this.hits = hits.isEmpty ? null : hits;
final bucketMapList = (m['buckets'] as List?)?.cast<Map>() ?? <Map>[];
final buckets = bucketMapList.map<Bucket>((bucketMap) {
final bucket = Bucket()
..key = bucketMap['key']
..docCount = bucketMap['doc_count'] as int;
final aggMap = param['aggs'] as Map<String, dynamic>? ?? const {};
final aggs = aggMap.map<String, Aggregation>((subName, subParam) {
final subMap = bucketMap[subName] as Map<String, dynamic>;
return MapEntry(subName,
Aggregation(subName, subParam as Map<String, dynamic>, subMap));
});
bucket.aggregations = aggs.isEmpty ? null : aggs;
return bucket;
}).toList();
this.buckets = buckets.isEmpty ? null : buckets;
}