Solr和ElasticSearch对比详解(5大核心区别对比)

Solr和ElasticSearch对比详解(5大核心区别对比)-mikechen

现在主流的搜索引擎大概有Solr,ElasticSearch,下面重点详解Solr与ElaticSearch对比区别。

Solr

Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。

Solr 于2006 年首次发布到开源,长期以来一直占据着搜索引擎领域,并且是任何需要搜索功能的人的首选引擎。

Solr 在搜索领域占据了多年的主导地位,然后在 2010 年左右,Elasticsearch 成为市场上的另一种选择。

 

ElasticSearch

Solr和ElasticSearch对比详解(5大核心区别对比)-mikechen

ElaticSearch,简称为ES, 是一款大数据场景下的分布式全文搜索引擎,是建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。

Elaticsearch是ELK生态中的的一个产品,ELK代表的是:E就是ElasticSearch,L就是Logstach,K就是kibana。

ElasticSearch是2010年后,快速崛起的一个搜索引擎,目前的使用率高于Solr 。

 

Solr和ElasticSearch对比

Solr和ElasticSearch这两个搜索引擎都是围绕核心底层搜索库 Lucene 构建的,但它们又是不同的。

1.数据源对比

Solr接受来自不同来源的数据,比如:常见的XML文件,以及CSV文件、PDF文件等。

ElasticSearch除了支持Solr的数据源外,还可以支持其他来源的数据,比如:

AWS SQS、DynamoDB(Amazon NoSQL)、Git、Kafka、MongoDB、、RabbitMQ、Redis等等,Elasticsearch支持的数据源更多。

 

2.性能的对比

1)单次对已有数据进行搜索,Solr更快,如下图所示:

Solr和ElasticSearch对比详解(5大核心区别对比)-mikechen
2)Solr建立索引时候,Solr会产生io阻塞,查询性能较差,实时搜索效率不高,ElasticSearch实时搜索效率高。
如下图所示:
Solr和ElasticSearch对比详解(5大核心区别对比)-mikechen
3)随着数据的增加,Solr的效率会变得更低,而ElasticSearch没有明显的变化。
如下图所示:
Solr和ElasticSearch对比详解(5大核心区别对比)-mikechen

3.安装和配置

与 Solr 相比,Elasticsearch 易于安装且非常轻巧,可以在几分钟内安装并运行 Elasticsearch。

Elasticsearch基于 JSON 的配置很简单,但如果要为文件中的每个配置指定注释,那么它不适合你。

总的来说,如果你的应用使用的是 JSON,那么 Elasticsearch 是一个更好的选择,否则,请使用 Solr。

 

4.搜索场景对比

Solr专注于文本搜索,而Elasticsearch则常用于查询,过滤和分组分析统计,这方面Elasticsearch更为高效。

因此当比较两者时,对那些不仅需要文本搜索,同时还需要复杂的时间序列搜索和聚合的应用程序而言,毫无疑问Elasticsearch是最佳选择。

Solr在传统的搜索应用中表现好于Elasticsearch,但在处理实时搜索应用时效率明显低于Elasticsearch。

 

5.可扩展性和分布式

Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能。

Elasticsearch设计用于云计算中,处理多租户不需要特殊配置,而Solr则需要更多的高级设置。

Elasticsearch非常易于扩展,可以说Elasticsearch天生就是分布式的,是转为云而设计,是分布式首选。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法