我想为这些页面的内容提供一个全文搜索(Lucene-like),这些页面的内容应该只是在CD-ROM上工作,而无需在客户机上安装软件.
JavaScript中的搜索引擎实现将是完美的解决方案,但是我无法找到任何看起来固体/当前/流行的东西?
我找到了这些:
jsFind
js-search
但是这两个项目似乎相当不活跃?
除了JavaScript中的特定搜索引擎之外,另一种解决方案是从javascript访问本地Lucene索引的能力:索引本身将使用Lucene构建,并与HTML文件一起复制到CD-Rom.
编辑:自己构建(见下文).
其实我自己建造了.现有的解决方案(我可以发现)是不可信的.
我想能够搜索一个显示为一页的很长的树(ul / li / ul …)它包含5000项.
在一个页面上显示这么长的树,听起来有点奇怪,但实际上崩溃/展开它比单独的页面更直观,而且由于我们离线,下载时间并不是一个问题(解析时间是,但是,但是Chrome是惊人的;-)
现代浏览器(FF和Chrome)提供的“搜索”功能有两个大问题:它们只搜索页面上的可见项目,并且无法搜索不连续的单词.
我想要能够搜索折叠的项目(屏幕上不可见);搜索“一三”时,我想找到“一二三”(就像Google / Lucene一样);我想打开包含找到的项目的树的树枝.
所以,我做的是:
>创建一个反向索引的单词< - >来自列表的项目的ID(通过xslt)(文档中约4500个独特的单词)
>将此索引转换成一堆JavaScript数组(一个字=一个数组,包含ids)
>搜索时,与搜索词表示的数组相交
>步骤3返回一个ids数组,然后我可以打开/突出显示
它正是我需要的,它真的很快.更好的是,由于它从一个独立的“索引”(ids的数组)中搜索,它可以搜索列表甚至没有加载到浏览器中!