2.1(ElasticSearch)概念

2.1(ElasticSearch)概念,第1张

2.1(ElasticSearch)概念

文章目录
  • ElasticSearch
    • 为什么要用
      • 数据库缺点
        • 性能低
        • 功能弱
    • 倒排索引
      • 正向索引
      • 倒向索引
      • 举例
        • 发现问题
    • 数据存储和搜索原理
      • **数据存储**
      • 搜索原理
        • 数据库中存在的问题
        • Elk
    • 是什么
      • 应用场景
      • ES和Mysql数据库

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减轻数据库压力,功能还更加强大

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5681299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存