您如何建立评级实施?

时间:2008-08-29 17:17:00

标签: algorithm database-design architecture data-structures

我们正在开发的项目中需要一个“评级”系统,类似于SO中的项目。然而,在我们的实体中,有多个实体需要通过投票来“标记”(仅向上,从不向下,如增量)。有时我们需要按照评级最高的顺序显示所有实体,无论实体类型如何,基本上混合结果集,我想。您使用哪些数据结构/算法来实现这一点,以便灵活且可扩展?

1 个答案:

答案 0 :(得分:6)

由于reddit的排名算法不断发展,如果没有复制它,看看它是非常有意义的:


考虑到条目发布时间A和2005年12月8日上午7:46:43 B的时间,我们将t s 作为它们之间的差异:

t s = A - B

和x作为向上投票数U和向下投票数D之间的差异:

x = U - D

其中

y = 1 if x > 0
y = 0 if x = 0
y = -1 if x < 0

和z作为x和1的绝对值的最大值:

z = |x| if |x| >= 1
z = 1 if |x| < 1

我们将评级作为函数ƒ(t s ,y,z):

ƒ(t s ,y,z)= log 10 z +(y•t s )/ 45000


相关问题