[转载]Solr4.0(SolrCloud) & ElasticSearch(ES) 比较(二)

更新:2018年07月02日 17:26 随笔 阅读(0)
标签: @Solr4 @SolrCloud @ElasticSearch #作者: 未知
开始solr4.0(cloud)之前我们先看看ElasticSearch(ES)与solr3.6对一些常见feature支持情况的比较。强调这里是solr3.6而非solr4.0。两者的根本区别是后者基于分布式的架构。

开始solr4.0(cloud)之前我们先看看ElasticSearch(ES)与solr3.6对一些常见feature支持情况的比较。强调这里是solr3.6而非solr4.0。两者的根本区别是后者基于分布式的架构。

上面是一些常见feature的比较。这里要说的是最后的两项。

索引的rebuild 索引的重构需要对源数据的存储。这是搜素引擎自己要关心的安全问题。目前存储选择主要是传统的数据库或者分布式数据库(DDB)和类似的NoSql数据库。传统的数据库免费的自然是MySql。商业数据库以oracal居多。而云存储的备份选择就比较多了:CouchDB,Redis,MongoDB,Membase,Neo4j,HBase,Cassandra等等,选择原则各有不同。参考8种Nosql数据库系统对比

不管是传统RDB或者新兴Nosql存储都涉及到搜索引擎和存储系统的整合。以冗余的数据空间来换取索引内容的安全。这种妥协对于商用搜索引擎是十分必要的。

跨DC的备份 目前尚未有开源搜索项目支持。实际上开源搜索项目主要还是针对大中型搜索集群,对于跨DC的超大规模集群并不是目前开源项目的目标。可能是考虑到主流用户群的需求还是集中在中大型甚至小型搜索上(google是在好几年前就实现了跨DC的能力)。

下面再看看对一些重要feature在ElasticSearch和Solr3.6上进行添加或修改的难易程度

可以看到除了在添加、删除shard上ES不能支持外。其特征是多余solr3.6的

Chang shard这里主要指在服务运行时增加或删除shard,尤其是增加shard通常是一个重要的feature。我们知道应用数据是不断增加的,随着数据的积累,索引请求的增加,加入新的shard来出理不断增长的数据就成为一个和合理而自然的需要。然而ES的架构决定其很难做到shard的伸缩。而同样的solr包括现在的4.0版也不支持shard数的热增长。假如要强行在shard层做修改以试图支持这种Scalability,那么ES的代价将高于solr(4.0) 。但对于shard的热增长两者都可以通过其它方式去较好的解决。此处不详述。

上面我们看了ES和Solr3.6的比较。我们看SOlr4.0有哪些变动,先看看4.0的架构

Solr4.0相对于Solr3.6的新特征:

•统一配置集群.

•查询自动负载均衡和失败回滚.

•使用ZooKeeper进行集群协调和配置.

Solr4.0 与ES的feature比较

上面是Solr4.0 alpha版的特征为基础。Solr4.0在Beta版之后又增加了collection的概念,相当于Tennacy。所以此处Multi Tenancy 在Solr4.0中是支持的了。其他重要的feaure两者相差不大。

权限控制:这里要特别提出权限验证的问题。对于商用产品权限验证是必须的。两者都不支持权限验证。需要用户自己增加这一块的功能。然而就目前来看,两者在增加该功能的难易程度来说,ES是相对容易很多。原因为ES内部节点之间使用自定义协议;而Solr4.0内部节点之间使用了和外部一样的http协议,并且节点间的通信关系混乱,所以对目前的Solr4.0增加权限验证以及ACL将很难寻找到一个优雅的解决方案,但并不是不可以。

除此之外solr4.0还有一些其它难于再次开发的地方,以后再叙述。

下一次将把Solr4.0 alpha同ES的性能测试比较结果列出来,以作参考。由于alpha版并不成熟,性能上可能会和正式版有一定差距。

总结:总体来说Solr4.0正式版也刚发布不到半年。存在的问题不少,其架构能否经得起考验,还有待时间来证明。从代码的优雅程度还是和ES有一定的差距,但代码的易读性上好于ES(ES大量使用模式,且调用层次太深,方法的追踪麻烦)


感谢阅读本文,若本文对你有所帮助,不妨将其推荐给好友,与好友一起分享。
文章仅做学习交流使用,若您认为文章存在侵权或不合法行为等,请及时联系我们。
文章之版权归其合法拥者所有。转载原创内容无需联系本站站长,请注明原文出处及链接。
#原文:[我心动了] http://www.wxdl.cn/solr4-solrcloud-elasticsearch-es-2.html
更新:2018年07月02日 17:26 随笔 阅读(0)
标签: @Solr4 @SolrCloud @ElasticSearch #作者: 未知

阅读延伸

[转载]Solr4.0(SolrCloud) & ElasticSearch(ES) 比较(二)

开始solr4.0(cloud)之前我们先看看ElasticSearch(ES)与solr3.6对一些常见feature支持情况的比较。强调这里是solr3.6而非solr4.0。两者的根本区别是后者基于分布式的架构。

[转载]Solr4.0(SolrCloud) & ElasticSearch(ES) 比较(一)

Team之前的search解决方案不同于行业常见架构(solr及其它开源项目),其searcher和indexer在分布式环境下是分离的,而solr等opensourceproject基本都是放在单个instance的。两者以单独的instance存在,甚至可以searcher部署在A机器上,indexer部署在B机器上。当然我们也支持将两者放在同一个instance里。这种架构足以满足之前的需求,并且运行良好。