什麼你指的是一個相對簡單的推薦引擎。對於手動分配建議的小型數據集來說,它可以很好地工作,其中A指向B和B指向C,但它不是一種可擴展的方法。一旦你碰到任何不重要的產品,就不能維持(在我看來)。
你可能發現你提供更好的方法是使用一些更復雜。看看人們如何使用Google的Prediction API(http://code.google.com/apis/predict/docs/samples.html#demos)來做這種預測。在這種情況下,你不會存儲實際的鏈接,而是存儲用戶喜歡什麼,然後查看這些信息來建立你的建議。
雖然預測API是不是所有的人一個完美的解決方案,它會給你一個很簡單的方法來構建您的網站的建議部分,而無需學習機器學習技術的深度。
至於你上面的表結構,你就不需要,如果你沒有那樣做重複的數據。相反,我建議您在Suggested_table的兩列中查找您正在使用的元素。
例如,如果你在「Recommendations_table」以下記錄
list_id_A, list_id_B
1, 2
9, 12
2, 3
你可以抓住相關的一切「2」使用的查詢,工會,如:
select list_id_A from recommendations_table where list_id_B = 2
union
select list_id_B from recommendations_table where list_id_A = 2
另外,你可以添加更多的SQL來確保你只返回唯一的結果。但最後,你如何填充這些信息,因爲這可能比其他任何東西都有所不同。
如果您想要更進一步,並使用像Cassandra這樣的nosql數據存儲的其他技術,您可以創建一個名爲Recommendations的列族,並且您的密鑰將是您正在查看的電影。接下來的列名將是推薦的電影ID。在這種情況下,您有這樣的事情爲結構:
Key, columns.....
Movie A, 4, 5, 67,1, 9,3
Movie B, 3, 4, 1
在這種情況下,你會拉的所有列名的特定鍵,這將是你的推薦列表。
所有這些真的很有學問,不知道您計劃如何填充數據。
感謝您的詳細回覆!我很感激。如果這有助於我制定它幾乎完全像我鏈接到的網站:http://www.anime-planet.com/anime/devil-may-cry 除了電影,而不是關於建議的筆記它只是圖片,標題和簡短的細節。 如果在Cassandra選項結構中設置它,MySQL是否能夠處理這些事情?是的,我想要一個適當的縮放方法,因爲它會變得很大。 再次感謝 – DregondRahl 2011-02-28 20:10:24
當我建議像Cassandra這樣的東西時,我並不認爲它必然是SQL的替代品。相反,它會給你一個地方來查找你想要在你的建議中提出的事情的id。因此,您可以使用類似Cass的方法來獲取id,然後將關係信息存儲在SQL中,並根據您從其他數據存儲中取出的id查找SQL相關信息。 – dmcnelis 2011-02-28 20:16:28