Solr与ElasticSearch

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

另外,哪些用例通常更适合每个用例?


更新

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

Apache Solr和ElasticSearch之间有许多比较,所以我会引用那些我自己发现最有用的,即覆盖最重要的方面:

  • Bob Yoplait已经将Kimchy的答案与ElasticSearch,Sphinx,Lucene,Solr,Xapian联系起来。 哪个适合哪种用法?,总结了他为什么继续创建ElasticSearch的原因,他认为在他看来,与Solr相比,它提供了一个更优越的分布式模型和易用性。

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

    Solr可能是构建标准搜索应用程序时的首选武器,但Elasticsearch通过创建现代实时搜索应用程序体系结构将其提升到新的水平。 渗流是一个令人兴奋和创新的功能,单独将Solr从水中吹出。 Elasticsearch具有可扩展性,快速性以及与之整合的梦想 。 Adios Solr,很高兴认识你。 [强调我的]

  • 关于ElasticSearch的维基百科文章引用了德国知名iX杂志的一个比较,列出了优势和劣势,这几乎总结了上面已经说过的内容:

    优点

  • ElasticSearch是分布式的。 不需要单独的项目。 副本也接近实时,这就是所谓的“推复制”。
  • ElasticSearch完全支持Apache Lucene的近实时搜索。
  • 处理多租户并不是一个特殊的配置,其中Solr需要更高级的设置。
  • ElasticSearch引入了网关的概念,使完整的备份更容易。
  • 缺点

  • 只有一个主要开发者[根据当前的elasticsearch GitHub组织不再适用,除了首先有一个非常活跃的提交者基础]
  • 没有自动编译功能[根据新的Index Warmup API不再适用]

  • 初始答案

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

  • Apache Solr - Apache Solr为易于使用的快速搜索服务器提供了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进行比较可能最为有用(请参阅开始在一小时内开始搜索的价格低于100美元/月的介绍性帖子),因为它们都声称原则上涵盖相同的用例。


    我看到上面的一些答案现在已经过时了一些。 从我的角度来看,我每天都同时使用Solr(云和非云)和ElasticSearch,这里有一些有趣的区别:

  • 社区:Solr拥有更大,更成熟的用户,开发者和贡献者社区。 ES拥有规模较小但活跃的用户社区和不断增长的贡献者社区
  • 成熟度:Solr更成熟,但ES增长迅速,我认为它稳定
  • 表现:很难判断。 我/我们没有做直接的性能基准。 LinkedIn的一位员工曾经比较过Solr vs. ES与Sensei,但初始结果应该忽略,因为他们对Solr和ES都使用了非专家级设置。
  • 设计:人们喜欢Solr。 Java API有些冗长,但人们喜欢它是如何放在一起的。 不幸的是,Solr代码并不总是很漂亮。 另外,ES内置了分片,实时复制,文档和路由。 尽管Solr中也存在这样的一些问题,但这有点像一个思考后的问题。
  • 支持:有些公司为Solr和ElasticSearch提供技术和咨询支持。 我认为唯一提供支持的公司是Sematext(披露:我是Sematext的创始人)
  • 可伸缩性:两者都可以扩展到非常大的群集。 ES比Solr之前的Solr 4.0版本更容易扩展,但Solr 4.0不再是这种情况。
  • 有关Solr与ElasticSearch主题更全面的介绍,请参阅http://blog.sematext.com/2012/08/23/solr-vs-elasticsearch-part-1-overview/。 这是Sematext发布的一系列帖子中的第一篇文章,它将直接和中立的Solr与ElasticSearch进行比较。 披露:我在Sematext工作。


    我看到很多人在这里回答了这个ElasticSearch vs Solr问题的特性和功能,但是我并没有在这里(或其他地方)看到他们在性能方面比较的多少讨论。

    这就是我决定进行自己的调查的原因。 我采用了已经使用Solr进行术语搜索的已编码异构数据源微服务。 我将Solr换成了ElasticSearch,然后我在AWS上运行了一个已经编码的负载测试应用程序,并捕获了后续分析的性能指标。

    这是我发现的。 索引文档时,ElasticSearch的吞吐量提高了13%,但Solr的速度提高了十倍。 当查询文档时,Solr的吞吐量增加了五倍,比ElasticSearch快五倍。

    链接地址: http://www.djcxy.com/p/86391.html

    上一篇: Solr vs. ElasticSearch

    下一篇: Using a NoSQL database over MySQL