Ferret 是否足够稳定,可以在生产中使用?
Ferret lucene 的 ruby 实现相当强大,但是 2008 年的在线讨论似乎表明 ferret 有许多稳定性问题,并且会定期出现段错误。今年已有大约 10 个提交,因此该项目的活动相当少。
Ferret 是否足够稳定,可以在生产中使用?
Ferret the ruby implementation of lucene is reasonably powerful, however online discussions in 2008 seemed to indicate ferret had many stability issues and would segfault regularly. There have been 10 or so commits this year so the project has pretty light activity.
Is Ferret stable enough to use in production?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
社区似乎已经退出 Ferret,两个主要竞争者是 Sphinx 和 Apache Solr。
虽然我没有任何确凿的证据表明“社区撤退”(是的,它是主观的),但它背后似乎没有太多惯性,我认为有更多功能丰富和成熟的选择(同样,Sphinx 和 Solr仅举几例)。
It seems that the community has pulled back from Ferret and the two primary contenders are Sphinx and Apache Solr.
While I do not have any hard evidence of "the community pulling back" (yes, its subjective) it just seems like there is not much inertia behind it and I think there are more feature-rich and mature options (again, Sphinx and Solr to just name a few).
半年前(2009年7月)我在一个项目中使用了它。这是一个节日的数据库,所以它只运行了大约 10 天(大约每分钟 20 次查询,每小时 50 次更新),我遇到了一些问题。有几次我遇到了索引问题,我不得不重建它,也有几次服务器崩溃了。然后我没有时间切换到其他东西,所以我只是添加了简单的 cron 脚本,该脚本每分钟检查一次 ferret 服务器是否正在运行,如果没有,则启动它。
但我不知道它现在怎么样(我什至不知道是否有更新的版本)。
现在我正在考虑改用不同的东西,但我稍后会研究这个。
I used it for one project half year ago (July 2009). It was a database for one of festivals, so it just run for about 10 days (about 20 queries per minute with 50 updates per hour) and I had some problems. Few times I had problem with indexes and I had to rebuild it and few times server crashed. I didn't have time then to switch to something else, so I just added simple cron script that checked every minute if ferret server was running and, if not, it started it.
But I don't know how is it working now (I don't even know if there is a newer version).
Now I'm considering switching to something different, but I'll look into this later.
这取决于你的需要。我运行 Ferret 已有 3 年了,过去几个月的 Ferret 部署相当复杂。我在生产中从未遇到过崩溃,但您必须小心部署。例如,您必须绝对确保您没有多个作家,但这并不困难。如果您想使用自己的过滤器和分析器进行自定义,则可以,但您必须首先进行测试并确保不会遇到奇怪的问题(我刚刚遇到了一个问题,我想已经解决了)。关键是,如果您小心的话,您就可以顺利进行部署,没有问题。
Ferret 允许您非常灵活且可定制地管理索引中的文档。您可以增量删除和更新文档和字段,这在 Sphinx 中很难做到。您还可以非常轻松地为不同字段分配权重。您可以轻松控制单词的索引和搜索方式。我认为,如果您想灵活地构建新应用程序,并想尝试不同的方法来索引单词和权衡字段,Ferret 的易用性是一个胜利。
我从来没有用过斯芬克斯。我听说过很多关于它的好消息,并且它正在积极开发(与 Ferret 不同)。但我的应用程序需要非常细粒度和频繁的增量更新,所以我坚持使用 Ferret。
It depends on your need. I've been running Ferret for 3 years now, and the past few months have a fairly complex Ferret deployment. I don't have crashes, ever, on production, but you have to be careful with your deployment. E.g. you have to absolutely make sure that you don't have multiple writers, but that's not difficult. If you want to customize with your own filter and analyzers, you can, but you have to test and make sure first you don't run into weird problems (I just ran into one and I think fixed it). The point is, if you are careful, you can get a good deployment going, no problem.
Ferret allows you to be very flexible and customizable in managing documents in your index. You can incrementally delete and update documents and fields, which is harder to do in Sphinx. You can also very easily assign weights to different fields. You can easily control how words should be indexed and searched. I think if you want to be flexible at building your new app, and want to try different ways to index words and weigh fields, Ferret's easy of use is a win.
I've never used Sphinx. I heard a lot of good things about it and it's actively developed (unlike Ferret). But my app requires very fine grained and frequent incremental updates, so I am stuck with Ferret.