如何使用纯JavaScript和HTML5创建客户端全文搜索引擎
How to create client side full text search engine with pure JavaScript and HTML5?
我需要在离线存储(如CDROM)中为离线HTML应用程序创建客户端搜索引擎。我已经用 Win32 创建了它,目录文件接近 2GB(MDB 文件)。
我的离线Web应用程序使用CEF(Chromium Embedded Framework)和PhoneGAP,因此我可以禁用浏览器Web安全性。我认为 IndexedDB 可能会对我有所帮助,但是,无论如何我都找不到将存储文件复制到其他媒体。
- 我的目录文件将接近 2GB,因此我无法将所有记录读取到内存中。
- 我需要使用 PhoneGAP 交叉输出媒体,因此我无法使用 activeX 对象进行最终搜索。我也可以通过该工具禁用网络安全限制。
- 我可以使用任何 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文件时,我完全没有经验,所以我无法帮助您解决这个问题。我所能做的就是让你知道这样的事情存在:)
- 客户端服务器REST API captcha实现
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何使用Socket.io将命令从客户端发送到服务器
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 如何将我的javascript库公开给其他客户端使用
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 返回/从Twit's客户端.get
- 将客户端特定的日期格式返回到服务器MVC4
- MobileFirst:在客户端运行计时器作业-最佳选项
- 标签客户端的设置值
- 我的客户端选项是什么
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- 使用javascript在客户端上使用Web服务
- 通过ajax从客户端调用C#方法来执行C#方法
- SignalR客户端启动连接时如何设置用户
- 如何使用纯JavaScript和HTML5创建客户端全文搜索引擎
- 是否有一种搜索引擎友好的方法可以将服务器端呈现的 HTML 与客户端 MVVM/MVC 框架相结合