我正在为node.js应用程序寻找一个好的开源(使用LGPL或许可许可证)索引引擎,类似于Lucene。我正在寻找进程内索引和搜索,对索引像Sphinx或Solr这样的服务器不感兴趣。
我不害怕为C / C ++库创建绑定,所以我也对这些建议持开放态度。
到目前为止我找到了
我可以“自己动手”,但我更愿意使用现有的解决方案。
编辑:为什么我对独立的索引服务器不感兴趣:我使用快速的进程内键值存储数据库,因此不得不走出去查询过程。
答案 0 :(得分:16)
只是我之前回答的更新 - 因为有太多的讨论我不想让这个更新迷失。
您可以下载 here:
答案 1 :(得分:13)
是的,请查看新发布的Norch
Norch基于node.js的search-index模块,而该模块又基于Google强大的levelDB索引。
编辑:使用search-index module快速“进行中”搜索功能。
答案 2 :(得分:11)
你能解释为什么你对使用外部索引不感兴趣吗?对于全文搜索,我总是恢复使用PostgreSQL的全文索引功能 - 它非常快,索引不需要全索引更新(如Solr那样),并且返回的结果比基于Lucene的解决方案(如弹性搜索)更快)。
但如果你真的想在进程中进行,你可能想看一下Lunr:http://lunrjs.com/ - 它在Node中工作,而不仅仅是在浏览器中。
编辑:我在这里得到的关于Postgres的统计数据比Lucene更快:http://fr.slideshare.net/billkarwin/full-text-search-in-postgresql - 见幻灯片49.
编辑:不确定你在进程内/进程中需要什么样的速度,但我们的PostgreSQL数据库每秒可以进行100k查询而不会出汗,而且它甚至不在SSD上。也许您过度考虑了性能需求 - 毕竟一旦您需要转到多个节点(或使用集群来利用所有CPU),您仍然需要在进程中转储。
答案 3 :(得分:2)
全文搜索灯,是一个纯粹的JS编写节点模块,用于进行全文搜索。 在这里,您可以找到当前的git存储库链接:https://github.com/frankred/node-full-text-search-light