主题排序的规则(热度排序的秘密)
新站的绝大多数版采用的是热度排序。经过半年多的调试,热度排序基本已经稳定,并表现出他的高效性。
什么是热度排序?
每个主题都有一个 热度参数 。这个热度参数是动态变化的。热度主题排序是根据热度参数的区间加以分割。
当前网站的主题列表有三个热度区间。(起初网站设置了最多14个区间,导致大家找不到新发主题。)。区间内的主题按最新回帖时间排序排列。
第一区间,高热区间。最新急需讨论的主题
第二区间,正常区间。普通主题,参考原来老网站
第三区间,低热区间。带有争议性或广告属性的低效老旧主题。
热度参数是怎么来的?
热度参数是由 发贴人等级的基础权重和主题的内容属性,综合计算出来的。
例如 用户基础等级,贡献等级,认证商家等等,每个头衔下都会有一定的权重,最终算出用户的基础权重。主题被打的标签,例如商业贴,普通贴,广告贴,讨论贴,等等,每个标签都会有一定的参数。最终算出这个主题的热度参数。
热度参数的衰变。
热度参数是固定的,但根据时间情况,会进行衰变,
A. 发更多的主题。每天,用户每多发一个主题,新发的主题热度参数减半。
例如某个用户发 普通讨论贴的热度参数是100,第一个主题热度参数就是100,当天他再发一个普通讨论贴新发的主题热度参数是50,第三个是25,依次减弱。
B. 随着时间的变化。每次热度参数减半,每几个小时自动衰变一次,不同的标签时间不一样。
热度的奖励参数
根据主题的人气,每个衰变周期会奖励主题一定的热度值(这个功能不完善,不进一步解释)
热度排序避免了传统社区的主题按最新回帖的排序这种可以被少数用户控制的局面,达到高效传递信息的目的。低价值老信息,找起来有点费劲,高价值的新信息一目了然。所以某些商家很不喜欢新版,他们无法再用传统的方式给低效信息增加曝光率。
可能说的比较简单,但实际这系统极其复杂,我们30%的网站代码和开发时间由于构筑这个系统,计算量是天文数字,热度是动态的,每时每刻的服务器都在计算,一不小心就会出BUG。比如前二天衰变这个功能就坏了,二天主题没有衰变,导致高热区间堆了一堆帖子不衰变到正常区间。
罗列点参数:
一个新注册的用户,当天发到第五个主题普通讨论贴时,会掉出热度区间 。(普通贴和讨论贴 这二个标签都是最高参数,如果被打上其他标签,有可能会降低)
初中一年级的基础权重 是刚注册用户的一倍,由此类推,级别越高,基础权重越高。
当然再高,哪怕我发的帖子,最多也只能在热度区间停留三四天就会掉到 正常区间。
暂时就想到这些,大家有问题可以跟帖提问讨论。我好补充完善这篇说明。