可能重复:
Choosing a stand-alone full-text search server: Sphinx or SOLR?
我将使用它在我的ruby on rails app上进行全文搜索。
这是最好的选择。
solr使用java来完成这项工作。或红宝石中的sphix?
答案 0 :(得分:6)
我没有使用Solr的经验,但是Sphinx很容易安装,快速且适用于Thinking Sphinx:http://freelancing-god.github.com/ts/en/indexing.html
还有一个很好的railscast: http://railscasts.com/episodes/120-thinking-sphinx
这家伙为你提供了一些与Sphinx合作的论据: http://jamesgolick.com/tags/ultrasphinx.html (他使用Ultrasphinx插件连接Rails和Sphinx。我试过两个并最终使用Thinking Sphinx)
你可以在这里找到两个插件的比较: http://reinh.com/blog/2008/07/14/a-thinking-mans-sphinx.html
答案 1 :(得分:3)
Solr可以用Java实现,但这主要是一个实现细节。 Sphinx是基于C ++的;你知道C ++吗? LucidImagination提供了一个方便的LucidWorks for Solr发行版,可以轻松地为那些不熟悉Java的人进行部署。 具有讽刺意味的是,Solr比Sphinx具有更好的Ruby集成。有acts_as_solr插入ActiveRecord,在纯红宝石级别也有一些很棒的选项,但这不是你的用例。您可能正在使用rails,但无论您选择哪种服务器端语言,您可能需要考虑使用AJAX-Solr并且它有一个fantastic demo。最后,Solr绝对是一个比Sphinx更大的项目,有更多的历史和信息可以帮助你,包括my book。 LucidImagination也提供免费的PDF参考指南。
答案 2 :(得分:2)
虽然sphinx有craigslist,但Solr有 http://www.lucidimagination.com/why-lucid/who-uses-lucene-solr
所以我认为答案很清楚。
答案 3 :(得分:1)
我试过了两个,他们都很棒。就我而言,solr需要java(因为它基于lucene),而sphinx则不需要。这就是为什么我选择狮身人面像,除非我有充分的理由特别想要solr。
答案 4 :(得分:0)
我的经验是针对小数据,思考sphinx(或者超级)一直是一个简单的搜索解决方案,可供开发人员使用,以便让某些东西运行起来。一旦数据大于db中的十万行,那么两个插件都会暴露它们与活动记录的紧密耦合程度。然后必须平衡精神之间的舞蹈,在执行sphinx索引时(在cron中,在部署中等),运行索引的频率,使用的delta索引,以及索引占用的时间等等。此外,一旦您的数据变得复杂,在搜索中应该如何以及应该显示什么结果,您就会开始觉得sphinx的可定制性是有限的。
我们正在将搜索从sphinx插件转移到与我们的活动记录模型的开发和部署生命周期无关的内容中。我们还没有决定是否继续使用sphinx或切换到solr。我们只是希望将搜索和索引与模型分离,并将其拉出到我们的rails应用程序所说的自己的服务中。
答案 5 :(得分:0)
我在不同的项目中都使用了它们。我会留下solr,因为它更容易安装:但这只是我的经验。您可以获得更多信息here。
答案 6 :(得分:0)
我也在尝试比较Solr / Sphinx,并找到了另一种不同的方式。它的搜索功能:
如果这些功能在开发环境中非常重要,请查看this。