ElasticSearch是一个搜索服务器。以下简称es
作用: 进行搜索
那么问题来了,mysql不是也能搜索吗,为何要用es?
小数据量下,Mysql是完全可以胜任的,可以完成搜索,此时可以不用es;但是在 大数据量(百万千万甚至上亿) 的前提下,会有以下几个问题:
- 性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低
- 功能弱:如果以”华为手机“作为条件,可能查询不出来想要的数据
而es可以完美解决以上问题:
- es可以自动对条件进行分词。
比如华为手机,可以分成华为手机、华为、手、手机等词语。这样,搜索匹配的范围就大多了。- es的倒排索引,也叫反向索引。
倒排索引:将文档进行分词,形成词条和id的对应关系即为反向索引。
以唐诗为例,请说出包含“前”的诗句
你可能一下子说不出来,但是,让你背一下《静夜思》,你肯定会。正向索引:由《静夜思》–>窗前明月光—>“前”字
反向索引:“前”字–>窗前明月光–>《静夜思》
这种由诗名联想到诗句再到句中词的,就称为正向索引;
而反向索引正好相反,是由词到诗句再到诗名
反向索引的实现就是对诗句进行分词,分成单个的词,由词推句,即为反向索引
生成的倒排索引中,词条会排序,形成一颗树形结构(和mysql索引一样),提升词条的查询速度
既然es那么好用,是不是可以替换掉mysql之类的数据库呢?
先说下答案:不要,因为它们的分工是不一样的。 一般在工作中,都是由mysql负责存储数据,然后再将数据进行同步到es,然后再从es中进行搜索。
Mysql和Es的区别如下:
- mysql有事务性,而es没有事务性,所以,你删了的数据是无法恢复的。
- es没有物理外键,所以,对数据强一致性要求比较高时慎用
总结:es和mysql分工不同,mysql负责存储数据,es负责搜索数据。
es和mysql分工不同,mysql负责存储数据,es负责搜索数据。
es和mysql分工不同,mysql负责存储数据,es负责搜索数据.
es在架构中的位置:
应用场景
•搜索:海量数据的查询
•日志数据分析文章来源:https://www.toymoban.com/news/detail-404293.html
•实时数据分析文章来源地址https://www.toymoban.com/news/detail-404293.html
到了这里,关于ElasticSearch基础入门,白话es的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!