使用javascript和html5存储搜索大量文本

时间:2013-06-13 02:20:34

标签: javascript html5 algorithm full-text-search web-sql

我有一个依赖于html5离线存储功能的网络应用程序,因此用户可以在没有互联网连接的情况下访问它。该应用程序基本上只提供HTML页面和一点点的CSS和JavaScript。

我正在尝试添加搜索这些页面上提供的关键字文本的功能,但由于无法保证应用程序访问服务器,因此需要能够在客户端执行这些搜索。

我的想法是我可以将可搜索的文本存储在浏览器的web sql数据库中,并通过javascript或浏览器的sql api执行搜索。关于最佳方法,我有几个问题:

1)我依稀记得一篇关于如何实现这样的事情的文章,也许来自airbnb?有人记得这样的文章吗?

2)文本是2,000,000+个单词,所以我假设indexOf将在此数据大小时分解。正则表达式是否有可能支撑?实施实际搜索有哪些选择? (图书馆,算法等)如果我需要走这条路,任何文章建议都要理解字符串搜索算法的权衡吗?

1 个答案:

答案 0 :(得分:1)

好吧,我刚刚为你写了a quick benchmark,并惊讶地发现你可能会使用String.indexOf()。我每次搜索大约需要35毫秒,这大约是每秒30次搜索。

编辑: a better benchmark。似乎存在某种初始化延迟,但看起来indexOf非常快。您可以使用基准测试,看看它是否适合您。