BT搜索引擎:ssbc
作為最早在國內研究和實踐DHT爬蟲的人,我的靈感是來自芬蘭Helsinki大學的這篇論文: Real-World Sybil Attacks in BitTorrent Mainline DHT 英文好的同學應該很容易讀懂,跟我寫的不到300行的爬蟲代碼大致原理一樣。初次接觸DHT網絡的可以結合我之前的文章閱讀,或者拜讀Kevin Lynx的博客。所以具體原理在這里就不再闡述了。
手撕包菜一開始只是為了純粹的技術研究,沒有去想這個搜索引擎能給網民帶來什么樣的福利。當時采集了大量的數據,發現有一半以上的資源為限級內容,于是試圖去對資源進行分類并且做了很多這方面的工作。譬如,基本上能通過一套規則能篩選出限級內容,對資源進行分類,如果是視頻還能匹配出是哪一部影片。可惜,這些工作我主觀上認為對生活應用并沒有太大價值,于是就放棄了深入的研究。或許是因為網民使用此類搜索引擎大部分都是具有明顯的目的性。
手撕包菜經歷了多次點技術變更
開源版本使用了django網站框架重寫,之前是Flask,再早期是tornado。電影FM也是使用tornado,后來發現tornado并不適用于任何場景。以內容為王的網站還是django比較擅長,只是入門時間比其他框架都較長。早期數據庫采用了MongoDB,因為配合Python讀寫數據很方便,也不用關注數據結構,搜索功能采用自帶的關鍵詞搜索,不過后來隨著資源數量增加,性能也明顯跟不上。今年換了WiredTiger引擎,自帶的 fulltext search還是不給力。另外Amazon的cloudsearch是個坑,土豪可以考慮,性能真的很不錯,就是比較貴。最后還是搭建一個 SphinxSearch吧,數據庫也換成MySQL(MyISAM引擎),配合起來也很方便。Sphinx創建全文索引的速度很給力,官方的自評也很高,我自己測試1000w的資源(大概3GB),1分鐘左右就索引完畢。不信,大家可以自測一下。