现在主流的搜索引擎大概有Solr,ElasticSearch,下面重点详解Solr与ElaticSearch对比区别。
Solr
Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。
Solr 于2006 年首次发布到开源,长期以来一直占据着搜索引擎领域,并且是任何需要搜索功能的人的首选引擎。
Solr 在搜索领域占据了多年的主导地位,然后在 2010 年左右,Elasticsearch 成为市场上的另一种选择。
ElasticSearch
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更快,如下图所示:
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面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》