加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:30:57 所属栏目:MsSql教程 来源:网络整理
导读:如何实现一个与stackoverflow / digg / reddit类似的推荐系统的网站?即,用户提交内容,网站需要根据该项目的流行度来计算某种“热度”.流程如下: 用户提交内容 其他用户查看和投票内容(假设90%的用户只查看内容,10%积极投票内容) 新内容不断提交 如何实现
如何实现一个与stackoverflow / digg / reddit类似的推荐系统的网站?即,用户提交内容,网站需要根据该项目的流行度来计算某种“热度”.流程如下:

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

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

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

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

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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读