2013-04-08 25 views
1

我有一個平均每天獲得5000次點擊的網站。它在所有頁面上都有自動完成搜索框。我的數據庫中有大約5000個關鍵字,這些關鍵字會逐漸增加。 只要用戶輸入第三個字符到自動完成搜索框,我就會對ashx處理程序進行ajax調用。然後,Ashx處理程序從數據庫中提取「開始」用戶查詢的所有關鍵字。更快的自動完成實現技術

但我覺得這個過程很慢。我在這裏想到2個選項。

1.將關鍵字存儲在xml文件中。然後使用XpathNavigator,Linq等任何技術處理此文件以進行關鍵字搜索。

2.將所有關鍵字存儲到SortedList/Hashset對象中並將此對象保存到緩存中。

我無法決定哪個選項對我來說是可行的。將整個對象存入緩存的性能開銷或風險是什麼?

回答

3

使用Trie樹,它是搜索引擎使用的數據結構和手機中的自動完成詞典