您现在的位置:融合网首页 > 工信 > 软件 >

在Square做了一年搜索的工程师想和你聊聊这些事(3)

来源:朱赟 作者:朱赟 责任编辑:方向 发表时间:2016-10-26 11:15 
核心提示:不同的搜索引擎如 Solr 和 ES 会提供不同的机制用于方便定制不同的 Query。两者对于 Scalability 如分布式搜索的处理也不尽相同。还有一些对灵活性或性能要求更高的地方,往往又会基于底层 Lucene,撇开 Solr 或者

不同的搜索引擎如 Solr 和 ES 会提供不同的机制用于方便定制不同的 Query。两者对于 Scalability 如分布式搜索的处理也不尽相同。还有一些对灵活性或性能要求更高的地方,往往又会基于底层 Lucene,撇开 Solr 或者 ES,定制自己的搜索系统。下面几个部分将进一步细化对其的讨论。

Solr 和 ElasticSearch 的对比

历史背景

Solr 问世于 2004 年,但是一开始只是某公司的内部项目。2006 年公开发布其源代码,2007 开始应用于一些高流量的网站。2008 年 1.3 版本的问世增加了一定的分布式搜索功能,例如可以做 Sharding。但是有很多功能和特征上的局限性。2010 年,ES 问世。ES 早期在各种搜索功能、社区、品牌、成熟度上都远远不及 Solr。但是因为它是针对分布式搜索而设计的,并且很快吸引了很多用户且不断迭代,因此很快在该领域成为 Solr 的有力的对手。虽然 2012 年 Solr 发布了 SolrCloud 对分布式搜索有了更好的支持,但是一来这时候 ES 已经在市场上站住脚,二来 ES 后起却在设计上致力于解决分布式搜索,因此很多需要分布式搜索的地方 ES 依然成为首选。

主要区别

有很多人对两者做过对比。例如:http://solr-vs-elasticsearch.com,从 API 、Infrastructure、Indexing、Searching、Customizability 等多个方面对两者的优缺点进行了详尽的阐述。总体说来,目前两者的版本对于大部分人需要的性能都有比较好的支持。并没有说哪个比另一个好。只有一些小的特性上有一些区别,例如 ES 的 percolation,Solr 的 Pivot Facets 等。这里说几个曾经比较大的区别(这些区别似乎在后来的版本中逐渐不那么明显)。

一是对于 Cluster 上各结点的管理。之前我在《白话 IT 之 从 ElasticSearch 到 ZooKeeper》一文中提过一些。ES 内部的节点管理系统存在 Split Brain 的问题。而 SolrCloud 使用 ZooKeeper 管理节点,解决了这个问题,但是意味着 SolrCloud 需要 ZooKeeper 的部署。但是因为 ES 其实也可以使用外部 ZooKeeper 来取代其内置的节点管理,因此,这一区别也就不那么明显。

二是 Re-sharding。我用 Solr 和 ES 是三年前,那时候两者都不能动态改变 Shard 的个数。每次改 Shard 个数,都要把所有 Index Data 抹掉重新做 Indexing(从头 ETL 所有数据)。所以我们一开始设计系统的时候,对于 Shard 的配置就特别谨慎。但是 2013 年之后,Solr 就可以支持 Shard Splitting 了。所以从这一点上来说,ES 有一定的局限性。但是 ES 同时又支持 Shard 的 Rebalancing,这一点 Solr 又没有。总之,如果一开始设计系统的时候知道两者的局限性,或者 Re-index 整个搜索系统数据的代价不是太大的情况下,Re-sharding 和 Shard Rebalancing 也不是什么大问题。

三是社区支持,也就是遇到疑难杂症的时候是不是能够很快找到解决方案。三年前的时候,Solr 比 ES 要成熟很多,那时候很多 ES 遇到的问题都很难找到详尽的解释,不过现在似乎两者的用户群都很成熟,并没有很明显的区别。此外因为 Solr 是完全开源的,ES 是允许任意用户 Contribute 但是必须 ES 的人 Review 和 Approve 才能 Merge。所以熟悉 Solr 的开发者可能更为众多。(责任编辑:方向)

  • “扫一扫”关注融合网微信号

免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。

第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。

根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。

第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。

个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。

融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net

对免责声明的解释、修改及更新权均属于融合网所有。

新闻关注排行榜

热门推荐 最新推荐

热门关键字

关于我们 - 融合文化 - 媒体报道 - 在线咨询 - 网站地图 - TAG标签 - 联系我们
Copyright © 2010-2020 融合网|DWRH.net 版权所有 联系邮箱:dwrh@dwrh.net 京公网安备 11011202002094号 京ICP备11014553号