2009-08-31 30 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/