Solr与ElasticSearch [英] Solr vs. ElasticSearch

查看:161
本文介绍了Solr与ElasticSearch的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这些技术之间的核心架构差异是什么?



另外,什么用例通常更适合每个?

解决方案

h2>更新

现在问题范围已更正,我也可以在这方面增加一些内容:



Apache Solr ElasticSearch 可用,所以我将参考我发现自己最有用的内容,即涵盖最重要的方面:




  • Bob Yoplait已经将kimchy的答案与 ElasticSearch,Sphinx,Lucene,Solr,Xapian。哪些适用于哪些用途?,其中总结了他为什么继续创建ElasticSearch 的原因,他认为,这种分布式模型提供了非常优秀的分布式模型和易用性与Solr相比。


  • Ryan Sonnek的实时搜索:Solr vs Elasticsearch 提供了一个有见地的分析/比较,并解释了为什么他从Solr切换到ElasticSeach,尽管已经有一个快乐的Solr用户 - 他总结如下: p>


    Solr 可能是构建标准搜索
    应用程序时的首选武器
    ,但是 Elasticsearch 将它用于创建现代实时搜索应用程序的
    架构。
    渗透是一个令人兴奋和创新的功能,一手单打
    将Solr吹出水面。 Elasticsearch是可扩展的,快速的
    和与
    集成的梦想。 Adios Solr,很高兴认识你。关于ElasticSearch的维基百科文章引用了一个 ://en.wikipedia.org/wiki/ElasticSearch#Comparison_to_other_softwarerel =noreferrer>比较来自着名的德国iX杂志,列出优点和缺点,这几乎总结了以上已经说过的内容: / p>


    优点




    • ElasticSearch是分布式的。不需要单独的项目。副本几乎是实时的,这被称为推送复制。

    • ElasticSearch完全支持近似实时搜索Apache
      Lucene。

    • 处理多租户并不是一个特殊的配置,其中
      与Solr一个更高级的设置是必要的。

    • ElasticSearch引入了
      的概念,这使得完全备份更容易。



    缺点










h2>

它们是完全不同的技术,解决完全不同的用例,因此无法以任何有意义的方式进行比较:




  • Apache Solr - Apache Solr提供Lucene的功能一个易于使用,快速的搜索服务器,具有额外的功能,如faceting,可扩展性和更多


  • 亚马逊ElastiCache - 亚马逊ElastiCache是​​一种Web服务,可以轻松部署,操作和扩展内存缓存




    • 请注意,Amazon ElastiCache是​​协议符合Memcached,广泛采用的内存对象缓存系统,所以代码,应用程序和流行的工具,你今天使用ex Memcached环境将与服务无缝工作(有关详细信息,请参阅 Memcached )。




[emphasis mine]



也许这与以下两种相关技术有所混淆:





Solr 和 ElasticSearch 的产品听起来非常相似,并且都使用sa我的后端搜索引擎,即 Apache Lucene



虽然Solr 较旧,相当多功能且成熟并相应地广泛使用,但ElasticSearch 专门用于解决具有可伸缩性要求的Solr 缺点现在的云环境,很难(呃)用 Solr 来解决。



因此,比较 ElasticSearch 与最近推出的Amazon CloudSearch (参见介绍性文章开始在一个小时内搜索少于$ 100 /月),因为它们都声称原则上涵盖相同的用例。


What are the core architectural differences between these technologies?

Also, what use cases are generally more appropriate for each?

解决方案

Update

Now that the question scope has been corrected, I might add something in this regard as well:

There are many comparisons between Apache Solr and ElasticSearch available, so I'll reference those I found most useful myself, i.e. covering the most important aspects:

  • Bob Yoplait already linked kimchy's answer to ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage?, which summarizes the reasons why he went ahead and created ElasticSearch, which in his opinion provides a much superior distributed model and ease of use in comparison to Solr.

  • Ryan Sonnek's Realtime Search: Solr vs Elasticsearch provides an insightful analysis/comparison and explains why he switched from Solr to ElasticSeach, despite being a happy Solr user already - he summarizes this as follows:

    Solr may be the weapon of choice when building standard search applications, but Elasticsearch takes it to the next level with an architecture for creating modern realtime search applications. Percolation is an exciting and innovative feature that singlehandedly blows Solr right out of the water. Elasticsearch is scalable, speedy and a dream to integrate with. Adios Solr, it was nice knowing you. [emphasis mine]

  • The Wikipedia article on ElasticSearch quotes a comparison from the reputed German iX magazine, listing advantages and disadvantages, which pretty much summarize what has been said above already:

    Advantages:

    • ElasticSearch is distributed. No separate project required. Replicas are near real-time too, which is called "Push replication".
    • ElasticSearch fully supports the near real-time search of Apache Lucene.
    • Handling multitenancy is not a special configuration, where with Solr a more advanced setup is necessary.
    • ElasticSearch introduces the concept of the Gateway, which makes full backups easier.

    Disadvantages:

    • Only one main developer [not applicable anymore according to the current elasticsearch GitHub organization, besides having a pretty active committer base in the first place]
    • No autowarming feature [not applicable anymore according to the new Index Warmup API]


Initial Answer

They are completely different technologies addressing completely different use cases, thus cannot be compared at all in any meaningful way:

  • Apache Solr - Apache Solr offers Lucene's capabilities in an easy to use, fast search server with additional features like faceting, scalability and much more

  • Amazon ElastiCache - Amazon ElastiCache is a web service that makes it easy to deploy, operate, and scale an in-memory cache in the cloud.

    • Please note that Amazon ElastiCache is protocol-compliant with Memcached, a widely adopted memory object caching system, so code, applications, and popular tools that you use today with existing Memcached environments will work seamlessly with the service (see Memcached for details).

[emphasis mine]

Maybe this has been confused with the following two related technologies one way or another:

  • ElasticSearch - It is an Open Source (Apache 2), Distributed, RESTful, Search Engine built on top of Apache Lucene.

  • Amazon CloudSearch - Amazon CloudSearch is a fully-managed search service in the cloud that allows customers to easily integrate fast and highly scalable search functionality into their applications.

The Solr and ElasticSearch offerings sound strikingly similar at first sight, and both use the same backend search engine, namely Apache Lucene.

While Solr is older, quite versatile and mature and widely used accordingly, ElasticSearch has been developed specifically to address Solr shortcomings with scalability requirements in modern cloud environments, which are hard(er) to address with Solr.

As such it would probably be most useful to compare ElasticSearch with the recently introduced Amazon CloudSearch (see the introductory post Start Searching in One Hour for Less Than $100 / Month), because both claim to cover the same use cases in principle.

这篇关于Solr与ElasticSearch的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆