是否有一个很好的索引/搜索引擎的Node.js
Is there a good indexing / search engine for Node.js?
我正在寻找一个好的开源(与LGPL或许可许可)索引引擎为node.js应用程序,像Lucene。我正在寻找进程内索引和搜索,对Sphinx或Solr等索引服务器不感兴趣。
我也不害怕为C/c++库创建绑定,所以我也愿意接受这些建议。
到目前为止我找到了
- node- cluene 它似乎不再被积极维护(并且有几个开放的问题)
- 我可以为 Lucene创建自己的绑定,但它似乎是相当稀疏的维护,其当前版本也相当落后于Java Lucene
- Apache Lucy,它似乎是为动态语言创建绑定而设计的,但到目前为止,它们没有节点绑定(也没有C API),我没有找到任何关于创建绑定的文档。我也没有找到任何关于它性能的基准测试。
- 节点搜索似乎被放弃了
- jsii这似乎仍然是一个原型,也被抛弃了
- full - proof仅用于在web浏览器中运行
- lunr.js这似乎只允许序列化整个索引,所以是不可扩展的
我可以"滚动我自己的",但我更喜欢使用已经存在的解决方案。
编辑:为什么我对一个独立的索引服务器不感兴趣:我使用一个快速的进程内键值存储数据库,所以它将是相当浪费的查询进程。
只是更新我之前的答案-因为有这么多的讨论,我不想让这个更新丢失。
你可以下载在:
是的,看看新发布的Norch
Norch是基于node.js的搜索索引模块,而node.js的搜索索引模块又基于Google强大的levelDB索引。
编辑:使用search-index模块实现快速的"进程内"搜索功能。你能解释一下为什么你不喜欢使用外部索引吗?对于全文搜索,我总是使用PostgreSQL的全文索引功能——它非常快,索引不需要完整的索引更新(像Solr那样),并且返回结果比基于Lucene的解决方案(如Elastic search)更快。
但是如果你真的想在进程中做,你可能想看看Lunr: http://lunrjs.com/-它在Node中工作,而不仅仅是在浏览器中。
编辑:这里是我得到我的统计数据在Postgres比Lucene快:http://fr.slideshare.net/billkarwin/full-text-search-in-postgresql -见幻灯片49。
编辑:不知道你想要的是什么速度的进/出进程,但是我们的PostgreSQL数据库可以毫不费力地每秒进行10万次查询,甚至在ssd上都没有。也许您过度考虑了性能需求——毕竟,一旦需要访问多个节点(或使用集群来利用所有cpu),无论如何都需要转储进程内数据。
全文搜索灯,是一个纯JS编写的节点模块,用于进行全文搜索。您可以在这里找到当前git存储库链接:https://github.com/frankred/node-full-text-search-light
- Node.js v6.2.0类扩展不是函数错误
- 如何使用 node.js 比较两个 json 数组
- Node.js's Buffer.writeFloatBE in Javascript
- node.js:setInterval()正在跳过调用
- 如何处理node.js节点mongodb中的连接和查询队列
- Node.js正在更改应用程序以使用集群模块
- 如何使用Node.js最有效地解析网页
- 在openshift node js应用程序中获取请求
- 正在删除node.js中已验证的网站
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 在索引.html和应用.js [node.js] 之间共享变量
- Node.js中的JavaScript原型对象效率
- 如何在构建node-webkit应用程序后获取外部资源
- node.js请求数据事件未在CORS ajax调用中触发
- 实现一个建立在google.com之上的自定义搜索引擎
- 使用node.js制作网站
- 使用Angular和Node上传文件
- 自动建议在我的搜索引擎上不起作用
- 使用node.js服务器中的evernote api获取note内容
- 是否有一个很好的索引/搜索引擎的Node.js