表示意图的最佳方法似乎是热门匹配:“从每个聚合组中仅选择一个文档”,然后从中提取平台:
aggs: {
platforms: {
terms: {field: 'platform.id'},
aggs: {
platform: {top_hits: {size: 1, _source: {include: ['platform']}}}
}
}
这样,每个被推销的对象将看起来像:
{"key": 7,
"doc_count": 529939,
"platform": {
"hits": {
"hits": [{
"_source": {
"platform":
{"id": 7, "name": "Facebook", "url": "http://facebook.com"}
}
}]
}
},
}
有点过深(与ES一样),但是很干净: bucket.platform.hits.hits.first._source.platform