2010-08-05 33 views
6

Badoo.com擁有56.000.000用戶配置文件。個人資料可以按性別,年齡,頭髮顏色,生肖,教育等進行搜索,還可以通過我的家鄉,在線狀態和註冊日期進行搜索。到目前爲止,即使對大型表(56m成員...)進行了一些查詢,這似乎仍然可行,但可以通過一般方式對其進行緩存。badoo.com用戶搜索 - 這個怎麼辦?

有趣的部分是,他們也有一個單獨的「排除列表」(每個配置文件你看,你可以說你不想見這個人)。另外,你的朋友也不會出現。

第二個有趣的部分是查詢的OR部分。你可以搜索一個女人,25-35歲,金髮女郎或黑髮,不吸菸,異性或雙性戀,處女座或雙胞胎或癌症,生活在巴黎50公里範圍內,並且不是你的朋友,也不在你的排除名單上現在誰在線。許多OR,大量查詢,排序選項,無法緩存或預先計算所有這些,但搜索以毫秒爲單位返回11.298結果。

他們如何做到這樣的事情與5600萬數據集和250K人同時使用它?全文搜索索引?關係數據庫?主要價值商店? 有沒有人有想法或架構?

+0

或者該網站確實沒有5600萬用戶,他們只是在您執行搜索時隨機抽出一組結果。一個網上交友網站與假配置文件,沒有真正的活動?你不要說! – 2014-08-06 14:26:01

回答

3

它們很可能是使用像Lucene或Sphinx這樣的倒轉索引技術構建的。如果您正在尋找解決方案,我的建議是Apache Solr(使用Lucene構建的搜索服務器)。它非常流行,擁有一個活躍的OSS社區,並被Netflix,Cnet等網站使用。

1

我建議看看Badoo Dev Blog。這是俄文,但谷歌翻譯幫助了很多。

總之,他們使用分片MySQL和memcached。這裏有一些badoo evolution list

+0

請修復死鏈 – 2017-08-09 12:55:22