当前位置: 首页 > 面试题库 >

选择独立的全文本搜索服务器:Sphinx还是SOLR?[关闭]

巩阳秋
2023-03-14
问题内容

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。

8年前关闭。

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

  • 必须作为独立服务器运行,可以处理来自多个客户端的搜索请求
  • 必须能够通过对SQL查询的结果建立索引来进行“批量索引”:说“ SELECT id,text_to_index FROM document;”
  • 必须是免费软件,并且必须在以MySQL作为数据库的Linux上运行
  • 必须快速(排除MySQL的内部全文搜索)

我发现具有这些属性的替代方法是:

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

我的问题:

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

问题答案:

我已经成功使用Solr近两年了,并且从未使用过Sphinx,所以我显然有偏见。但是,我将通过引用文档或其他人来尝试保持客观。我还将为我的答案打补丁:-)

相似之处:

  • Solr和Sphinx都可以满足您的所有要求。它们速度很快,旨在高效地索引和搜索大量数据。
  • 两者都有使用它们的高流量站点的一长串(Solr,Sphinx)
  • 两者都提供商业支持。(Solr,狮身人面像)
  • 两者都提供针对多种平台/语言(Sphinx,Solr)的客户端API绑定
  • 两者都可以分布以提高速度和容量(Sphinx,Solr)

以下是一些区别:

  • Solr是一个Apache项目,显然已获得Apache2许可。Sphinx是GPLv2。这意味着,如果您需要在商业应用程序中嵌入或扩展(不仅是“使用”)Sphinx,则必须购买商业许可证(基本原理)
  • Solr可以轻松嵌入 Java应用程序中。
  • Solr建立在Lucene的基础上,Lucene是一项经过8年验证的成熟技术,拥有 庞大的 用户群(这只是一小部分)。每当Lucene获得新功能或加速时,Solr也会获得。致力于Solr的许多开发人员也是Lucene的贡献者。
  • Sphinx与RDBMS紧密集成,尤其是MySQL。
  • Solr可以与Hadoop集成以构建分布式应用程序
  • Solr可以与Nutch集成在一起,以快速构建具有爬虫功能的成熟的Web搜索引擎。
  • Solr可以索引专有格式,例如Microsoft Word,PDF等。狮身人面像不能。
  • Solr 开箱即用,带有拼写检查器。
  • Solr提供了方面支持。在Sphinx中刻面需要更多的工作。
  • Sphinx不允许对字段数据进行部分索引更新。
  • 在Sphinx中,所有文档ID必须是唯一的无符号非零整数。Solr 甚至不需要许多操作的唯一键,并且唯一键可以是整数或字符串。
  • Solr支持字段折叠(当前仅作为附加补丁程序),以避免重复相似的结果。Sphinx似乎没有提供任何此类功能
  • 尽管Sphinx仅设计用于检索文档ID,但在Solr中,您可以直接获取包含几乎任何类型数据的整个文档,从而使其与任何外部数据存储区更加独立,并节省了额外的往返时间。
  • Solr(除用于嵌入式环境外)在Java Web容器(例如Tomcat或Jetty)中运行,它们需要其他特定的配置和调整(或者您可以使用随附的Jetty并使用来启动它java -jar start.jar)。Sphinx没有其他配置。

相关问题:

  • 用Rails进行全文搜索
  • 全文搜索引擎的比较-Lucene,Sphinx,Postgresql,MySQL?


 类似资料:
  • 我正在通过manning阅读Solr in Action,对提交和各种搜索器升温选项几乎没有问题。 属性告诉solr根据指定的时间间隔(maxTime)、doc Count(maxDocs)提交要写入磁盘的文档。 问题1:-maxTime和maxDocs是否可以一起提供,或者它们是相互排斥的 自动提交有一个名为openNewSearcher的子文件。 书中说openNewSearcher如果在每次

  • 问题内容: 我们计划在MongoDB中存储数百万个文档,因此非常需要全文搜索。我读过Elasticsearch和Solr是全文搜索的最佳可用解决方案。 Elastic搜索是否足够成熟,可以用于Mongodb全文搜索?我们还将分摊这些收藏。Elasticsearch是否适用于分片集合? 使用Elasticsearch或Solr有什么优缺点? MongoDB能够进行全文搜索吗? 问题答案: Mongo

  • 问题内容: 我正在建立Django网站,并且正在寻找搜索引擎。 一些候选人: Lucene / Lucene与指南针/ Solr 狮身人面像 PostgreSQL内置全文本搜索 MySQl内置全文本搜索 选择标准: 结果相关性和排名 搜索和索引速度 易于使用,易于与Django集成 资源需求-网站将托管在VPS上,因此理想情况下,搜索引擎不需要大量的RAM和CPU 可扩展性 其他功能,例如“您的意

  • 我知道关于xpath有成千上万个简单的问题,但我不知道如何组合两个不太简单的表达式。。。 我的xml结构: 按类别选择 我知道通过在类后搜索可以选择div: 按文本选择 要选择我知道的span,我只需添加span,然后我想通过文本进行选择。对于该用例,我得到了xpath(这里的表单): 这些选择器都正常工作,但我想将它们结合起来 搜索类别“btn” 我试图这样想,但那不起作用测试示例: 即使有效,