如何使用纯JavaScript和HTML5创建客户端全文搜索引擎?

时间:2012-07-05 08:50:47

标签: javascript html5 full-text-search local-storage client-side

我需要为像CDROM这样的离线存储中的离线html应用程序创建客户端搜索引擎。我已经使用Win32创建它,目录文件接近2GB(MDB文件)。

我的离线网络应用程序使用CEF(Chromium Embedded Framework)和PhoneGAP,因此我可以禁用浏览器网络安全性。 我认为IndexedDB可能对我有所帮助,但我无法找到将存储文件复制到其他媒体。

  1. 我的目录文件将接近2GB,因此我无法读取所有记录到内存。
  2. 我需要使用PhoneGAP使输出媒体交叉平台,因此我无法使用activeX对象进行最终搜索。此外,我可以通过该工具禁用Web安全限制。
  3. 我可以使用任何Windows应用程序创建目录文件和媒体。关键请注意,查询目录的输出文件应该是纯JavaScript。
  4. 是否有可用的HTML5大型存储系统(我可以通过PhoneGAP禁用网络安全性)来创建可以复制到其他可移动媒体的离线HTML应用程序搜索目录?

3 个答案:

答案 0 :(得分:8)

Reyes正在为这个目的做一个全文搜索引擎:https://github.com/reyesr/fullproof

在去年9月的巴黎JS期间,他介绍了背后的概念:http://kornr.net/prez/paris.js22/#/

希望它能满足您的需求。

答案 1 :(得分:6)

我认为同时必须考虑lunr.js。它在Github上有3倍的星星。

答案 2 :(得分:1)

将整个数据库保存在.json文件中肯定不会有效,但是将数据库拆分为块并将它们保存为按需加载的.json文件可能会正常工作 - 但它需要进行测试。

并且 - MongoDB将数据库存储在BSON中。您还可以考虑以这种文件格式存储数据库并从应用程序加载它(我建议将整个数据库拆分为更小的部分)。

// edit - 如果您要将数据库作为文件赠送,那么我认为不可能设置任何类型的权限。您可以尝试加密/混淆文件,但我不知道这会如何影响性能或数据库的内容。

是的,有可能有一个独立的html + js应用程序,可以在没有任何服务器的情况下读取BSON数据库。如果您想了解更多,请查看this link。我之前听说过这个,但是在处理纯JS中的BSON文件方面我完全没有经验,所以我无法帮助你解决这个问题。我所能做的只是让你知道存在这样的事情:)