我正在为 node.js 应用程序寻找一个好的开源(使用 LGPL 或许可许可证)索引引擎,比如 Lucene。我正在寻找进程内索引和搜索,并且对像 Sphinx 或 Solr 这样的索引服务器不感兴趣。
我也不害怕为 C/C++ 库创建绑定,所以我也愿意接受这些建议。
到目前为止我发现
- node-clucene似乎不再被积极维护(并且有几个未解决的问题)
- 我可以为CLucene创建自己的绑定,但它似乎很少维护,而且它的当前版本也远远落后于 Java Lucene
- Apache Lucy似乎是为为动态语言创建绑定而设计的,但到目前为止它们没有节点绑定(也没有 C API),而且我还没有找到任何关于创建绑定的文档。我也没有找到任何关于其性能的基准。
- 似乎被放弃的节点搜索
- jsii似乎仍然是一个原型,也被放弃了
- fullproof,仅用于在网络浏览器中运行
- lunr.js似乎只允许序列化整个索引,因此不可扩展
我可以“自己动手”,但我更喜欢使用已经存在的解决方案。
编辑:为什么我对独立的索引服务器不感兴趣:我使用一个快速的进程内键值存储数据库,所以不得不退出进程进行查询是相当浪费的。