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

How to create client side full text search engine with pure JavaScript and HTML5?

本文关键字:客户端 搜索引擎 创建 HTML5 何使用 JavaScript      更新时间:2023-09-26

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

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

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

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

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

在去年9月的巴黎JS上,他做了一个关于背后的概念的演讲: http://kornr.net/prez/paris.js22/#/

希望它能满足您的需求。

我认为

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

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

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

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

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