【ElasticSearch框架学习】ES与Solr 浅析

youzgLogo

首先,本人来简单介绍下 Solr

扩展 —— Solr 简介:

Solr 是Apache下的一个 顶级开源项目
采用Java开发,它是 基于Lucence全文搜索服务器
Solr提供了 比Lucene更为丰富查询语言,同时实现了 可配置可扩展,并对 索引搜索性能 进行了优化
Solr可以 独立运行,运行在 JettyTomcat 等这些 Servlet容器 中,
Solr 索引的实现方法 很简单,用 POST方法Solr 服务器 发送一个 描述 Field 及其 内容XML文档
Solr根据 xml文档 进行 添加删除更新 索引
Solr 搜索只需要发送 HTTP GET请求
然后对Solr返回 xmljson 等格式的 查询结果 进行解析,组织页面布局
Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可
以应询Solr的配置和运行情况
solr是基于lucene开发企业级 搜索服务器,实际上就是封装了lucene
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于 Web-serviceAPI接口
用户可以通过 http请求,向 搜索引擎服务器 提交一定格式的 文件,生成索引;也可以通过提出 查找请求,并得到 返回结果


那么,接下来,本人来讲解下 ES和Solr的区别

ES 和 Solr 的区别:

首先,本人来通过几张图来对比下 ES和Solr

单纯 搜索:

单纯搜索
从上图中,我们能够看得出:

单纯搜索 的情况下,Solr 的 查询效率 远高于 ES


实时建立索引:

实时建立索引
从上图中,我们能够看得出:

实时建立索引 的情况下,Solr产生了IO阻塞,查询效率 低于 ES


大数据量:

大数据量
从上图中,我们能够看得出:

随着数据量的增加,Solr的搜索效率越来越低,而ES基本没有明显变化


总结:

  1. es基本是开箱即用,非常简单,
    Solr安装略微复杂一些
  2. Solr 利用 Zookeeper 进行 分布式管理
    Elasticsearch则使用自身带有分布式协调管理功能
  3. Solr 支持 更多格式 的数据,比如 JSON、XML、CSV,
    Elasticsearch仅支持 JSON文件格式
  4. Solr 官方提供的 功能更多
    Elasticsearch本身 更注重于 核心功能,高级功能 多由 第三方插件提供,例如图形化界面需要kibana友好支撑
  5. Solr 查询快,但 更新索引时慢(即插入时除慢),用于电商等查询多的应用
    • ES建立索引快(即直询慢),即实时性查询快,用于Facebook、新浪等搜索。
    • Solr 是传统搜索应用的有力能决方案,但 Elasticsearch 更适用于 新兴的实时搜索应用
  6. Solr比较成熟,有一个更大、更成熟的用户、开发和贡献者社区,
    Elasticsearch相对开发维护者较少,更新太快,学习使用成本较高
posted @ 2020-10-03 22:12  在下右转,有何贵干  阅读(384)  评论(0编辑  收藏  举报