我知道有一种名为 Zeitgeist 的东西用于确定 Unity 仪表板的“最常用”部分,但我想知道具体在哪里。我知道此部分中的应用程序数量各不相同,因此它并不像当今使用最多的 # 那么简单。
是否有任何(相对)简单的方法来表达决定最常用列表和排名的规则?
答案1
基本答案
简而言之,最常用scope 根据您启动应用程序的次数对应用程序进行排序。也就是说,如果您启动了火狐1000次,并且铬999 次,Firefox 都会排在第一位。即使你已经好几个月没有启动过 Firefox 了。
技术解答
简而言之,最常用scope 是一个包装器,它搜索Zeitgeist.Index
已安装的应用程序,结果类型为MostPopularSubjects
。Zeitgeist 使用守护进程来衡量这种流行度zeitgeist-datahub
,守护进程会在您每次启动应用程序时注意到并更新其统计信息。您可以查看相关的镜头代码这里以及 Zeitgeist 的 API 文档这里。
看过当今时代精神代码,它看起来MostPopularSubjects
只是按访问次数进行简单排序。此外,如果应用程序访问次数相同,则应用程序按最新顺序排序。它比这稍微复杂一些,但为最常用请求大致如下:
SELECT
subj_id,
MAX(timestamp) as timestamp,
COUNT(subj_id) as num_events
FROM
event_view
GROUP BY
subj_id
ORDER BY
num_events DESC
timestamp DESC
开源不是很美好吗?