1. 程式人生 > >使用mongodb實現字首搜尋提示功能

使用mongodb實現字首搜尋提示功能

場景,一萬個(數量不大)熱點詞彙,每個詞彙對應熱度值,每條記錄還存這該詞的其他資訊,實現使用者在客戶端輸入一個字,則提示出以這個字開頭的所有詞彙列表,按熱度排序。

解決方法:明顯效率最高的方法是使用鍵樹(或叫字典樹),但是採用php,藉助開源資料庫如何快速實現。

不使用mysql,原因是速度較慢。

不使用redis:

原因1是redis不支援服務端正則匹配(是用keys的方式存詞,可以實現萬用字元匹配,但是每次查詢會鎖表,影響該redis庫的其他查詢。

原因2是如果是按多個條件搜尋則邏輯實現複雜,因為redis不支援類似於mysql的單獨對某個列建立索引。如果實現則使用set,然後集合交集,得出多個條件的搜尋集,實現複雜。

方案選擇如下:採用mongod。

使用mongodb,可以多個條件搜尋,只需在多個欄位建立索引,就可以加快搜索速度。速度較mysql快,而且邏輯實現簡單。