我正在一个类似digg的网站上工作,用户可以提交“故事”。
我记录了每一项得到多少“选票”和“相似的添加”。相似的添加定义为两个用户添加相同的“链接”。
下面是算法的一部分(本质上是最重要的):
y = day number
sy = number of adds on day y
∑ y[1:10] sy / y因此,基本上计算指定一天的“相似添加”的数量,除以内容发布后的秒数。在过去的10天里这样做(举个例子)。
但是,我不知道如何实现这一点,以便它能够很好地执行。我能想到的每一种方法都会很慢。
我唯一能想到的实现这一点的方法是,通过计算过去10天内提交的每一项的添加数,将花费很长时间。(因此,在过去的10天中,一个带有组日期的sql命令执行了10次--很明显,这个方法很糟糕)。
即使我保留了一个每天更新一次的表(并在后台运行上面的sql ),但一旦数据库变大,这仍然会非常缓慢。此外,评级将“过时”,因为它不是现场直播(例如,突发新闻“项目”永远不会到达顶端)。
有没有人有做这件事的经验?
发布于 2008-12-15 14:40:59
试试这个:每个人都有一票。你投的票坚持你投的最后一票。时间问题将来自于用户的行为。
https://stackoverflow.com/questions/368369
复制相似问题