选择独立全文搜索服务器:斯芬克斯或SOLR? [关闭](Choosing a stand-alo

2019-06-18 11:54发布

我正在寻找具有以下属性的独立全文搜索服务器:

  • 必须作为可服务于多个客户端搜索请求一个独立的服务器运行
  • 必须能够通过索引SQL查询的结果做“批量索引”:说“SELECT ID,text_to_index FROM文件;”
  • 必须是自由软件,必须在Linux上使用MySQL作为数据库运行
  • 一定要快(排除了MySQL的内部全文搜索)

具有这些特性我已经找到了替代品:

  • Solr的(基于Lucene)
  • ElasticSearch(也基于Lucene)
  • 狮身人面像

我的问题:

  • 他们如何比较?
  • 我错过了任何的替代品?
  • 我知道,每个用例是不同的,但是否有某些情况下,我肯定希望使用某个软件包?

Answer 1:

我一直在使用Solr的成功为近2年了,从来没有使用过狮身人面像,所以我显然有失偏颇。 不过,我会尽量保持客观引述的文档或其他人。 我还会采取相应补丁,以我的答案:-)

相似点:

  • 无论Solr的狮身人面像和满足您的所有需求。 他们速度快,设计索引和高效地搜索数据的大型机构。
  • 无论使用它们具有高流量的网站的一个长长的清单( Solr中 , 狮身人面像 )
  • 两者都提供商业支持。 ( Solr的 , 斯芬克斯 )
  • 两者都提供客户端API绑定多个平台/语言( 狮身人面像 , Solr的 )
  • 既可以是分布式的以提高速度和容量( 斯芬克斯 , Solr的 )

这里有一些不同之处:

  • Solr的,是一个Apache项目,显然是Apache2的许可。 狮身人面像GPLv2许可 。 这意味着,如果你需要嵌入或延长(不只是“使用”)狮身人面像在商业应用程序,你就必须购买商业许可( 理 )
  • Solr的是很容易嵌入在Java应用程序。
  • Solr的是建立在Lucene的,这是一种成熟的技术在顶部8岁了庞大的用户基础 (这只是一小部分)。 每当Lucene的得到一个新的功能或加速,Solr的得到它了。 许多开发者在提交到Solr的也Lucene的提交者。
  • 狮身人面像更紧密地集成了RDBMS的,尤其是MySQL的。
  • Solr的可使用Hadoop构建分布式应用集成
  • Solr的可使用Nutch集成,快速构建与履带一个不折不扣的网络搜索引擎 。
  • Solr的CAN 指数专有格式如Microsoft Word,PDF等 。 狮身人面像不能 。
  • Solr的配备了一个拼写检查开箱 。
  • Solr的带有面开箱即用支持的 。 在狮身人面像小面需要更多的工作 。
  • 狮身人面像不允许现场数据部分索引更新 。
  • 在狮身人面像, 所有的文档ID必须是唯一的无符号非零整数 。 Solr的甚至不需要为很多操作的唯一密钥 ,以及唯一键可以是整数或字符串。
  • Solr的支持字段塌陷 (目前仅作为附加贴片),以避免重复类似的结果。 狮身人面像似乎并没有提供任何这样的功能。
  • 虽然狮身人面像被设计成只检索文档ID ,Solr中你可以直接得到整个文档与几乎任何类型的数据,使之更独立于任何外部数据存储,并节省额外的往返。
  • Solr的,除非使用嵌入式的时候,在运行的Java Web容器 ,如Tomcat或Jetty,这需要额外的具体配置和调整 (或者可以使用包括码头 ,只是用它推出java -jar start.jar )。 狮身人面像有没有额外的配置。

相关的问题:

  • 全文搜索使用Rails
  • Lucene的,狮身人面像和PostgreSQL,MySQL的-全文搜索引擎的比较?


Answer 2:

除非你需要的任何专有的方式扩展搜索功能,狮身人面像就是你最好的选择。

狮身人面像的优点:

  1. 开发和安装速度更快
  2. 更好,速度更快的聚集。 这是我们的杀手级功能。
  3. 不是XML。 这是最终排除了Solr的我们。 我们不得不返回相当大的结果集(想想数百结果),然后汇总它们自己因为Solr的聚集缺乏。 的时间量来序列化和XML只是绝杀性能。 对于小的结果集,虽然,这是完全正常的。
  4. 我在一个开源应用所看到最好的文档

Solr的优势:

  1. 可以延长。
  2. 可以直接从Web应用程序,也就是打它,你可以自动完成样的搜索直接通过AJAX打Solr的服务器。


Answer 3:

注意:有很多用户在考虑同样的问题。

因此,要回答的问题:

这为什么?

  • 如果你打算在你的web应用程序(例如,网站的搜索引擎)来使用它使用Solr的 。 这肯定会变成很大,这要归功于它的API。 你肯定会需要一个功率为web应用程序。

  • 如果你想通过大量的文档搜索使用狮身人面像 /文件真正快。 该指标真正快。 我建议不要在涉及JSON或XML解析,以获得搜索结果的应用程序中使用它。 用它直接分贝搜索。 它在MySQL的伟大工程。

备择方案

虽然这些都是巨头,也有很多人。 此外,还有那些用这些来驱动他们的自定义框架。 所以,我要说的是,你真的没有错过任何。 虽然有一个elasticsearch具有良好的用户基础。



Answer 4:

我一直在使用狮身人面像快一年了,现在,它已经达到惊人。 我可以索引150万个文档大约一分钟我的MacBook,甚至更快的服务器上。 我也使用狮身人面像,以搜索限制在特定的纬度和经度之内的地方,这是非常快的。 此外,结果排名是非常tweakable。 易于安装和设置,如果你读一个或两个教程。 几乎1.0地位,但他们的RC版已经坚如磐石。



Answer 5:

Lucene的/ Solr的似乎更多特色,并与商业较长年,一个更强大的用户社区。 恕我直言,如果你能得到过去的初始设置问题,因为有些似乎已经面临(不是我们),那么我会说的Lucene / Solr的是你最好的选择。



文章来源: Choosing a stand-alone full-text search server: Sphinx or SOLR? [closed]