如何区分ElasticSearch,Apache Solr和SolrCloud?

  • 回答 (8)
  • 关注 (0)
  • 查看 (436)

据我所知ElasticSearch,Apache Solr和SolrCloud等都为搜索引擎,他们之间的区别是什么?如何进行选择?

如此逝水流年如此逝水流年提问于
Mr.Crypto构建人人信用社会。修改于

Apache Solr相对ElasticSearch来说是一个比较成熟的项目,拥有庞大活跃的开发者和用户社区。

在2006年的时候,首次开源,Apache Solr便成为了主导搜索引擎领域的一面旗帜,成为搜索功能的首选引擎。

所以它的成熟度是非常高的,并且自从开源后后,拥有了非常丰富功能;如分面,分组(即字段折叠),强大的过滤,可插入的文档处理,可插入的搜索链组件,语言检测等。

而后在2010年左右,Elasticsearch杀入市场,成为市场上的另一种选择。但那时候它远没有Solr那么稳定,所以Elasticsearch还是过于年轻,但ElasticSearch是基于rest风格的分布式搜索引擎,如果你喜欢REST API的话,那么你对使用ElasticSearch一定会感觉非常良好。

ElasticSearch可以用于全文搜索,结构化搜索以及分析等,而且你可以把三者进行结合,可以帮助你快速去处理大规模数据.并且因为Elasticsearch的年轻性等原因,Elasticsearch相对传统的Apache Solr和SolrCloud来说要比较容易入门,不需要去理解太多的运行原理,主要的一点是,Elasticsearch非常利于扩展,Elasticsearch的扩展能力是非常强大,个人认为至少相对于Apache Solr和SolrCloud的来说要强大很多,正因为这个特性,用在云计算这个弹性设施来说,非常友好,可以非常轻松的满足数据的扩容性,更多的节点,更大的集群。

而且Elasticsearch的动态性更强 - 数据可以随着节点的出入而轻松地在群集中移动,这不会影响集群的稳定性和性能。这里要提及一点的是,SolrCloud基本上是Solr的一部分,因此不能将Solr和SolrCloud作为两个独立的事情进行比较。至于于他们在性能上的表现很难判断。我没有发现有相关的性能测试基准,也没有测试过。如何进行选择?需要根据你的需求来定,也许了解他们的不同性,可以帮助你更好的选择。

六个六有理想有目标有追求的铂金农药玩家/ACM菜鸟/科幻渣渣作家/心理学砖家回答于

Solr与Linux,安卓等非常相似 - 拥有非常强大的功能,你可以使用这个功能来做很多事情,但并不都是完美的。

Elasticsearch更像苹果手机- 开箱即用,更简单,没有那么多的复杂性等等,所以很难判断他们谁好谁坏。主要还是取决于你的喜好,就像我自己,虽然苹果手机能我带来更好的体验,但却没有安卓手机给我的那样自由感。作为一个技术人员来说,我更喜欢安卓手机,而我女朋友更喜欢苹果手机,道理是一样的。所以使用Solr,就像使用安卓手机一样,你必须要更好地了解它的运行原理和运作方式,这就意味着你不可能非常快速地完成设置,完成你想要做的事情,但也许你会更好地理解它的工作方式,学习到更多的知识,这相对于学习技术来说是非常好的。如果你使用Elasticsearch那就会得到相反的体验 - 它只是起作用,所以你可能并不能真正理解到它是如何运作的,但这却意味着它很容易上手,当你需要处理非常大的数据规模时,你需要拉起袖子,用就可以了。

以下是ElasticSearch可以做的一些非常重要的事情,Solr不能做的,也许对你使用哪个,有帮助:

  • 通过HTTP API即时创建新索引
  • 完全透明地处理到客户端
  • 多个模式,每个文档类型一个。允许通过HTTP API动态创建和更新模式
  • 定义文档之间的关系
  • 通过ID实时检索文档
  • 使用Lucene工具包构造任意复杂的查询
  • 使用游标遍历整个文档集

可能不全,没那么权威化,个人整理。仅供参考

最爱开车啦互联网的敏感者回答于

Apache SolrElasticsearch是使用Lucene库实现的搜索引擎。这里不能将Solr和SolrCloud作为两个独立的事情进行比较

。因为SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案。

Apache Solr与 Elasticsearch两者都具有非常有竞争力的功能

  1. 两者都公开API索引
  2. 两者都支持结构化和非结构化内容。
  3. 两者都有连接数据源的办法。
  4. 两者都支持非常全面的数据聚合
  5. 两者都有定义和定制数据模式和索引的方法。
  6. 两者都是分布式中,可以轻松处理大规模内容。
  7. 两者都可以提供近乎实时的高可用性搜索。

这两种的不同:

这两款产品都有由其开发人员创立的科技公司的支持。在我看来,这两款产品都非常出色,在性能方面比其他产品更好,但因为潜在的Lucene使其难分高下。如果对我来说必须选择一个,我会选择一个我觉得很容易和我的工作相结合的那一个。

无心道人道可道 非常道 名可名 非常名回答于

我个人的感觉吧,在有SolrCloud的情况下,最大的区别就是两者要怎么玩Hadoop了?ElasticSearch是要努力自己玩,Apache Solr是努力跟Hadoop一起玩。

人生的旅途辣鸡前端回答于

占个位,虽然不礼貌,请问安全方面是如何保障的? 之前使用elasticsearch做日志的索引,非常容易被攻击,不是一俩次,网上说与ElasticSearch脚本执行机制有关?

进击的coco前端开发回答于

Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能

螃蟹居我要这天,再遮不住我眼,要这地,再埋不了我心回答于

个人感觉ElasticSearch在做单机搜索上是没有Apache Solr快的,但是在做分布式处理上,ElasticSearch查询速度则更快

扫码关注云+社区

领取腾讯云代金券