sql – 如何实现一个类似Digg的算法?

前端之家收集整理的这篇文章主要介绍了sql – 如何实现一个类似Digg的算法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何实现一个与stackoverflow / digg / reddit类似的推荐系统的网站?即,用户提交内容,网站需要根据该项目的流行度来计算某种“热度”.流程如下:

>用户提交内容
>其他用户查看和投票内容(假设90%的用户只查看内容,10%积极投票内容)
>新内容不断提交

如何实现一个计算提交项目的“热度”的算法,最好是实时的?是否有最佳做法或设计模式?

我假设算法考虑以下因素:

>提交物品时
每次投票时,
>当项目被查看

例如.获得不断投票的项目将不断保持“热”,而在第一次提交时获得投票的项目将跳到“热”列表的顶部,但随着票数停止而下降进来.

(我使用MySQL PHP,但我对一般设计模式感兴趣).

解决方法

您可以使用类似于 Reddit algorithm内容 – 其基本原理是根据发布时间和分数来计算帖子的值.关于Reddit算法的内容是,您只需要重新计算一个帖子得分时的值.当您想显示您的首页时,您只需根据该分数从数据库获取顶级的n个帖子.随着时间的推移,分数自然会增加,因此您不必对首页中的项目进行任何特殊处理.

猜你在找的MsSQL相关文章