网上有很多 Apache Solr 和 ElasticSearch 之间的比较,我来写写我的看法。
- Solr 可能是构建标准搜索应用时的首选武器,但 Elasticsearch 将其提升到了一个新的层次,它的架构可以创建现代实时搜索应用。
- Percolation 是一个令人兴奋的创新功能,这个功能能轻松打败 Solr。
- Elasticsearch 具有可扩展性、速度快,并且是一个集成。Adios Solr,很高兴认识你。
维基百科上关于 ElasticSearch 的文章引用了德国著名的 iX 杂志的比较,列举了优缺点,基本概括了上面已经说过的内容。
优势
- ElasticSearch 是分布式的。不需要单独的项目。复制也是近实时的,也就是所谓的 “ 推送复制 ”。
- ElasticSearch 完全支持 Apache Lucene 的近实时搜索。
- 处理 multitenancy 不是一个特殊的配置,在 Solr 中需要更高级的设置。
- ElasticSearch 引入了网关的概念,这使得完全备份变得更加容易。
劣势
- 只有一个主开发者
- 没有自动升温功能
总结
它们是完全不同的技术,解决的是完全不同的用例,因此不能进行任何有意义的比较。
关于 ElasticSearch 的部署教程,推荐大家看这篇文章:elasticsearch 初学终极教程: 从零到一
Apache Solr – Apache Solr 提供了 Lucene 的功能,在一个简单易用、快速的搜索服务器中提供了 Lucene 的功能,并具有额外的功能,如分面、可扩展性等。
Amazon ElastiCache – Amazon ElastiCache 是一种 Web 服务,可轻松部署、操作和扩展云中的内存内缓存。
请注意,Amazon ElastiCache 是与 Memcached 协议兼容的,Memcached 是一种被广泛采用的内存对象缓存系统,因此您现在使用现有 Memcached 环境的代码、应用程序和流行的工具都将与该服务无缝地配合使用
也许大家已经把它和下面两个相关的技术混淆了,下面我们来看看这两个相关的技术。
ElasticSearch— 它是一个基于 Apache Lucene 之上构建的开源(Apache 2)、分布式、RESTful、搜索引擎。
Amazon CloudSearch— 亚马逊云搜索(Amazon CloudSearch)是一个完全管理的云端搜索服务,可以让客户轻松地将快速、高扩展性的搜索功能集成到他们的应用中。
Solr 和 ElasticSearch 的产品乍听起来非常相似,都使用了相同的后端搜索引擎,即 Apache Lucene。
Solr 比较老,功能相当丰富,也相当成熟,因此被广泛使用,而 ElasticSearch 则是专门为解决 Solr 的不足之处而开发的,在现代云环境下的可扩展性要求,而这些都是 Solr 难以解决的。
因此,将 ElasticSearch 与最近推出的 Amazon CloudSearch 进行比较可能是最有用的,因为两者都声称在原理上涵盖了相同的用例。