2012-07-05 50 views
23

我需要爲脫機存儲中的脫機html應用程序(如CDROM)創建客戶端搜索引擎。我已經使用Win32創建它,目錄文件接近2GB(MDB文件)。如何用純JavaScript和HTML5創建客戶端全文搜索引擎?

我的離線Web應用程序使用CEF(鉻嵌入式框架)和PhoneGap的,所以我可以禁用Web瀏覽器的安全性。 我以爲IndexedDB可以幫助我,但我無法找到將存儲文件複製到其他媒體。

  1. 我的目錄文件將接近2GB,所以我無法讀取所有記錄到內存。
  2. 我需要使用PhoneGAP交叉輸出媒體,所以我不能使用activeX對象進行最終搜索。此外,我可以禁用該工具的網絡安全限制。
  3. 我可以創建任何Windows應用程序的目錄文件和媒體。請注意,查詢目錄的輸出文件應該是純JavaScript。

是否有任何HTML5大型存儲系統可用(我可以通過PhoneGAP禁用網絡安全)來創建可以複製到其他可移動媒體的離線HTML應用程序搜索目錄?

+1

HTML5的大存儲系統是[網絡SQL](http://www.html5rocks.com/en/tutorials/webdatabase/todo/),但是這當然節省了客戶,而不是集中在數據,所以我米不知道這是否適合你。 – Utkanos 2012-07-05 09:09:18

+1

感謝您的評論,但WebSQL已棄用IndexedDB。 IndexedDB對我很好,但我需要知道如何將IndexedDB中的特定數據庫移動或複製到其他可移動介質。 它看起來他們只是提供客戶端創建數據庫,無法移動到其他地方:( – Madnik7G 2012-07-05 14:06:18

回答

1

保存在以.json文件整個數據庫絕對不會是有效的,但分裂你的數據庫塊,並將其保存爲按需加載可能會工作得很好,以.json文件 - 這將需要測試雖然。

而且 - MongoDB將數據庫存儲在BSON中。你也可以考慮以這種文件格式存儲你的數據庫並從你的應用程序中加載它(我建議將整個數據庫拆分成更小的部分)。

//編輯 - 如果你要放棄的數據庫文件,然後我不認爲這是可以設置任何權限。您可以嘗試加密/模糊文件,但我不知道這會如何影響性能或數據庫的內容。

是的,它可能有一個會讀取BSON數據庫沒有任何一種服務器的一個獨立的HTML + JS應用。如果您想了解更多信息,請檢查this link。我以前聽說過這個,但是在純JS中處理BSON文件時我完全沒有經驗,所以我無法幫助你解決這個問題。我所能做的就是讓你知道這樣的事情存在:)

+0

感謝您介紹有關MongoDB的,但這些的意思是我應該使用JavaScript創建客戶端用到dbengine室內用自己JSON文件格式? 但是獨立的項目本身,你知道嗎,只有通過客戶端javaScript的只讀訪問MongoDB數據庫,而不需要在客戶端JavaScript文件之外的機器上安裝任何東西嗎? – Madnik7G 2012-08-23 12:05:53

+0

@ Madnik7G由於評論字符的限制,我編輯了我的答案。 – biphobe 2012-08-23 12:26:00

+0

1)我不需要任何的安全性,我只需要保存記錄的快速訪問。 2)我不知道我應該接受這個作爲答案與否,它看起來BSON裝載在內存中的所有文件,還我需要2GB附近索引數據庫,因爲我的數據庫文件。我不知道MongoDB是否創建了許多帶分級索引的塊文件,因爲它不應該通過javascript加載所有數據庫。你知道一個樣本,使用mongoDB與客戶端JavaScript? – Madnik7G 2012-08-23 16:50:56

8

雷耶斯正在做全文搜索引擎這一確切目的:https://github.com/reyesr/fullproof

在去年九月巴黎JS,他做的概念介紹背後:http://kornr.net/prez/paris.js22/#/

希望這回答了你的需要。

+0

感謝您的回覆。 但正如我做快速概述它是某種類似數據庫引擎像indexeddb有一些利弊,我的問題是如何將我的當前數據庫預填充數據移動到其他計算機和手機。 – Madnik7G 2012-11-09 17:44:56

6

我認爲lunr.js必須考慮。它有三倍於Github上的星星。