有没有一个很好的Node.js的索引/search引擎?

我在为一个node.js应用程序寻找一个很好的开源 (使用LGPL或许可许可证)索引引擎,就像Lucene一样。 我正在寻找进程中的索引和search,而不喜欢索引Sphinx或Solr等服务器。

我不害怕为C / C ++库创build绑定,所以我也接受这些build议。

到目前为止我find了

  • 节点clucene似乎不再积极维护(并有几个公开的问题)
  • 我可以创build自己的CLucene绑定,但它似乎相当稀疏​​维护,其当前版本也相当落后于Java Lucene
  • Apache Lucy似乎是为创builddynamic语言绑定而devise的,但到目前为止,他们没有节点绑定(也没有C API),我还没有find任何有关创build绑定的文档。 我也没有find任何有关其performance的基准。
  • 似乎被放弃的节点search
  • jsii似乎仍然是一个原型,也被遗弃
  • 这是唯一的目的是运行在网页浏览器
  • lunr.js似乎只允许序列化整个索引,所以不可扩展

我可以“推出自己的”,但我更愿意使用现有的解决scheme。

编辑:为什么我对独立的索引服务器不感兴趣:我使用快速的进程内键值存储数据库,所以这将是一个非常浪费,不得不离开进程查询。

只是上面我的回答更新 – 因为有太多的讨论,我不希望这个更新丢失。

你可以在这里下载: https : //github.com/fergiemcdowall/norch

是的,看看刚刚发布的诺奇

Norch基于node.js的search索引模块,该模块又基于Google强大的levelDB索引。

编辑:使用search索引模块进行快速“进程内”searchfunction。

你能解释一下为什么你不使用外部索引吗? 对于全文search,我总是回复到使用PostgreSQL的全文索引function – 它非常快速,索引不需要全索引更新(就像Solr一样),结果比基于Lucene的解决scheme(如Elastic Search )。

但是,如果你真的想在进程中做,你可能想看Lunr: http ://lunrjs.com/ – 它在Node中工作,而不仅仅是在浏览器中。

编辑:这里是我的Postgres的速度比Lucene快: http : //fr.slideshare.net/billkarwin/full-text-search-in-postgresql – 请参见第49页。

编辑:不知道你在寻找什么样的速度,但是我们的PostgreSQL数据库每秒可以做10万个查询,而不会冒出汗来,而且它甚至不在SSD上。 也许你在考虑你的性能需求 – 毕竟一旦你需要去多个节点(或者使用集群来利用所有的CPU),你仍然需要在进程中进行转储。

全文searchLight ,是一个纯JS编写的节点模块,用于全文search。 在这里你可以find当前的git仓库链接: https : //github.com/frankred/node-full-text-search-light