1

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

但我发现这个过程很慢。我在这里考虑2个选项。

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

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

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

4

1 回答 1

3

使用Trie树,它是搜索引擎和手机自动完成字典使用的数据结构

于 2013-04-08T06:55:12.097 回答