2009-08-31 55 views
14

我將在CD-ROM上提供一組靜態HTML頁面;這些網頁需要完全可見,並且不能訪問任何Internet。全文搜索CD-ROM上的靜態HTML文件,通過javascript

我想爲這些頁面的內容提供一個全文搜索(類似Lucene),它應該在CD-Rom上「正常工作」,而不需要在客戶機上安裝軟件。

在javascript中的搜索引擎實現將是完美的解決方案,但我很難找到任何看起來堅實/當前/流行... ...?

我發現這些: + jsFind + js-search

但兩者似乎項目並不活躍?

另一個解決方案,除了在javascript中的特定搜索引擎,將能夠從javascript訪問本地Lucene索引:索引本身將使用Lucene構建,並與HTML文件一起復制到CD-ROM。

編輯:自己建造它(見下文)。

回答

11

事實上,我自己建造它。

現有的解決方案(我可以找到)沒有說服力。

我希望能夠搜索顯示爲一頁的很長的樹(ul/li/ul ...);它包含5000多個項目。

在一個頁面上顯示這麼長的樹聽起來有點不可思議,但事實上,通過摺疊/展開它比單獨的頁面更直觀,而且由於我們處於離線狀態,所以下載時間不成問題(解析時間是,但Chrome是驚人的;-)

現代瀏覽器(無論如何FF和Chrome)提供的「搜索」功能有兩個大問題:他們只搜索頁面上的可見項目,他們不能搜索非連續的話。我想要能夠搜索摺疊的項目(屏幕上不可見);我希望能夠搜索摺疊的項目(屏幕上不可見);我希望能夠搜索摺疊的項目(屏幕上不可見);我希望能夠搜索摺疊的項目(屏幕上不可見)。我想在搜索「one three」時找到「one two three」(就像Google/Lucene一樣);我只想打開包含找到的項目的樹的分支。

所以,我所做的就是:

  1. 創建話<的倒排索引 - 項目> IDS從列表中(通過XSLT)
  2. 轉換(約文檔中4500個獨特的單詞。)這個索引來一堆的JavaScript陣列(一個字=一個陣列,含有IDS)
  3. 搜索時,相交由搜索詞語
  4. 步驟3返回ID數組表示的陣列,我可以再打開/高亮

它正是我所需要的,它非常快。更好的是,由於它從一個獨立的「索引」(id數組)搜索,所以它可以搜索何時該列表甚至沒有被加載到瀏覽器中!

+1

感謝您回報! – RichieHindle 2009-12-10 08:23:20

+1

有沒有我們可以看到的這個例子? – 2013-10-24 12:36:07

+0

你有這個公共場所嗎? – James 2015-12-09 03:42:49

2

Zoom Search Engine可以做到這一點。

我沒有使用CD版本,但我使用PHP版本爲我的網站,它工作得很好。

+0

我沒有看那個,謝謝你,但它似乎相當複雜,以適應我的特定需求。 – Bambax 2009-12-10 01:16:37

0

Fullproof是一個漂亮的小型JavaScript庫,可以充當您的文本搜索。在這種情況下,它會很有用,但它在「thick-javascript-webpage」模型中也很有用。

6

最初的問題是在09

問截至'14,有lunr.js描述爲:在瀏覽器中

簡單的全文搜索

Demo,和Github repo


UPDATE 2016年9月:輕量的模糊搜索,在JavaScript http://fusejs.io/