更快的自动完成实现技术

时间:2013-04-08 06:38:13

标签: search autocomplete keyword

我有一个平均每天获得5000次点击的网站。它在所有页面上都有自动填充搜索框。我的数据库中有大约5000个关键字,这些关键字会逐渐增长。 一旦用户将第三个字符输入到自动完成搜索框,我就会对ashx处理程序进行ajax调用。然后,Ashx处理程序从数据库中提取“以用户的查询开始”的所有关键字。

但我觉得这个过程很慢。我在考虑2个选项。

1。将关键字存储在xml文件中。然后使用XpathNavigator,Linq等任何技术处理此文件以进行关键字搜索。

2。将所有关键字存储到SortedList / Hashset对象中,并将此对象保存到缓存中。

我无法确定哪种选择对我来说是可行的。将整个对象保存到缓存中的性能开销或风险是什么?

1 个答案:

答案 0 :(得分:3)

使用Trie树,搜索引擎使用的数据结构和手机中的自动填充词典