我们如何建立评分实施方案?
时间:2020-03-05 18:45:05 来源:igfitidea点击:
我们正在研究的项目中需要一个"评级"系统,类似于SO中的系统。但是,在我们的实体中,需要以投票方式"标记"多个实体(只有增加,从不减少,就像增加一样)。有时候,我们可能需要按照评级最高的顺序显示所有实体,而与实体类型无关,基本上是将结果集混合在一起。我们使用什么数据结构/算法来实现此目的,以使其灵活且仍可扩展?
解决方案
回答
由于reddit的排名算法很不稳定,因此,看看它是否有意义,即使不复制它,也很有意义:
给定条目发布的时间A和2005年12月8日上午7:46:43 B的时间,我们将ts表示为秒差:
ts = 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
我们将评分作为函数(ts,y,z):
(ts,y,z)= log10 z +(y ts)/ 45000