下面是如何Paul Graham describes the ranking algorithm for Hacker News:实施黑客新闻排名算法在SQL
News.YC的仅仅是
(对 - 1)/(T + 2)^ 1.5
其中p =点和t =年龄小时
我想要做的是,在纯粹的MySQL给出如下表:
- 表带有字段postID(index)和postTime(timestamp)的帖子。
- 表投票与字段投票ID(索引),postID和投票(整数,0或1)。
投票领域的想法是,投票可以被取消。 为了排名的目的,vote = 0相当于根本没有投票权。 (所有的投票都是upvotes,没有downvotes这样的事情。)
问题是如何构建一个查询返回前N N postIDs,按保罗格雷厄姆的公式排序。 完全有大约10万个帖子,所以如果你认为缓存的分数或任何需要,我很乐意听到关于这方面的建议。 (显然这不是火箭科学,我当然可以弄明白,但我想到一个早餐,午餐和晚餐吃SQL的人可能会听不清楚,而且在StackOverflow上看起来很有价值。)
相关问题:
- Hacker News style ordering algorithm in Linq-To-SQL
- How To Sort Like Hacker News
- https://meta.stackexchange.com/questions/11602/what-formula-should-be-used-to-determine-hot
刚在一个项目上实现了这个功能,似乎到目前为止工作得很好。将做进一步的测试,并将报告。 – Banago 2014-06-13 09:42:59