首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找最活跃的主题或游戏

查找最活跃的主题或游戏
EN

Stack Overflow用户
提问于 2009-06-01 06:46:06
回答 5查看 209关注 0票数 1

在你的数据库中找到最活跃的论坛线程或游戏的好指标是什么?

想象一下,你在运营一个像4chan这样的论坛。您希望最活跃的线程出现在第一页上。您尝试过按last_updated对主题进行排序,但结果很混乱:每次刷新时看到的线程实际上都是随机的,跳到第二个页面可能会显示许多相同的结果。必须有更稳定的算法来确定活动线程!

想象一下,你经营着一个网站,人们可以在那里玩游戏和观看比赛。当人们访问你的首页时,你想让他们看到这些游戏是多么令人兴奋。游戏中的交互可以归结为生成单个事件。但你不能只按last_updated排序,因为有些人玩得很慢,而你想要找到令人兴奋的游戏。

为了获得额外的好处,可以考虑如何构造SQL查询以获得最大的活动,或者如何在服务器端缓存中实现这一点。最佳答案不需要cron作业来整理数据。

EN

回答 5

Stack Overflow用户

发布于 2009-06-01 15:48:57

在论坛示例中,最热门的帖子是基于发表的评论,所以你只需计算当天/周/月发表的评论数量(无论你认为什么时间段构成‘热门’),并基于此对帖子进行排序。

代码语言:javascript
复制
SELECT p.id, p.title, COUNT(c.created_at) as count
FROM posts p, comments c
WHERE p.id = c.post_id
AND c.created_at > ***TIME YOU DETERMINE AS HOT***
GROUP BY p.id, p.title
ORDER BY count DESC

假设您对这些数据模型有类似的表设置,那么您的游戏场景将是相同的

**请注意,您放在select语句中的任何内容也必须在group by语句中**

票数 1
EN

Stack Overflow用户

发布于 2009-06-01 07:19:42

当然你不能指望last_updated(它本身),你应该对所有的活动线程使用reply_ count /play_count,view_count/played_count。您可能需要为每个游戏添加一个像now_playing_count这样的字段,以确定现在最热门的游戏。

票数 0
EN

Stack Overflow用户

发布于 2009-06-01 07:32:55

在某种程度上与你的问题相关的问题被称为"The Britney Spears Problem“,它是关于在算法上确定热门话题的难度。从AI的角度来看,这是一个困难的问题,因为首先,没有固定数量的主题,所以分类是不可能的。由于趋势会不时发生变化,因此模型需要考虑时间因素(典型的神经网络不会,除非您正在谈论时间延迟神经网络)。最后,热门和不热门是主观的,因人而异,这意味着你可能需要考虑个人过去的兴趣(Collaborative Filtering)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/933764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档