Firefox 的地址栏排列算法

Frecency 是对地址栏中每个唯一 URI 的分数,包括书签,历史记录和标签。 此分数取决于重复访问的次数,访问的类型,最近的时间以及 URI 是否为书签或被标记。 Frecency 这个词本身就是“频率”和“新近度”的组合。

Frecency algorithm

Frecency 算法

Frecency 是对地址栏中每个唯一 URI 的分数,包括书签,历史记录和标签。 此分数取决于重复访问的次数,访问的类型,最近的时间以及 URI 是否为书签或被标记。

Frecency 这个词本身就是“频率”和“新近度”的组合。

  • 所有有效条目的默认frecency值是 -1。 具有此值的地方可以显示在自动填充结果中。
  • 无效位置的frecency值为零,并且不会显示在自动完成结果中。 无效的例子是 "place:" queries, and unvisited livemark feed entries.

计算过程

对于最近的10次访问(其中10个由 places.frecency.numVisits 确定):
.. 确定访问类型确定百分比奖励:
.... 0 (places.frecency.embedVisitBonus)
.... 120 (places.frecency.linkVisitBonus)
.... 200 (places.frecency.typedVisitBonus)
.... 140 (places.frecency.bookmarkVisitBonus)
.... 0 (places.frecency.downloadVisitBonus)
.... 0 (places.frecency.permRedirectVisitBonus)
.... 0 (places.frecency.tempRedirectVisitBonus)
.... 0 (places.frecency.defaultVisitBonus)
 
.. 根据访问的最近时间确定权重(4/14/31/90 天):
.... 100 (places.frecency.firstBucketWeight, 4 days bucket size, in places.frecency.firstBucketCutoff)
.... 70 (places.frecency.secondBucketWeight, 14 days bucket size, in places.frecency.secondBucketCutoff)
.... 50 (places.frecency.thirdBucketWeight, 31 days bucket size, in places.frecency.thirdBucketCutoff)
.... 30 (places.frecency.fourthBucketWeight, 90 days bucket size, in places.frecency.fourthBucketCutoff)
.... 10 (places.frecency.defaultBucketWeight, bucket size in places.frecency.defaultBucketCutoff)
 
.. 每次抽样访问的积分=(奖金/ 100.0)* 权重
 
Final frecency score for visited URI = ceiling(total visit count * sum of points for sampled visits / number of sampled visits)

举个栗子

这是一个 URI 的频率计算的例子,这个 URI 被加了书签,并且最近访问了两次(昨天一次,上周通过点击一个链接一次),还有两次是在90多天前:

0 Default score
+140 100 * (140/100.0) - First bucket weight and bookmarked bonus
+84 70 * (120/100.0) - Second bucket weight and followed-link bonus
+14 10 * (140/100.0) - Fifth bucket weight and bookmarked bonus
+14 10 * (140/100.0) - Fifth bucket weight and bookmarked bonus
--  
252 (4 * 252 / 4) - 最终 frecency 得分

注意

  • 抽样访问次数为最少(最近10次访问,总访问次数)。
  • 总访问次数包括嵌入式,未定义等访问(不排除无效访问或嵌入式访问)。

作用

弄明白算法后,可按照自己的使用习惯调整其权重以得到期望的排列顺序。详细可参考:

  1. Places.frecency.numVisits
  2. Places.frecency.*BucketCutoff
  3. Places.frecency.*BucketWeight

智能书签

不小心把最常访问给删了

延伸阅读:CyberNotes: Create Your Own Smart Bookmarks in Firefox 3