00:01
好了,我们来上课啊。这个接下来啊,我们这个项目呢,先暂时这个告一段落啊。然后我们这个数据的处理呢,呃,最后只剩这个往ola里面去写了。啊,然后我们这个规划里面的话,我们是需要,呃,用到这个elastic search啊,就是这个ES。好,所以接下来的话,我们就先把这个ES呢给大家去讲一讲。啊,来这个资料的话呢,呃,现在来看一下啊,我们给了一个笔记啊,然后需要安装的东西呢,在这个资料里面啊,这个大家都知道啊,行吧,那我们把这个笔记打开啊。OK。来吧,那我们还是这个先整体说一下啊,我们都要讲什么东西啊。呃,总共有这个六章的内容啊,首先这个第一章啊,我们讲的还是这个简介。就给大家去介绍一下这个ES啊,他是干嘛的,然后我们为为什么要学它啊,以及他要帮助我们去解决什么问题啊。
01:05
然后第二张的话就是这个安装啊,我们要把它这个安装好,呃,那我们安装的话呢,总共是装两个啊,一个是ES本身,然后再一个是它。他的一个兄弟啊,叫这个Kan啊,这个是我们讲ES的时候也会用到啊,因为他提供了一个比较好用的一个,就是算是一个控制台吧。对吧?啊,然后我们可以什么非常方方非常方便的去写这个ES的一个,呃,它的这个语法啊,就是DSL那个语法啊,比较好写啊,行,然后将来的话,我们会使用这个班去做一个可视化啊,因为它可以什么当成一个BI工具去做使用啊。好,然后呃,第四章的话,我们讲的就是它这个DSL啊,我们讲这个ES,它自带的一种这个语言啊,然后呢,对这个ES呢,进行这个正删改查的操作啊,行,然后第五章是原理性的东西啊,我们会讲一下这个ES中啊,我们涉及到的需要大家这个知道的一些这个原理的东西啊,读写呀,对吧,还有它里面涉及到一些什么这个啥的呀,什么段啊什么的啊,到时候给大家去这个讲讲啊。
02:11
然后最后一张的话呢,又回到我们的代码层面啊。因为将来我们数据想要往这个ES中写。那你看一下我们之前已经做到了。数据呢,都已经什么准备好了,就等着往ES写了,那你将来超多ES的话,肯定什么需要写代码。对吧,好,所以说我们需要去讲一下这个,讲一下ES的这个Java客户端。啊,当然我们讲的是这个Java的客户端啊,但其实呢,我们将来在这个SKY中呢,也能去用啊,因为这个其实SKY中你可以什么直接把Java的东西拿过来用的啊,这个大家都知道。好吧,到时候我们讲讲这个怎么通过代码的方式操作ESOK吧。行,这是我们这个整体的一个内容啊呃,然后这个ES我们讲的时间的话呢,差不多是两天的时间啊,就两天左右吧。啊,可能2000多一点啊,2000多一点行好,那我们就从第一章来说起啊,简介。
03:05
那我们先来说一下这个ES啊,它到底是个什么啊,嗯,给了一段话啊,我们简单来读一下,说这个elastic search。啊,它是一个基于这个lon的一个搜索服务器。啊,那么这里面还提到了另外一个东西啊,叫这个lon啊呃,其实这个ES的这个核心呢,啊,就是这个lon啊,它是一个搜索引擎哈,好吧,这个说后面我们也会这个简单去聊一下啊。OK,不过我们在使用这个ES的时候呢,其实我们也不会太多的去考虑这个东西啊,因为它就是呃,它这个内核啊,它里面的一个最核心的一个包啊,你可以理解为是最核心的一个包啊。好,那么我重点还是关心这个ES啊。呃,它提供了一个分布式多用户能力的一个全文搜索引擎。其实ES啊,它这个我们最常规的一个定位啊,是把它定位成一个全文搜索引擎的。
04:03
啊,是把它定位成这个角色的啊,当然呢,它除了这个角色之外的话呢,还能够做别的事啊,就是比如说帮我们做这个数据的分析什么的也都可以啊,OK,然后是基于这个restful web风格的啊,这个的话大家这个了解一下就行了啊嗯,因为我们也没有讲过这个web,说说你聊这个话题的话就有点陌生啊,说这个我们就不聊啊。行,然后这个ES呢,是拿这个Java开发的,然后B作为这个阿帕奇这个许可条款的这个呃协议,然后做了这个源码的一个什么开放。啊,这说白了,它是一个开源的啊,然后呢,是当前这个流行的啊,企业级的一个搜索引擎。嗯,所以你这个说来说去啊,他这个ES呢,呃,最终的定位呢,其实还是一个全文搜索引擎。对吧,那我们就需要什么,先简单把这个事儿聊一下,啥叫这个全文搜索引擎呢?啊,这个东西大家可能听过啊,也有可能也有同学呢,可能这个没有听过啊,简单举个例子吧。呃。像我们这个百度啊,就哪几个大家这个比较熟悉的啊,百度对吧,然后呢,或者什么京东啊,京东也是啊,然后他们这个里面做了这个搜索啊,其实都是我们通过这个ES来去做的。
05:12
啊,比如说我们就来举个例子啊,打开一个浏览器啊。好大家想一下哈,你说我在这个百度里面,我去搜索一个,搜索一个东西啊,比如说我搜索一个Java。可以吧,或者什么搜索一个大数据啊,这个都可以啊,你随便搜,那你说我写了一个这个关键词以后啊,他是怎么把这个。跟我当前这个关键词相关的数据,给他调出来的。对吧,那你想想你看一下这个数据啊,它这个数据量是特别特别多的啊。是吧,我们会调出来各种各样的,就是跟你这个大数据,就你是一个搜索关键词所匹配的一些什么数据。对吧,比如说一些广告。是不是还有什么呀,这个这基本上都是广告对吧?啊然后呢,还有什么百度百科。对吧,百度百科啊,还有什么呀,就是呃,一些什么官网啊,然后呢,一些这个什么视频网站。
06:07
对吧,还有一些什么推荐。对吧,还有什么贴吧。是不是啊,你会搜索出来什么各种各样的这个东西,好,那首先啊,这里面的东西呢,不一定都满足你,比如说哎,我可能看的不是想不是想像,不是想看这种东西,对吧,不一定都满足你,但是呢,人家说出出来的东西呢,他一定都是跟你这个关键词呢说匹配的。对吧,你随便看一个啊。肯定会有你的这个关键词。对吧,你再看一个肯定会有你这个关键词。能看到吧,啊,那你想想啊,这才是显示了一个一个页面的数据,我们将来会有N多个页面的数据呢,都可以去展示出来,比如说我想看第二页了。对吧,想去看第二页了。是吧,这也是啊,想去看第三页了。对吧,这都是啊,那我这个数据呢,是特别特别多的,那你就想想啊,它是怎么就能够在这个非常短的时间内,基本上这个百度的这个响应,如果你网速还可以的话呢,应该都是在秒级内的,对吧?好,他是怎么在这个短时间内把我们写的一个这个关键词,对吧,基于这个关键词,然后呢,把这个大量的数据给他这个调出来的。
07:14
这个它底层是怎么去做的。大家想一想。就拿按照我们这个常规的一个理解来讲的话,那你这个你找到这个数据对吧,那你不应该存到这个什么所谓的,诶MYSQL里面啊,或者什么Oracle里面,那你将来找的时候,我就拿一个什么大数据,然后干嘛呀。我拿个大数据,然后做什么事情啊,同学们,我做到你的买车货里面去做一个什么搜索,对吧,做一个什么模糊匹配,比如说什么like什么什么什么东西。那我也可以把数据调出来。对吧,但是其实你发现啊,这种数据呢,它并不适合拿我买SQL去存,你比如说啊,这个知乎里面的这是一篇什么文章,你说这个文章,你会拿这个买SQ去存吗?这些数据。对吧,你肯定不会拿买色去存。是不是说它这个底层其实对应的是这个不同的一个存储方式。
08:04
明白吧,啊,就是简单来讲啊,它是一个文档型的,就是我存的是一些文档,就是你这个整个你有一个算一个啊,就你现在所看到这个东西,有一个算一个,它都是什么存成了一篇文档。明白了吧,就将来我再去搜索大数据的时候呢,它其实是什么呀,通过我们这个关键词呢,去做一个匹配的,去匹配你这个文档中的一些什么呀,对应的这个数据,对应的这个什么词,如果是我能够匹配到,那我就会把这个给它调出来。调出来以后呢,就会什么展示到你这个最终的结果中。啊,而且啊,它这个匹配的时候呢,还有一个就是它里面有一个什么专业的叫法,叫这个分词匹配,想到这个分词匹配呢,啊,这个百度里面我看看能不能演示到这个效果啊,比如说售一个小米手机啊。呃,来这是那个广告啊,官方的一个官网不看它啊,你看一下我们在搜索的时候,你发现啊,呃,最终的这个最终的这个结论中啊,或者最终的什么这个结果中也有我们的搜索的关键词,小米手机。
09:03
对吧,但其实你看这一次你再看它并不是把这个小米手机四个字挨到一起去匹配的。我有可能匹配到是一个小米,有可能匹配到是一个手机。哪没看明白。对吧,就是理论情况下,如果你要做这个分词匹配的话呢,就比如说这个小米啊,我可能会匹配出别的东西来。啥东西呢?就比如说大家这个吃的那个小米啊,我也可能会匹配出来啊,但是如果说你这个东是你做的不好的话呢,呃,就如果说你要把这个小米也给它匹配出来了,那你说明你这个做的不是很好,就正常情况下,我这个语义上我要去,呃决定啊,就是最后这个小米要不要出来啊,但是呢,你看现在我们正常搜索的话呢,肯定是小米手机啊,都是包含这个小米或者包含手机的,你看这个小米,这里面肯定会有手机,对吧,你看小米手机。那还没同学们。啊,或者说你看啊,你来到这个京东淘宝里面也是一个道理啊,这个淘宝的话呢,呃,大概也是这么做的啊,但是呢,人家是自己做的啊,像这个京东的话,就直接拿这个ES来去做的,这里面也是你搜索一个什么小米手机对吧?然后呢,这里面你看到的东西啊,肯定都是跟你的小米你看了啊,标红的啊,你看这个小米手机。
10:15
对吧,这里面啊。会有什么会有就是那个,呃,这个red me应该也算哈,是吧,然后呢,小米。是不是你就随便去看吧。OK吧,好,然后还有一个就是这个是这个事情啊,让大家这个理解的更清楚一点,你比如说我们搜索一个对吧,我之前说过的啊,上硅谷手机对不对,那这种手机肯定是没有的。那如果说你拿这个传统的这个MYSQL来去做,你去做这个模糊匹配,那你要匹配的就是like,比如说百分号上微果手机百分号。对吧,你要去匹配这个值,就是他们几个是必须什么挨个就是连续出现的,我才能够匹配出来。对吧,那如果说你放到你这个买色或者匹配,那你肯定是匹配不到任何结果的,但其实你看一下我们搜索了一个其实不存在的一个东西,我也是能够给你出结果的。
11:03
对吧,因为我是可以匹配到你的手机的。对吧,我做了分词,比如说我把这个词给它怎么拆开,我做了分词以后,你看一下我就可以匹配到什么手机手机对吧,手机。来看到吧,同学们。啊,这个其实就是我们所谓的这个全文搜索引擎啊,就是这些数据,或者说你这个淘宝里面啊,或者你这个什么百度里面的这些数据啊,它都是在这个后台呢,以这个以这种什么文档的这个形式呢存在啊,它就是整篇的一个什么文档,然后呢,将来的话,我就什么通过我的这个关键字啊,然后呢,做一个什么分词匹配,如果说能跟你匹配上好,那你这个结果这段数据啊,这个文档就会什么出现在我这个最终的结果中,我就会把它调出来,然后给你显示到这个位置。理解吧,而且呢。这个ES能做的啊,它是这个企业级的啥了,企业级的呢,就说白了,它这个支持的数据量是特别特别大的,而且呢,性能也是特别特别优的。啊,就从这个搜索引擎角度来讲的话,他做的还是非常非常OK的。
12:04
明白了吧,啊,这个是我们对ES啊,这个最普遍的一种什么定位啊,它其实就是一个全文输出引擎。理解了吧,啊,但是呢,我们是可以把它用到这个不同的场景里面的。明白了吧,啊,所以这个接下来呢,我们就来这个简单聊一聊它的这个使用场景啊好。
我来说两句