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

Moh*_*van 23 javascript html5 full-text-search client-side local-storage

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

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

  1. 我的目录文件将接近2GB,因此我无法读取所有记录到内存.
  2. 我需要使用PhoneGAP使输出媒体交叉平台,因此我无法使用activeX对象进行最终搜索.此外,我可以通过该工具禁用Web安全限制.
  3. 我可以使用任何Windows应用程序创建目录文件和媒体.关键请注意,查询目录的输出文件应该是纯JavaScript.

是否有可用的HTML5大型存储系统(我可以通过PhoneGAP禁用Web安全性)来创建可以复制到其他可移动媒体的脱机HTML应用程序搜索目录?

bob*_*ito 8

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

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

希望它能满足您的需求.


van*_*ome 6

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


bip*_*obe 1

将整个数据库保存在 .json 文件中肯定效率不高,但是将数据库拆分为块并将它们保存为按需加载的 .json 文件可能会很好 - 但这需要测试。

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

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

是的,可以有一个独立的 html+js 应用程序来读取 BSON 数据库,而无需任何类型的服务器。如果您想了解更多信息,请查看此链接。我以前听说过这个,但是我完全没有在纯JS中处理BSON文件的经验,所以我无法帮助你。我所能做的就是让你知道这样的事情存在:)