Lucene,Sphinx,Postgresql,MySQL?
我正在构建一个Django站点,并且正在寻找一个搜索引擎。
几名候选人:
带Compass / Solr的Lucene / Lucene
狮身人面像
Postgresql内置全文搜索
MySQl内置全文搜索
选择标准:
任何对上述搜索引擎或其他引擎不在列表中的搜索引擎有经验的人 - 我很乐意听取您的意见。
编辑:至于索引需求,随着用户不断输入数据到网站,这些数据将需要不断索引。 它不一定是实时的,但理想情况下,新数据会在指数中显示,延迟时间不会超过15-30分钟
很高兴看到有人关于Lucene的声音 - 因为我对此一无所知。
另一方面,狮身人面像,我很清楚,所以让我们看看我能否得到一些帮助。
我不知道这适用于你的情况,但Evan Weaver比较了一些常见的Rails搜索选项(Sphinx,Ferret(Lucene for Ruby的一个端口)和Solr),并运行了一些基准测试。 我想可能是有用的。
我还没有深入探究MySQL的全文搜索的深度,但我知道它不会与Sphinx,Lucene或Solr进行速度上或功能上的竞争。
我不知道Sphinx,但对于Lucene与数据库全文搜索,我认为Lucene的性能是无与伦比的。 无论您需要搜索多少条记录,只要您已正确设置Lucene索引,您应该能够在10 ms内完成几乎任何搜索。
尽管这是最大的障碍:个人而言,我认为将Lucene集成到您的项目中并不容易。 当然,设置它并不难,所以你可以做一些基本的搜索,但是如果你想从中获得最大的性能,那么你肯定需要一本关于Lucene的好书。
至于CPU和RAM的要求,在Lucene中执行搜索并不会过多地处理你的CPU,虽然索引你的数据是,尽管你不会太频繁地这样做(可能一天一次或两次),所以这不是很多障碍。
它并没有回答你所有的问题,但总之,如果你有很多数据需要搜索,并且你需要很好的性能,那么我认为Lucene肯定是一条可行的路。 如果你不会有那么多的数据要搜索,那么你不妨去数据库全文搜索。 在我的书中设置MySQL全文搜索一定更容易。
我很惊讶没有发布关于Solr的更多信息。 Solr与狮身人面像非常相似,但具有更多高级功能(AFAIK,因为我没有使用狮身人面像 - 只能阅读它)。
下面链接的答案详细介绍了一些关于狮身人面像也适用于Solr的内容。 全文搜索引擎比较 - Lucene,Sphinx,Postgresql,MySQL?
Solr还提供以下附加功能:
顺便说一下,有更多的功能吨; 然而,我已经列出了我在生产中实际使用的功能。 顺便说一句,MySQL支持上面列表中的#1,#3和#11(有限)。 对于您正在查找的功能,关系数据库不会削减它。 我会马上消除这些。
此外,另一个好处是,Solr(实际上,Lucene实际上)是一个文档数据库(例如NoSQL),所以其他文档数据库的诸多好处可以通过Solr实现。 换句话说,你可以使用它不仅仅是搜索(即性能)。 获得创意:)
链接地址: http://www.djcxy.com/p/38721.html