Back to home

[翻译]Solr vs. ElasticSearch

原文地址:http://stackoverflow.com/questions/10213009/solr-vs-elasticsearch

二者核心架构有什么区别?
分别有什么对应的用例?

Steffen Opel 答

初始回答

基于不同的用于,他们俩是完全不同的技术实现,不能以相同的方式比较。

  • Apache Solr - 它提供和Lucene兼容的使用方式,以及例如分类搜索,以拓展的特性快速搭建索服务。
  • Amazon ElastiCache - 他是一个基于内存实现的易于部署,操作,拓展的Web Service。
    • 它的协议和Memcached兼容,所以你可以使用很多基于Memcached的流行库和工具。(查看Memcached细节)

重点:

  • ElasticSearch 它是一个开源的(Apache 2),分布式,RESTful,基于Apache Lucene搜索引擎。
  • Amazon CloudSearch 这是一个在云环境的全管理(fully-managed)搜索服务,允许用户给他们的应用添加简单集成快速和高拓展的搜索功能。

听起来,Solr和ElasticSearch提供相似的功能,以及他们都基于Apache Lucene

Solr 历史更悠久更成熟,也有着广泛的应用,ElasticSerach已经针对Solr的缺点进行开发,比如在现代云环境的拓展性,后者更稳固。

更像的是ElasticSearch和最近被介绍的Amazon CloudSearch(见Start Searching in One Hour for Less Than $100 / Month)因为他们的宣称原则上涵盖一样的目标。

更新

这里有许多有效的Apache Solr和ElasticSearch比较,我引用一些对我有用的,其中涵盖这些重要的方面:

构建标准搜索应用时,Solr很适合,但是Elasticsearch将会在接下来的实时搜索应用的创新模型取代之。Percolation作为(Elasticsearch的 )一个令人兴奋、创新的新特性,只用一只手就能轻松完败Solr。Elasticsearch是一个可量化的、快捷的工具,你做梦都会想集成它。至于Solr……很高兴认识你,再见。

  • 维基ElasticSearch词条引用了一个来自German iX 杂志例举的优缺点,是一个很好的总结:
  • 优点:
    • ElasticSearch是分布式的。不需要其他组件,分发是实时的,被叫做"Push replication"。
    • ElasticSearch 完全支持Apache Lucene的接近实时的搜索。
    • ElasticSearch 采用Gateway概念,使得全备份更简单。
  • 缺点: