(一)什么是ElasticSearch

在这里插入图片描述


市面上关于ElastichSearch 常见的关键词 分布式高性能,高可用,可伸缩的搜索和分析系统

一、 什么是搜索?

百度:国内的的网民搜索信息大部分方式都是通过百度检索。
互联网的搜索: 电商APP,照片软件,新闻网站,售卖汽车软件
IT系统的搜索: OA软件,办公自动化软件,会议管理,日程管理,项目管理

搜索,就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你要搜索的关键字,然后就期望找到这个关键字相关的有些信息


二、如果用数据库做搜索会怎么样?

做软件开发的话,或者对IT、计算机有一定的了解的话,都知道,数据都是存储在数据库里面的,比如说电商网站的商品信息,招聘网站的职位信息,新闻网站的新闻信息,等等吧。所以说,很自然的一点,如果说从技术的角度去考虑,如何实现如说,电商网站内部的搜索功能的话,就可以考虑,去使用数据库去进行搜索。

如下图:电商系统的商品搜索
1、搜索含有牙膏的商品
2、在数据库中商品名称字段中存储有关键字

数据库来处理的话,不考虑数据库的全文索引,假如商品有 1000万 个,那么基本上就要查找 1000 万次,且每次都需要加载商品的名称字段的整段字符串,并挨个寻找。

在这里插入图片描述

1、如果,每条记录的字段的文本,数据量很长很大,比如ProductDesc 商品描述的字段很长,内容很多,长达数万个字符,这个时候,每次查询都会对ProductDesc 进行扫描,难以判断,是否包含搜索条件关键词。

2、Mysql 查询无法将查询词拆分成多个词语,无法尽可能去搜索更多的符合你的期望的结果。例如 :比如输入“生化机”,就搜索不出来“生化危机”

3、大量的查询使得Mysql 的负载压力在短时间内上升,甚至造成宕机。


三、什么是全文检索和Lucene ?

1、全文检索是利用 倒排索引来实现。
2、lucenne 是一个Java Jar包。

lucenne 里面含了封装好的各种建立倒排索引,以及进行搜索的代码,包括各种算法。我们就用 java 开发的时候,引入 lucene jar,然后基于 lucene 的 api 进行去进行开发就可以了。用 lucene,我们就可以去将已有的数据建立索引,lucene 会在本地磁盘上面,给我们组织索引的数据结构。另外的话,我们也可以用 lucene 提供的一些功能和 api 来针对磁盘上的数据进行搜索。


四、全文检索和倒排索引的简述

1、有如下词条

在这里插入图片描述
假设场景: 搜索关键词 “生化机” 本意是“生化危机”,打错字,但是期望需要搜索结果展示 Id=1,2,3,4的4条记录结果。
1、有4条数据
2、将每条数据进行词条拆分。例如:“生化危机电影” 拆成:生化、危机、电影 三个关键词(拆分结果与算法策略有关)
3、每个关键词将对应包含此关键词的数据ID
4、搜索时直接匹配这些关键词,就能拿到包含关键词的数据。

上述过程就是全文检索
词条拆分和词条对应的ID是倒排索引的基本原理。


五、Elasticsearch 是什么

5.1 单台机 容量瓶颈

在这里插入图片描述
1、上图是部署在单台机器上,封装了lucene搜索功能,磁盘容量为500g的应用
2、电商前端网站发起搜索
3、随着时间的变化,磁盘中供用户搜索的数据量原来大,即将达到磁盘500g的容量瓶颈,怎么办?

5.2 水平扩容多台机器 弊端

有的同学可能想到多台机器水平扩容,再加一个500g
在这里插入图片描述
1、当数据查询到lucene1,而数据在lucene2,多台机器之间的查询请求转发,机器通信非常麻烦
2、每个机器存储部分数据,如果机器宕机,磁盘损坏,数据就永久丢失了,对于一个网站保证数据的完整性是非常重要的。这种方案不可取。

5.3 elastichserch

elasticsearch
1、自动维护数据的分布到多个节点的索引建立、检索请求分布到多个节点的执行
2、多个node 节点,主副本存储数据,自动维护数据的冗余副本,保证了一些机器宕机,不丢失任何数
3、内置封装了许多高级特性API 例如复杂搜索、聚合函数,基于地理位置的搜索 ..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真香号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值