ElasticSearch(ES)和solr的关系和区别(详细版)

  • Post author:
  • Post category:其他

一、两者的概念

  1、【solr】:  Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果,【特点】是一个高性能,采用Java开发,

SolrSolr

基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎

2、【ElasticSearch】:ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

二、比较

    1、性能的小例子

   

 

 

 

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

 

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

 

 

 

 

 

 2、具体比较

 

比较类目 solr Elasticsearch 
诞生时间 2004 2010
搜索基础 Lucene搜索
实时建立索引 solr会产生io阻塞,效率低 不阻塞,效率高
不断动态添加数据 检索效率变低 变化不大
自身系统管理 利用zookeeper进行分布式管理 自身带有分布式系统管理功能
部署 一般都要部署到web服务器上,如tomcat。启动tomcat的时候需要配置tomcat与solr的关联 自带运行功能,下载安装包直接安装就行
功用范围 官网提供的功能 更专注核心搜索,其它依赖第三方插件
支持索引方式 HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式 仅支持json文件格式
社区和开发者 apache 软件基金和社区支持 单一商业实体及其员工
节点发现 Apache Zookeeper ,在大师项目中成熟且经过实战测试 Zen内置于ES本身,需要专用的主节点才能进行分裂脑保护
高速缓存 全局,每个段更改无效 每段,更适合动态更改数据
分析引挚性能 非常适合精确计算的静态数据 结果的准确性取决于数据放置
全文搜索功能  基于lucene语文分析,多建议,拼写检查,丰富的高亮显示支持 基于Lucene语文分析,单一建议API实现
DevOps支持 尚未完全,还在完善中。。 非常好的API
机器学习 内置-在流聚合之上,专注于逻辑回归和学习排名贡献模块 商业功能,专注于异常和异常值以及时间序列数据

 

 

参考:https://blog.csdn.net/zl1zl2zl3/article/details/88990285

https://blog.csdn.net/gdsgdh308227363/article/details/90575676


版权声明:本文为yb546822612原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。