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

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


当前回答

我看到这里有很多人回答了ElasticSearch和Solr在特性和功能方面的问题,但我在这里(或其他地方)没有看到太多关于它们在性能方面如何比较的讨论。

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

以下是我的发现。在索引文档时,ElasticSearch的吞吐量要高13%,而Solr的速度要快10倍。在文档查询方面,Solr的吞吐量是ElasticSearch的5倍,速度也是ElasticSearch的5倍。

其他回答

我使用Elasticsearch 3年了,使用Solr大约一个月,我觉得与Solr安装相比,Elasticsearch集群非常容易安装。Elasticsearch有一个帮助文档池,其中有很好的解释。其中一个用例是直方图聚合,它在ES中可用,但在Solr中找不到。

在solr中添加嵌套文档非常复杂,嵌套数据搜索也非常复杂。但弹性搜索容易添加嵌套文档和搜索

由于Apache Solr的悠久历史,我认为Solr的一个优势是它的生态系统。针对不同类型的数据和用途,有许多Solr插件。

搜索平台从下到上分为以下几层:

数据 目的:表示各种数据类型和来源 文档建立 目的:为索引建立文档信息 索引和搜索 目的:建立和查询文档索引 逻辑增强 用途:用于处理搜索查询和结果的附加逻辑 搜索平台服务 目的:增加搜索引擎核心的附加功能,提供服务平台。 UI应用程序 用途:用于终端用户搜索界面或应用程序

参考文章:企业搜索

如果您已经在使用SOLR,请坚持使用。如果你正在创业,使用弹性搜索。

最大的主要问题已经在SOLR中得到了解决,它是相当成熟的。

我只使用弹性搜索。因为我发现solr很难开始。 Elastic-search的特点:

启动方便,设置少。即使是新手也可以一步一步地设置集群。 简单的Restful API,使用NoSQL查询。以及许多易于访问的语言库。 好的文件,你可以读这本书:。官方网站上有网络版。