-3

我开始创建我的新搜索应用程序。在我早期的应用程序中,我使用了 Apache solr。现在我想知道在性能和可用性方面哪个更好。

我个人想知道 Elastic search 和 solr 的性能基准。如果有其他选择建议是最受欢迎的。

4

2 回答 2

2

免责声明:我在 elasticsearch.com 工作

我只想说:试试 elasticsearch。我认为在几个小时(几分钟?)之后,您会以某种方式发表意见。启动 2 个或 3 个或 4 个节点,您将看到事情如何很好地重新平衡。

关于性能,我想说的是,即使您正在执行大量索引操作,elasticsearch 也会为您提供恒定的查询吞吐量。

于 2013-09-07T05:56:43.513 回答
1

我已经使用了很多,并且更喜欢 ElasticSearch。API 更加灵活和可访问。它更容易上手。默认情况下会自动进行复制。一般来说,所有默认值都更容易使用。一切通常开箱即用(安全默认值),您只需要调整您发现需要更好地工作的内容。

我在 SOLR 4 上工作不多,只在 3.x 上工作过。一旦我切换了,我就再也没有回头,但我听说 4 在复制和集群方面有很多改进,使其成为一个可用的竞争对手。

关于性能,我认为它们通常具有可比性,因为它们都依赖于 Lucene。这就是为什么缺乏有效的基准来进行这种一般比较的原因。也就是说,肯定有一个用例会比另一个表现更好。

如果你看一下当前使用 SOLR 的人更多的使用趋势,它正在下降。这种下降与 Elasticsearch 用户的增长密切相关,而 Elasticsearch 用户的增长非常快。正如 Dadoonet 所说,试试 ElasticSearch,它不会花很长时间,你不会想再次使用 SOLR。

更新

我刚刚在一个客户站点上花了两周时间就 SOLR Cloud 安装进行咨询。我现在对 SOLR 的更新更加熟悉了,并且非常自信地说,我仍然更喜欢 ElasticSearch,但 SOLR 似乎又有了一些动力。

ElasticSearch,毫无疑问更具弹性。也就是说,在 ElasticSearch 中拥有一个节点来来去去的弹性集群,或者甚至只需要添加节点的地方,都比 SOLR 容易得多。任何告诉您在 SOLR 中这很容易的人,在 ElasticSearch 中都没有这样做过。ElasticSearch 将自动加入一个集群并在该集群中扮演一个活跃的角色,接管可用的分片和副本的服务。在上周,我停用了一个 2 节点集群,用两个新节点替换它。我只是添加了 2 个新节点,一次一个,将另外两个节点标记为非数据节点。分片迁移完成后,我停用了节点。我设置了 minimum_master_nodes = 2 ((2/2)+1),并且脑裂没有问题。

在同一周,我不得不向 SOLR 集群添加一个节点。该过程的文档记录很差,特别是考虑到从 4.1 到 4.3 的更改以及现有文档的杂乱无章,其中大部分内容表明您甚至无法基于旧版本的 SOLR 进行此操作。我终于找到了澄清的文件。它需要手动将核心添加到集合中,然后将副本添加到集群中的现有分片中。最后,您手动停用其他节点上的冗余分片。在某些时候,该节点可能会成为其中一个分片的主节点,但不会立即成为主节点。

使用 SOLR 如果您没有足够的分片来分发,您可以只添加副本,或者您可以通过分片拆分来创建两个新分片。同样,这是一个记录不充分的功能,但是 ElasticSearch 中不存在该功能。您必须拆分然后删除原始分片,文档都没有清楚地解释这一点。

如果与 Hadoop 集成,SolrCloud 还具有其他几个优点。如果您在 HDFS 或 HBase 中索引数据,现在有 Map-Reduce 和将数据摄取到 SOLR 的实时方法。这为您的大数据平台提供了一些真正的力量,并允许您对原本几乎无法访问的数据进行全文搜索。

虽然您可以将 Hadoop 数据索引到 ElasticSearch 中,但实现不如 SolrCloud/Cloudera Search 实现干净。让 MapReduce 直接构建分片是一种非常出色的解决方案,具有显着的性能优势。直接与集群对话的 Reducer 可以工作,但并不相同。我不知道 ElasticSearch 是否存在与 HBase 的 Lily 连接器类似的东西,如果没有,我可能会考虑编写一个。这允许直接从 HBase 复制日志中建立索引。

因此,总而言之,肯定有任何一种情况都是有益的。如果您正在寻找与 , 的紧密集成,Hadoop特别是,这是一个不错的选择。如果您希望轻松管理 Elastic 集群,这将是一个更好的选择。对我来说,我将继续我的 Hadoop 集成,使其与 Elasticsearch 一起工作,直到出现更好的东西。SOLRClouderaSearchElasticsearch

于 2014-06-27T23:42:24.640 回答