You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在RavenDB中统计公开Topic的Top10最常用标签?

统计公开主题的最常用标签

其实不用把Visibility塞进分组键里,更简单的方式是先过滤出所有公开的主题,再对这些主题的标签做分组统计,逻辑更清晰,结果也精准。

完整的查询代码如下:

session.Query<Topic>()
        .Where(t => t.Visibility == Visibility.Public) // 先筛选公开主题
        .GroupByArrayValues(t => t.Tags) // 按标签分组
        .Select(grouping => new { Count = grouping.Count(), Text = grouping.Key })
        .OrderByDescending(grouping => grouping.Count)
        .ToList();

如果非要把Visibility作为分组条件(虽然没必要),也可以这么写,但最后还要额外过滤分组键里的公开项,反而多一步:

session.Query<Topic>()
        .GroupBy(t => new { t.Visibility, Tag = t.Tags }) // 同时按可见性和标签分组
        .Select(grouping => new { 
            grouping.Key.Visibility,
            grouping.Key.Tag,
            Count = grouping.Count() 
        })
        .Where(result => result.Visibility == Visibility.Public) // 只保留公开的分组
        .OrderByDescending(result => result.Count)
        .ToList();

显然第一种方式更高效,提前过滤掉私有主题后,后续分组处理的数据量更少。

内容的提问来源于stack exchange,提问作者dubik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:50:21