ElasticSearch简介

  ElasticSearch的概念:


    -ElasticSearch 是一个基于Lucene的搜索服务器
    -是一个分布式、高扩展、高实时的搜索与数据分析引擎
    -基于RESTful web接口
    -ElasticSearch 是用Java语言开发的,并作为apache许可条款下的开放源码发布,是一种流行的企业搜索引擎

    -官网:https://www.elastic.co/

  ElasticSearch的应用场景:
    搜索:海量数据查询;
    日志数据分析;(elk)
    数据实时分析
  注意:引入ElasticSearch功能强大,提升查询速度,引入ElasticSearch比较复杂,因为搜索比较复杂。

  MySQL 与 ElasticSearch
    --MySQL 有事务性,而ElasticSearch 没有事务性
    --ElasticSearch 没有物理外键这个概念,如果你的数据强一致性要求比较高,建议慎用。

    ElasticSearch和MySQL分工不同,MySQL负责存储数据,ElasticSearch负责搜索数据.

一、为什么使用ElasticSearch?

Mysql,Oracle等关系型数据库,在数据量比较大时,对多条件搜索,全文检索等数据检索查询 比较耗性能,响应慢,

关系型数据库查询存在的问题;
  1、性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低
  2、功能弱:如果以“华为手机”作为条件,查询不出来数据

如百度搜索,GitHub上的代码搜索,电商商城的商品搜索,美团的酒店搜索。所以需要引入 如ElasticSearch,solr ,lucense 搜索解决方案。

  二、Lucene和ElasticSearch简介和比较

Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。官网地址:https://lucene.apache.org/ 。

  Lucene的优势: 易扩展 高性能(基于倒排索引)

  Lucene的缺点: 只限于Java语言开发 学习曲线陡峭 不支持水平扩展

  ElasticSearch相对于Lucene 有 两个优点:

    1.支持分布式,可水平扩展

    2.提供Restful接口,可被任何语言调用

  ElasticSearch为目前广泛应用的搜索解决方案。

  三、ElasticSearch的数据存储和原理 

ElasticSearch 和MySQL 分工不同, MySQL负责存储数据,ElasticSearch 负责查询数据。

 分词: 如 把“床前明月光“ 拆成 (床,前,床前,明,月,明月,光,月光)
倒排索引:将各个文档(document)中的内容,进行分词,形成词条(term),然后记录词条和数据的唯一标识的对应关系,形成的产物。

ElasticSearch将数据存储在索引库(index)中,数据叫document(json格式)。

数据库查询存在的问题;
1.性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低
2,。功能弱:如果以“华为手机”作为条件,查询不出来数据

客户端查询;
去倒排索引中 进行词条匹配;

ElasticSearch是一个服务器,和MySQL进行数据同步,提供查询,生成的倒排索引中,词条会排序,形成一颗树形结构,提升词条的查询速度。

存储和搜索; 文档:json数据形式,需要进行分词;  对查询进行分词,查询结果取交集或并集

文档(document)和词条((term)):

正向索引:倒排索引:文档:索引:

ElasticSearch负责提升MySQL的查询性能,适合大数据量或者电商的系统,需要把MySQL数据同步到ElasticSearch;

  四、ElasticSearch 的操作

ElasticSearch聚合的分类和DSL实现查询;如:

Avg:求平均值
Max:求最大值
Min:求最小值

ElasticSearch实现自动补全,ElasticSearch的数据与mysql的数据同步;倒排索引,IK分词器,拼音分词器等问题,

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值