solr或sphinx? 哪个更好?

可能重复:
选择一个独立的全文搜索服务器:Sphinx还是SOLR?

我将使用它在我的ruby on rails app上进行全文搜索。

这是最好的选择。

solr用java来做这个工作。 或ruby中的sphix?

我没有使用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

Solr可以用Java实现,但这主要是一个实现细节。 Sphinx是基于C ++的; 你知道C ++吗? LucidImagination 为Solr发行版提供了一个方便的LucidWorks,可以快速部署那些不熟悉Java的人。 具有讽刺意味的是,Solr比Sphinx具有更好的Ruby集成。 有act_as_solr插入ActiveRecord,在纯ruby级别有一些很棒的选项,但这不是你的用例。 您可能正在使用rails,但无论您选择的服务器端语言是什么,您可能需要考虑使用AJAX-Solr并且它有一个很棒的演示 。 最后,Solr绝对是一个比Sphinx更大的项目,有更多的历史和信息可以帮助你包括我的书 。 LucidImagination也提供免费的PDF参考指南。

虽然sphinx有craigslist,但Solr有http://www.lucidimagination.com/why-lucid/who-uses-lucene-solr

所以我认为答案很清楚。

我试过了两个,他们都很棒。 就我而言,solr需要java(因为它基于lucene),而sphinx则不需要。 这就是为什么我选择狮身人面像,除非我有一个很好的理由想要专门的solr。

我的经验是针对小数据,思考sphinx(或者超级)是一个简单的搜索解决方案,可以用于开发人员只是想要运行一些东西。 一旦数据大于db中的十万行,则两个插件都会显示它们与活动记录的紧密耦合程度。 然后必须在执行sphinx索引(在cron中,在部署中等),执行索引的频率,使用的delta索引以及索引所花费的时间等之间平衡微妙的舞蹈。 此外,一旦您的数据变得复杂,在搜索中应该如何以及应该显示什么结果,您开始觉得sphinx的可定制性是有限的。

我们正在将搜索从sphinx插件转移到与我们的活动记录模型的开发和部署生命周期无关的内容中。 我们还没有决定是否继续使用sphinx或切换到solr。 我们只是希望将搜索和索引与模型分离,并将其拉出到我们的rails应用程序所说的自己的服务中。

我在不同的项目中使用了它们。 我会留下solr,因为它更容易安装:但这只是我的经验。 您可以在此处获取更多信息。

我也试图比较Solr / Sphinx并找到了另一种不同的方式。它的搜索function:

  • 严格的订单操作员
  • SENTENCE / PARAGRAPH搜索

如果这些function在开发环境中很重要,请看一下。