如何为极客新闻类网站设计一个牛逼的排序算法?

2013-08-08 17:44:51 +08:00
 kenneth
几种可能用到的值
评论数,回复数
顶,踩
5星评分

大家来和我说一个牛逼的排序方法,适合digg类新闻的排序用,要和用户的评论数据能互动

代码实现上要求,实时能变化。

高手指导来下思路。
3773 次点击
所在节点    程序员
10 条回复
felix021
2013-08-08 17:56:31 +08:00
这个是产品的工作,不是程序员的工作……主要还是要从产品运营的角度上来考虑,各个方面(时间、回复、评分)的权重应该怎样分配,然后根据这个来更新帖子的排序值——只要有了值,排序的实现什么的都是小事情。
kenneth
2013-08-08 18:00:15 +08:00
@felix021 一个好的排序算法还是很重要的。可以得到某一个时间段里最热的帖子,还要好看。
pubby
2013-08-08 18:11:27 +08:00
找个曲线,再慢慢调参数

digg类的还要跟时间相关的

比如参考这个,自己慢慢调:http://www.ruanyifeng.com/blog/2012/02/ranking_algorithm_hacker_news.html
Mutoo
2013-08-08 18:13:09 +08:00
chmlai
2013-08-08 18:16:21 +08:00
@Mutoo 正想说阮一峰的博客.
jjplay
2013-08-08 18:41:09 +08:00
计算单一用户停留时间 滚动时间 digg ,然后综合 平均 。。。我是随便说说
felix021
2013-08-08 19:03:11 +08:00
@kenneth 你没看懂我的意思。我的意思是,怎么定策略是难的,这个取决于你的产品的特征(比如论坛类的,最后回复时间的权值是100%,博客类的产品发布时间的权值是100%)。同样是digg类的产品,也可以为不同的参数赋不同的权值,实现不同的侧重点。一旦确认了这个策略,具体的代码实现总是很简单的。
halfzeng
2013-08-08 19:34:16 +08:00
stackpop
2013-08-08 19:39:46 +08:00
排序算法用堆排序就行了,评分变化的时候实时调整堆,每次代价是logN。

至于评分如何动态变化,这个看产品怎么考虑啊,比如,多一条评论和点赞+10分
stackpop
2013-08-08 19:40:55 +08:00
另外堆也是非常适合插入的,插入一条新闻进入原来的topN堆就行了,代价很小

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/78460

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX