如何在设置size的Terms Aggregation中获取唯一词条总数?
解决方案
要实现「显示73个城市中的前20个」这种效果,你只需要在同一个查询里同时使用Terms聚合和**基数聚合(cardinality)**就可以了——前者帮你获取前N个高频词条桶,后者用来统计目标字段的唯一词条总数。
具体修改后的查询示例如下:
{ "aggs": { "cities": { "terms": { "field": "city", "size": 20 } }, "total_cities": { "cardinality": { "field": "city" } } } }
结果说明:
cities聚合会返回按计数排序的前20个城市桶及其对应的计数;total_cities聚合返回的value值就是city字段的所有唯一词条总数(比如你示例里的73)。
这样你就可以把两个结果结合起来,实现类似「显示73个城市中的前20个」的展示效果啦。
内容的提问来源于stack exchange,提问作者Ricardo
相关产品推荐
相关产品推荐

