这些技术之间的核心架构差异是什么?
另外,哪种用例通常更适合每个用例?
现在,问题范围已得到纠正,我也可以在这方面添加一些内容:
Apache Solr和ElasticSearch之间有很多比较,因此,我将引用我自己最有用的那些,即涵盖最重要的方面:
鲍勃·约普拉特(Bob Yoplait)已经将kimchy的答案与ElasticSearch,Sphinx,Lucene,Solr和Xapian相关联。哪种适合哪种用法?,总结了他 继续并创建ElasticSearch_的原因,他认为,与Solr相比, _ElasticSearch 提供了更好的分布式模型和易用性 。
Ryan Sonnek的实时搜索:Solr vs Elasticsearch提供了有见地的分析/比较,并解释了尽管他已经是Solr的用户,但为何从Solr切换到ElasticSeach的原因-他总结如下:
*在构建 *标准搜索应用程序时 , Solr 可能是选择的武器,但是 Elasticsearch 通过 用于创建现代实时搜索应用程序 的 体系结构 将其提升到一个新的水平 。渗滤是一种令人兴奋的创新功能,可以单手将Solr吹出水面。 Elasticsearch具有可扩展性,快速性和与之集成的梦想 。Adios Solr,很高兴认识您。 [强调我的]
优点 : * ElasticSearch是分布式的。无需单独的项目。副本也接近实时,称为“推送复制”。 * ElasticSearch完全支持Apache Lucene的近实时搜索。 * 处理多租户不是一个特殊的配置,在Solr中,需要更高级的设置。 * ElasticSearch引入了网关的概念,这使完整备份变得更加容易。 缺点 : * ~~只有一个主要开发人员~~ _[根据当前的ElasticsearchGitHub组织](https://github.com/elastic),该应用程序不再适用,除了首先具有相当活跃的提交者基础之外]_ * ~~没有自动预热功能~~ _[根据新的[ 索引预热API](https://github.com/elastic/elasticsearch/issues/1913)不再适用]_
优点 :
* ElasticSearch是分布式的。无需单独的项目。副本也接近实时,称为“推送复制”。 * ElasticSearch完全支持Apache Lucene的近实时搜索。 * 处理多租户不是一个特殊的配置,在Solr中,需要更高级的设置。 * ElasticSearch引入了网关的概念,这使完整备份变得更加容易。
缺点 :
* ~~只有一个主要开发人员~~ _[根据当前的ElasticsearchGitHub组织](https://github.com/elastic),该应用程序不再适用,除了首先具有相当活跃的提交者基础之外]_ * ~~没有自动预热功能~~ _[根据新的[
索引预热API](https://github.com/elastic/elasticsearch/issues/1913)不再适用]_
它们是针对完全不同的用例的完全不同的技术,因此根本无法以任何有意义的方式进行比较:
Apache Solr - Apache Solr在易于使用的快速 搜索服务器中 提供Lucene的功能,并具有多方面,可扩展性等更多功能
Amazon ElastiCache - Amazon ElastiCache是一项Web服务,可轻松 在云中部署,操作和扩展 内存中缓存 。
[强调我的]
也许这已经与以下两种相关技术混淆了:
ElasticSearch - 它是一个开源(Apache 2的),分布式的,宁静,搜索引擎建立在Apache Lucene之上。
Amazon CloudSearch - Amazon CloudSearch是云中的一项完全托管的搜索服务,使客户可以轻松地将快速且高度可扩展的搜索功能集成到其应用程序中。
该 Solr的 和 ElasticSearch 产品听起来一见钟情惊人地相似,都使用同样的后端搜索引擎,即Apache的Lucene的。
虽然 Solr的 是旧的,相当具有通用性和成熟,因此被广泛使用, ElasticSearch 已经专门开发地址 Solr的 缺点与现代云环境的可扩展性的要求,这是硬(ER),以解决与 Solr的 。
因此,将 ElasticSearch 与最近推出的 Amazon CloudSearch 进行比较可能是最有用的(请参阅介绍性文章“ 在一小时内开始搜索,价格低于$ 100 /月”),因为两者都声称原则上涵盖相同的用例。