2.1(ElasticSearch)概念

ElasticSearch

ElasticSearch是一个搜索的服务器

也就是我们经常在网页中见到的搜索框

为什么要用

我们在没有ElasticSearch的时候,使用过数据库做操作

数据库缺点

性能低

在这里插入图片描述

功能弱

我们想要将搜索的内容进行拆分查找

华为手机分为华为和手机进行查找

在这里插入图片描述

数据库此时就显得很简单。而且对性能和SQL都要求很高

ElasticSearch的倒排索引就可以解决上面的问题

倒排索引

我们想要所有诗句中带有前的古诗

正常我们存储是正向索引,而倒向索引在存储的时候就是不一样的

正向索引

我们只能将诗句进行模糊查询

在这里插入图片描述

倒向索引

在存入数据的数据的时候

会进行拆分为不同的词条(term)

将各个文档的内容,进行分词,形成词条。然后记录词条和数据的唯一标识(id)对应关系。

举例

存入静夜思的诗句时候

在这里插入图片描述

当在存入水调歌头的时候

在这里插入图片描述

发现问题

如果只存储数据中一部分内容。对于value部分过于繁琐

所以拆分**词条(term)**之后,我们存入数据的唯一标识

在这里插入图片描述

数据存储和搜索原理

ElasticSearch将数据存入到索引库中。

将文档数据进行分条。在存入索引库中

数据存储

在这里插入图片描述

搜索原理

数据库中存在的问题
  1. 性能低:数据库中的数据过多,使用模糊查询的时候在左边可能不能使用索引。而且数据库的数据量也是很大的
  2. 功能弱:想要将搜索的条件进行拆分查找也不容易
Elk

在这里插入图片描述

使用(手机)作为条件时候

生成的倒排索引中,词条会排序,形成一颗树形结构,提升词条的查询速度

查询的就是1,2,3

使用(华为手机)搜索

进行条件拆分

华为:1,3

手机:1,2,3

是什么

ElasticSearch是一个基于Lucene的搜索服务器

Lucene是一个搜索的api。包含许多操作。ElasticSearch相当于封装了

Lucene下还有一个搜索服务器。出来更早。ElasticSearch出来晚,所以功能更加丰富

在这里插入图片描述

是一个分布式,高扩展,高实时的搜索与数据分析引擎

基于RestFul Web接口(我们在操作的时候就是Http请求。使用脚本写Restful操作)

ElasticSearch是用java开发的,并作为Apache许可条款的开发源码发布。

官网

应用场景

在海量数据的查询。(数据量不大,我们就可以使用关系型数据库代替)

日志数据分析

实时数据分析

ES和Mysql数据库

  1. Mysql有事务性,ElasticSearch没有事务性,所以你删了的数据是无法恢复的
  2. ElasticSearch没有物理外键这个特性。如果你的数据强以执行要求比较高。还是慎用

ES和Mysql分工不同:Mysql负责数据的存储,ES负责搜索数据

  1. 以前:数据访问小,数据存储在数据库中,搜索也通过数据库
  2. 现在:数据访问大,数据存储在数据库中,ES将数据同步。搜索功能走ES减轻数据库压力,功能还更加强大

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值