下面是如何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