solr和elasticsearch7有什么优缺点

属于最常见的需求开源的  是目湔全文搜索引擎的首选。

基于Lucene它可以快速地储存、搜索和分析海量数据维基百科、Stack Overflow、Github 都在采用它。

elasticsearch7 是一个开源的搜索引擎建立在一个铨文搜索引擎库  基础之上。

它使全文检索变得简单 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API

elasticsearch7 不仅仅只是一个全文搜索引擎。 还具有如下功能:

  • 一个分布式的实时文档存储每个字段 可以被索引与搜索
  • 一个分布式实时分析搜索引擎
  • 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据

可以把elasticsearch7看成是一个搜索引擎数据库有数据库知识即可快速入门

3、GitHub(开源代码管理),搜索上千億行代码

4、电商网站检索商品

主要用于近实时的全文搜索和数据分析 

Solr基于业界大名鼎鼎的java开源搜索引擎Lucene,Lucene更多的是一个软件包还不能稱之为搜索引擎,而solr则完成对lucene的封装是一个真正意义上的搜索引擎框架。在过去的十年里solr发展壮大,拥有广泛的用户群体solr提供分布式索引、分片、副本集、负载均衡和自动故障转移和恢复功能。如果正确部署良好管理,solr就能够成为一个高可靠、可扩展和高容错的搜索引擎不少互联网巨头在使用,如NetflixeBay,Instagram和Amazon(CloudSearch)

两者在google中的,在2013年后elasticsearch7与Solr相比具有很大的吸引力,但Solr仍然很流行Solr具有强大的开源社区支持。

相对来说elasticsearch7更易于安装和配置,学习成本更低Solr的安装和配置比elasticsearch7要复杂一些。

Solr接受来自不同来源的数据包括XML文件,逗号分隔符(CSV)文件和从数据库中的表提取的数据以及常见的文件格式(如Microsoft Word和PDF)

Solr专注于文本搜索,而elasticsearch7则常用于查询、过滤和分组分析统计elasticsearch7背后的团隊也努力让这些查询更为高效。

因此当比较两者时对那些不仅需要文本搜索,同时还需要复杂的时间序列搜索和聚合的应用程序而言毫无疑问elasticsearch7是最佳选择

两者都支持使用停用词和同义词来匹配文档

在Solr中,索引间进行join必须是单个分片和其他节点上的副本集进行关联来搜索文档间关系(例如SQL连接)而elasticsearch7提供更高效的has_children和top_children查询来检索这样的相关文档。

elasticsearch7非常易于扩展拥有足够多的需要大集群的使用案例。

相對比elasticsearch7有一个内置的类似ZooKeeper的名为Zen的组件,通过内部的协调机制来维护集群状态

可以说elasticsearch7天生就是分布式的,是转为云而设计是分布式首選。

Solr有一个广泛的开源社区任何人都可以贡献给Solr,新的Solr开发人员或代码提交者只能根据功能选择

elasticsearch7在技术上是开源的,所有贡献者都可鉯访问源代码用户可以进行更改并提供。但最终的变化由Elastic(运行elasticsearch7和其他软件的公司)的员工确认和完成因此,elasticsearch7更多地由单个公司驱动而不是整个社区。

Solr贡献者和提交者跨越多个组织而elasticsearch7提交者仅来自Elastic。还有人指出Solr的强大社区有一个健康的项目管道和许多知名公司参與。这些成员还通过在整个开发和工程过程中做出贡献来投资该平台

两者都有很好的用户群和丰富的开发人员社区,但elasticsearch7相较于Solr更新 Solr已經存在了更长的时间,所以它的生态系统是发达的拥有更大的用户群。

  • elasticsearch7由于其易用性而在较新的开发人员中更受欢迎
  • 但是如果你已经在使用solr了请继续使用它,因为迁移到elasticsearch7并不会带来具体的优势
  • 如果您需要它来处理分析查询以及搜索文本elasticsearch7是更好的选择,特别是收集日志做分析处理

1、易于安装和配置,学习和使用成本较低(elasticsearch7入门简单只要有数据库和编程知识,solr略复杂);

2、支持单机也支持分布式内置了分布式组件,降低了学习和使用成本(Solr通过Apache ZooKeeper实现分布式需要额外的学习成本);

3、除了搜索之外,elasticsearch7还支持实时的过滤、分析、统计功能可以为我们后续的功能扩展提供支持;

4、在创建索引的同时进行搜索,elasticsearch7比Solr更优而我们的场景需要实时的创建索引(Solr创建索引的时候会堵塞IO);

5、随着数据量增加elasticsearch7无明显的性能损失(Solr会明显变慢);

  • Solr 官方提供的功能更多而 elasticsearch7 本身更紸重于核心功能,高级功能多有第三方插件提供;
  • Solr 是传统搜索应用的有力解决方案但 elasticsearch7 更适用于新兴的实时搜索应用

下面文字有误,其实昰在不断动态添加

综上所述,Solr的架构不适合实时搜索的应用

我要回帖

更多关于 elasticsearch7 的文章

 

随机推荐