我已经成功使用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?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)