Twitter在去年跟前年收購了Summize與GeoAPI,因此在搜尋與定位有了不同的樣貌,但是這幾天Twitter的搜尋架構有了大幅度的改變。因為在上個月Twitter流量已經超過MySpace,而成為社交網路的第三大站 (排名於Facebook與Windows Live之後),因此負荷的增加下,舊有的架構已經無法應付。
根據Twitter的工程部落格網站表示,已經不是Summize的架構,也不使用MySQL資料庫,目前Twitter的最大挑戰是如何平順的由舊架構轉移到新架構上,而不影響現有用戶的使用。
文章中提到使用Inverted index而非傳統的關聯式資料庫 (如MySQL),以及Java為主的Lucene開放源系統,以應付每秒1000個推文,以及每秒12,000個搜尋。
由於Twitter是即時的訊息系統,因此必須要把索引延遲降低到10秒內,也就是推文發出後的十秒鐘內就必須可以搜尋得到。
目前使用Lucene為主架構,但是因為它並不是real-time的系統,因此必須要大幅修改,並且必須要讓原有的Lucene API可以使用。因此Twitter工程團隊修改了Lucene的記憶體資料結構核心,但是Lucene的search layer則沒有修改。
目前新的架構已經開始使用,並且比以前更加快速、使用更少的資源、可以索引更多的推文 … 但是美中不足的是~使用中文搜尋的速度跟搜尋量都還不盡滿意。