00:00
啊,但是呢,那么目前就是咱们现在学过这么多东西啊,就是这个它的一个官方网站,咱们本身有中文啊,但其实中文呢,翻译并不是特别理想啊,翻译并不是特别理想,反正我对比了一下,我觉得啊,你要想看这个官网,对,那其实呢,还是直接干什么,还是直接用我们这个对吧,翻译软件对吧,翻译一下会更好一点,比的中文这这个要好,对吧?所以说啊,这会儿呢,大家有兴趣可以看一看对吧?呃,那么咱们这里呢,有一个如果说啊,大家想看官方文档的话,那么这块呢,大家可以在学习下面对吧,它有一个我们这个文档啊一个文档,呃,然后接下来呢,在咱们这个文档里边,对吧?那么它会有一些我们这个呃这个使用对吧,比如说你看这里有一个electric search,它的一些我们这个啊使用,但是目前呢,版本是不是7.9最新的对吧,那咱们可以选择其他的版本对吧,比如说我现在呢选择。
01:00
我们的版本是6.6对吧,6.6,呃,那么在达6.6里边呢,这里有一些关于我们这个elect search对吧,它的一些呃使用对吧,比如说你看这些对吧,怎么去安装啊,怎么样去我们这个配置对吧,怎配置嗯,那么咱们现在呢,在咱们这里大看这里对吧,其中在我们这个安装的时候呢,那有一个配置对吧,叫好对吧,呃,那么咱们现在呢,在这里其实找一个对吧,它有一个关于什么呢?有一个叫discover对吧,咱discover setting,其实我们大家有没有印象,咱们在安装S时候,我们应该配过一个什么discover相关的东西吧,对吧,咱们配的东西是什么呢?我这叫自发线啊,就配这么几单主机进去啊,应该咱们配的是这个属性对吧,咱们配的这个属性对吧?呃,如果说啊,你出现脑电的话,那这个时候如果说这东你看不懂没关系,同学们咱们呢,对吧,这个翻译一下对吧,翻一下对吧,然后现在呢,我们配置发。
02:00
线设置短,第一个我们配置是它啊配置它,那么除了它之外呢,其实还有一个短,这里呢,我们默认情况下,其实如果说啊,这个正常情况下生产环境应该把这个也配一配啊,但是我们的没配啊,如果说你出现了这个脑裂的情况下的话,那么这块呢,你把这个配一下对吧,他刚才这里给他们说了,说避免什把大脑裂开是吧?咱没有咱们提供脑裂是咱没提供大脑裂开,说是啊,这是他的翻译啊,这是的翻译,然后呢,咱们当前呢这个属性对吧,可以帮他们解决,那么具体怎么解决呢?对吧?那么你应该啊,把这个东西设置成合法的一个人数对吧,那具体这东西怎么能合法对吧?比如说对吧,你有三个节点对吧,那么这个时候呢,你的设置吧,那应该是它或者是什么呀,或者是二啊,就如果说你出现脑裂的情况下,你在在这加一个属性就可以了啊,在这加一个属性可以了,但是上班的有一个呃,4G的有一个电脑原来是内存是4G的,后者一使劲对使用的。
03:00
16了对吧,然后他就把这个配置也不再起作用啊,也不再起作用啊,那这个就是其实服务器的事儿了啊,其服务器的事儿啊,这是一个呃,其他的大家呢,也可以去看啊,也可以去看对吧?这关于我们这来search,呃,然后接下来呢,那么咱们呢,来看一看我们这个昨天讲的东西,带大家简单的去回顾一下对吧?那么首先呢,关于我们现在前面这些东西呢,对吧,这个基础一些内容对吧?那么大家呢,得了解,首先第一个来search对吧,它是一个全文检索引擎对吧?全文检索,那大家想一想这个速度是不是得比较快呀,对吧,说那你想全文威检索,原来我用我们这个like也可以啊对吧,那为什么还用我们这连search的对吧?那肯定like有一些问题,如果用传统的关系数据库来进行检索的话,第一个效率跟不上,那第二个对,那么有些咱们那个推荐的功能,其实这个东西呢,实现不了啊,所以说呢,那么这个时候咱们啊得用一些我们这个。
04:00
对,专门的全文检索引擎对吧?那么目前的市面上就是和来search的竞品,那应该是solar,对,就是一般咱们有些网站里边在做咱们这个站内全文检索的话,苏R人员比较多啊,你像一般如果说大家培训的话,对吧,假如说你们要选择一个培训,然后你肯定看当前这个培训机构这个项目怎么样了,对吧,尤其是假如我想选择招培训,你得看一看这个这这周啊,这个机构做什么项目对吧,现在呢,其实是一阵风啊,你像以前我我最早做Java培训的时候,对就就讲Java课的时候,那个时候讲SSH的,在随便讲一个什么什候管理系统,学生出去找工作很容易搞,不像你们现在下这么大还得几年是不是对吧?那个时候其实一同学是实差不多就OK了,对吧,然后再往后呢,那就得这个SSM,然后那个项目呢,对吧,那除了管理系统之外呢,那慢慢的升级,基本上你会发现其实大同小异。
05:00
对,基本上哪个培训机构,这个电商行都得有。对,你像电商的项目是不一般都有啊对吧?然后呢,一般有一些什么p two p的项目对吧?互联网金融的这项目,这就一些比较火的嘛,然后再不然呢,就是一些我们物流的什么项目啊,再然就物理物流什么项目啊,再不然就现在在线教育对吧,像这些对吧?那如果说电商项目的话,那肯定呢,离不开站内搜索,对像原来呢,他们讲战搜的其实都是我们这sor对吧,只过现在呢,一般用的我们的s search啊EL s search,那么如果说使用ELS的话,它为什么使这个搜索能力比较强呢?那么首先呢,那咱们在存储的时候,它底层使用的是我们这个倒版索引的形式,对吧?什么叫倒版索引对吧?它是相对于我们前面啊对吧,就是原来传统的一个我们存放数据的方式,原来传统存放数据的方式呢,那肯定是,哎,我现在是哪个记录,记录里边呢,是什么什么单词对,当文索引呢,是把单词来进行分词对,然后呢,咱们现在在我们这个里边对,然后单词后边是单词出现在。
06:05
在一个文档或者哪一个记录中,对吧,这是这种形式对吧,那这样的话,它的一个做能力啊是比较强的,对吧?那么咱们现在使用A来search呢,它底层其实呢,是基于我们这个lesson对吧,在lesson是一个思想之上,对吧,然后呢,对吧,开发出来的对吧,那么咱们在操作S时候,那写的是什么呢?是搜口句吗?那不是对吧,我们现在操作这个来的时候,我们使用它特定领域的一个语言啊,特定领域的语言,对吧,那么这个语言呢,它是基于我们这个redfor风格的,那如果说你现在想去操作的话,那你需要发送我们类似于我们这在浏览器里发送请求,对吧,但是runfor风格呢,它主要接受的是我们这个啊get的请求,POS请求,POS请求以及咱delete的请求,浏览器呢,只能发送咱们这get,所以说呢,我为了操作a s search,我需要借助一些我们这个啊,这个工具啊,或者第三方组件,那么咱们现在这里用的是你的用的T班,它给我提供的开发人员工具是吧?来可以用模拟发送,我现不。
07:05
我们请求啊,其实除了之外还有它的一个head对吧,Head然后呢,以及我们postman对吧,都可以啊吧都可以,然后接下来,那么再往下的话呢,那么咱们呢,把这个来斯尔达建完之后呢,那么对你来的基本概念呢,大家要这个了解对吧?那么整个的基本概念里边呢,像这些东西我相信啊,像什么集群呢和这个进值时啊,啊节点呢,对吧?像什么这个自带属性呢?像这些的了解问题不大,那主要呢是我们这三个,那主要这三个,那么你现在呢,你来是来帮你存放数据,那么大家呢,就想象一下对吧,我现在呢,在设计的时候,我做的是一什么,我做一个类似于豆瓣这样的网站对吧?那么豆瓣里边那有什么豆瓣电影对吧?那么当我点击某一个电影进去,那么是当前这个电影呢,它的全部信息,那么原来我在使用传统关系数据库的时候呢?那么咱们可能要设计一些短一些表,或者一张表,同学们短可能设计一些表。
08:05
然后呢,把它电影信息呢,给它存放好,但现在呢,我可以啊,使用我们的elect search对吧,那么当前电影的一部一部电影的信息呢,那其实是我们elect search里边的它的一个文档,一个document对吧?那么如果有多部电影的话,那么咱们可以把咱们现在多部电影它对应的文档放在哪里边呢?是放在咱们的index索引里边啊,对吧?那么其实在我们这个你来五的时候啊,在五的时候对吧?那么在我们这个文档和索引之间,对,那还有一个什么呢?还有一个type对吧,而且五的时候一个index对吧,它下面可以创建多个type对吧,一个index相当于什么,相当于一个database啊,Type呢,相当于我们这个table对吧?那但是到六的时候呢,它对我们这个type呀做了个淡化,那发现就算咱们现在有多ex话,一般咱们在操作的时候,在在操作的时候,他感觉index和type它们功能呢,其实有点冲突,对,所以说在六的时候,他做了一个改变,一个index下边呢。
09:05
只要创建一个typeb对吧,那你想一个index,一个typeb,然后下面再挂文档,那这个时候呢,这个它俩冲突就有点更严重了,所以说呢,咱们其实在六的时候,它这个type开始的淡化它了啊,所以说咱们基本上那么index就相当于我们原来的table,然后这个呢,就相当于我们的table里的一条记录啊,只不过现在呢,它比较特殊,它不在原来咱们这个二维表结构里边说一行数据了,对吧,那么现在呢,我以带的一条记录它是什么?它是咱们整个一个文档啊,那么这个文档是什么格式的呢?它是层格式的啊,是拿J格式来进行保存,对吧?然后接下来那么咱们现在呢,那我们这个elect它有啊这么几个特点,第一个呢,天然集群对吧,那么也就是说elect啊,哪怕你只有一个节点对吧,那么它呢,也是一个集群,当做集群来进行处理,那么这块呢,咱们可以通过我们这个elect search配置文件中,它有个集群的名称。
10:06
对,来设置啊,就我现在这个节点启动之后,它读取咱们配置文件,然后看一看当前这个节点呢,它属于哪一个集群,对吧?那么第二个呢,咱们这个它是天然分片的,这个分片呢,其实和我们这分区的概念是一样的,是吧?那么我们现在在七之前,那么默认呢,它的分片数是五个啊,咱们那个副本数呢,是一个啊,默认五个分片,然一个副本啊一个副本,然后咱们在创建我们这文档的时候,我发现它给他一个提示,对,到了七的时候,是不是咱们分辨数就变变成一个了,对吧?那么你可以到时候指定啊,咱们多少分辨数啊呃,然后接下来再往下呢,咱们给大家介绍关于我这个elect search啊,它的一些我们这个API,对吧,就是他给我提供的一些我们这个操作对吧,那么像这些呢,我们来看标题,然后具体来想一想,对吧,咱们当时都哪些东西,比如长期基金健康情况,这应该什么cat health对吧,这些东西对吧,然后介。
11:06
查询各个节点的状态,那么这个呢,应该是我们的no,然后接下来对查询各个咱们索引的状态,看到inexes,然后创建索引,这个应该是put加上索引名称对吧?然后接下来查询某一个索引,它的一个分片情况,这个怎么来做?Get,然后接下来share,然后加上咱们现在什么呀,咱们那个索引对吧,就是说查询某一个索引它的分辨情况,那应该是get,然后呢删,然后加上它索引名称,对,如果删除索引的话,直接是delete,然后加索引名称对吧?那么再往下的对文档的操作对吧?对文档操作那么大家要去理理解啊,咱们这个啊write for风格的API,我们说write for风格呢,它是根据请求方式啊来区分你想要做什么操作,尤其是你看咱们的对文档进行操作的时候,你添加文档是put,然后后边跟的内容是这个,你要修改的话,你是不是也可以对通过咱们现在post对吧来做这个事了对吧?然后你要删除的话,你是不是还是对吧,Delete对吧?那么这些东西后面跟的东西是不是都是一样的呀,对吧,那其实这个就是我们的API对吧,它的一个作用对就相当于什么呢?相当于我现在对外的提供相关的接口,然后呢,根据我现在不同的请求方式对来完成不同的一个操作啊那。
12:24
那我现在创建文档呢,那你必须得指定这么几个内容,咱们说啊,其中我现在这个类型,它是不是已经成了我们这个摆设淡化的,但是呢,它对在一些我们这个啊API请求里边,他还能要求你对吧,这个提供是吧,那么咱们现在呢,也把这个东西加上对吧?就是我现在要创建有什么索引,它的类型是什么短廊,接下来这里边呢,短是我们这个文档它的一个ID,对,那么注意一下,咱们现在在创建文档的时候呀,那么这个文档的ID和我们当前文档里边的属性ID,它俩不是一回事。
13:00
啊,它俩不是一回事,那么其中我们现在对所引经操作的时候,那K是谁呢?是不是应该是它呀?啊其实它相当于主键啊,其实它相当于主键这里边呢,是我们当前一条文档里面的一个属性啊和咱们这个ID呢,它不是一回事,对吧?然后接下来那么如果要查询所有文档的话,那这个啊是不是可以通过下文线search来查询到这所有啊的所引名,然下文search来查询到所有,那么也可以根据我们现在的这个文档的ID的来删除或者查看文档,那么接下来再往下走呢,那么替换文档或者更新文档,那么这块呢,有一个操作。就如果说啊,我现在呢,执行咱们的input,然后加上咱们这什么索引啊,加上咱索引啊,加上我们现在类型,在加上我们现在的它的一个ID对吧?那么如果是我现在这种形式的话,那么要求你当前的这个put对吧,它必须得把这ID给加上对吧?那么如果当前索引里面这ID啊已经存在的话,那么他们对原来的A这个这个这个文档呢,来进行替换,对吧?那么这个呢,保证它的一个密等性操作比,就说你不管执行多少次咱们现在这个铺的这个指令,那么最终呢,它只会有一条数据对吧,这个是密等性,但是呢,如果说我要是post的话,那么咱们在对我们这个文档数据进行操作的时候,那么这个ID呢,是可以不加的,就说添加操作时候,这个ID呢,是可以不加的,对吧,那么如果不加的话,那么这个时候它会自动的帮我去生成一个随机的ID,那这样的话呢,密等性它就保证不了,对每次。
14:39
咱们在添加的时候,在这些破操作的时候,它都会创建一个新的文档,对吧?那么这块呢,是一个密的性短,它的一个操作头,这块要知道,然后接下来那么这里呢,有一个批处理,在批处理这块,像这里有一些了解的命令,同学们,批处理这块呢,我让大家了解的批处理的单词是什么。
15:00
还告诉我掰扯是吧,我还特意告诉你,我说不用你们干别的是不是,你们记住咱们现在S里面这里是不是有一个B,对不对对,然后接下来,那么咱们现在批处理的时候,我是不是做什么新增操作,然后什么更改操作,什么删除操作呀,新增那个叫什么来着。Index对,Index不是什么addd,不是什么insert,对是index对,注意啊这块你对要注意一下这块呢批处理,其实我们现在这个命令呢,在执行的时候,对吧,那你如果自己在这写的话,其实比较容易写出问题的,对所以说一般咱们在操作的时候呢,我都是通过咱们这个DPI对吧,通过咱们这个代码去操作的,对吧?但是通过代码操作你得有个方向啊对吧,你得有个方向对吧,你得大概知道,诶我现在要批处理,那我现得去找什么报相关的短,然后接下来我现在要做新增短的,应该是index短轴,如果要是删除短的delete,如修改是吧,Update对吧,然后接下来再往下走呢,那么这块呢,是关于我们这个查询啊,关于我们这查询,呃,那么如果要是我们这个查询的话。
16:07
那么这里呢,其实我们查询是比较重要的,对吧,那么你可以加查询条件,那么加查询条件呢,两种方式,第一个呢,也通过咱们参数给传递过去,那么第二种方式呢,咱们就是在我们这个request body请求体中,把这个查询这个参这个条件呢给传过去,一般咱们用的是我们这种方式,对吧?哎,那我现在呢,在查询的时候,比如说我这里有这么几种形式,第一个查询全部,就查询全部,这时大家很少这么写,对,因为我默认情况下,咱们下写设置是不是查询就是全部呀,对吧,这东西你其实不用这么写,对吧?然后接下来呢,那我现在想干什么呢?我想按照分词来进行查询,如果按照分词查询的话,那么这个时候其实是不是就是我们这个match呀,对来进行我们的匹配,对来进行我的匹配,然后接下来按照分子子属性进行查询,那么这个时候呢,其实也是匹配,你可以通过点的方式,对,就是访问咱们的杰森属性的下一级属性,因为有可能咱们这个文档啊,它本身是个杰森,其中的杰森里边有一个属性,这个属性它什么类型的,它又是于J。
17:07
对吧,那这个时候你在访问的时候,对吧?那怎么办?对,你是不是得就通过咱们这个属性它的下级对吧,这个点的方式去访问啊,对吧?然后接下来按照咱们这个短语来进行查询,对吧?那么这块呢,就相当于我们这个like操作对吧?那还有一个精准匹配,这个呢,是我们这个term对吧?它俩区别在什么地方?对它区别在咱们这里,比如说我现在呢,想查询咱们这张涵宇,但是呢,我把这宇干掉了啊,就那个张翰对吧?那么这个时候呢,如果是赖的话,那么他一张涵宇给我查出来对吧?但如果说你现在呢,要精准匹配的话,这个时候他就会去匹配,完全等于咱们那个张翰的啊,不会把张汉玉查询出来,对,但是呢,这里你要使用精准匹配的话,人家会要求要求什么呢?要求你当前你在使用匹配的字串,它必须得是不分词的,我们说啊,那么我们在整个啊,我们这个创建我们索引的时候,那么索引里边呢,那应该有很多属性啊,那么这个属性呢,它的类型是什么?咱们是不是可以在创建。
18:08
在索引的时候来帮助我自动映射呀,它会根据你放入咱们的索引文档啊,索引中的第一个文档的它的一个我们这个啊,这个记录它的一个内容来推断一下,那么这个属性的类型应该是什么?那它如果是整数的话,默认的是浪类型,如果是浮点数的话,默认是。Flow的类型对吧,然后还有什么管啊日期啊对吧,然后字符串的话,那么它呢,默认会帮你啊在底层保存两个类型,一个呢是分词的test,那么另外一个呢是不分词的咱们这个keyword啊,然后接下来再往下走,这个呢是我们这个融合匹配啊,这个容合匹配对吧?大家注意啊,假如说这个东西。就是其实咱们现在呢在这里对吧?呃,这个到底容不容这个容缩匹配做的怎么样呢?对吧?其实呃这个使用这个功能呢,它对咱们的中文的实现呢,并不是特别好啊对咱中文啊,它的一个实现呢,其实并不是特别好啊啊并不特别好,所以说呢,这块呢,知道这么一个内容对吧,然后接下来那么再往下呢,那么咱们的过滤对吧?呃,过滤呢,那么其实呢,我这里呃主要用他俩先做一个这个对比,一种方式呢,是先把咱们那个符合条件记录给它匹配出来,查询出来,然后查询出来之后呢,再对我们的查询的结果来进行过滤,但是我们一般我们不建议这么干,我们建议什么呢?是不是我们这个匹配和过滤同时执行啊对吧?哎,那么这块呢,就用到我们这布尔查询啊,就布尔查询对吧,那布尔查询里边,那么你现在呢,也是对吧,在这里你必须要匹配什么,然后呢,咱们现在通过它来做我们的过滤是吧?在过滤里边呢,你也可以完。
19:53
要做咱们的精准匹配啊,这个呢,是我们的一分值啊,这个匹配,然后接下来按照范围进行过滤,那应该有一个range吧,对,那应该有一个我们这个range对吧?在query下面,那有一个range对吧?那么在这里呢,有这么几个对范围,常见的一个范围操作,对吧,大于,然后小于大于等于小于等于像这些东西啊,当可能不只出现在我们现在的s such里边,对吧,它可能出现在别的东西啊,别的地方,那么像这些呢,大家应该作为常识对吧,应该把它了解对吧?像什么咱们and FT and什么GP对吧,And n b SP。
20:29
啊,像这个东西你该作为常识短来几绍解对吧?这个是空格啊,这个空格就是如果你在咱们的am页面里边,同学们你想说诶,我想想显示在页面显示空格,然后你在这个页面里边哒哒哒输出很多空格,没用啊,没用短的念头转转移符短来转移一下啊,然后现在排序呢,这个是我们这个S对吧?那么可以对什么来进行排序,然后再往下是关于我们这个分页查询,分页查询呢,其实是两个,一个是from,那么另外一个呢是size from表示从哪条记录开始查,Size表示查出多少条出来,然后指定查询字段,那么这块呢,也可以通过咱store来指定,我现在呢要查询哪些字段出来,然后这块呢是高亮显示的,高量显示呢,就是说我现在做查询的时候呀,这是我查询关键字,如果当前咱文档里面有这个关键字的话,那我把当前关键字呢给你啊,高亮显示,那么我在高端显示的时候,咱们这个样式可以自己来设定啊的,通过什么呢?它有一个叫print。
21:29
以及咱们这个。那那个前缀protect t这个后缀的短post tag是吧?来那不来指定一下,然后接下来呢,那么再往下,那么这里呢,有一个聚合操作对吧?那么聚合呢,其实就是我们这个ADG啊ADDS对吧?那么表示的是什么呢?表示的是我现在呢要做我们这个聚合操作,然后接下来那么你给你所做的聚合操作呀,取一个名字对吧?然后具体你要做什么呢?那一般咱们长句合呢,可能是分组,对,那如果分组的话,那就是我们term,注意term呢,如果不加S是不是表精准匹配啊,如果term呢,表示的是我们分组的term表示分组,然后接着再往下走呢,咱们来介绍关于我们这分子器常用的分子器,随便给我说出两个来,你们用的是什么IK啊,然后还有别的吗?接吧是吧,再来一个。
22:23
啊,再来一个啊,再来一个自带的是不是对,如果记不住呢,官方还自带一个对吧,官方还自带一个对吧?哎,那么咱们现在呢,在这里对吧?给大家介绍关于分词是吧?呃,那么这个分词呢,这个呃,如果说你要是稍微这个细心点的话,应该没有太大问题对吧?但是呢,但如果说我现在这个这个稍微对吧,这个稍微改的时候不细心一点就是什么?就是配置文件不出问题对吧,大家细心一点,这种应该问题不大对吧?就是你们在改配置文件的时候呢,要稍微注意一点啊,稍微注意一点,呃,然后接下来再往下呢,咱们昨天给大家介绍关于我们这个啊mapping啊mapping,那么这个mapping呢,其实对,就是我们现在这个属性的它一个短类型对吧,那么它呢,在指定的时候,那么第一种方式呢,就是我们的一个自动定义,对诶直接创建document,那如果不存在,那么这个时候呢,它自动帮我们根据我当前document的一个值来推断出来,我们现在呢,它的一个map内容,然后还有一个呢,是。
23:24
手动定义对吧,那么像这些东西啊,还是在句化同学们,我现在在写的时候呢,我没有再拿一个个去敲,对吧,因为我这个东西我直接去敲的话,那也有可能会有问题,对吧?你想我现在我自己去写一个这样的杰森对吧,这个这这这这这些咱们这个什么这个双引号冒号这种是不是也很有问题啊,对吧?那我现在呢,在上课的时候,我直接把它考虑过来,那么以后大家呢,再去我们这个工作的时候,你如果真预计到你自己手工定义的话,那么这个时候你只能干什么,把这个考虑过去,然后在这个基础上慢慢的细点心去改。啊只能这样对,如果你们要用的话,你们要想创建的话,你肯定会有有这个事啊,会肯定会有这个操作啊,肯定会有这个操作,然后接下来呢,对吧,除非是什么,除非你通项软对吧,直接往里面放数据,让他帮你自动生成。
24:11
啊,就你不指定自动生成也行呗,是吧,然后接下来呢,那么再往下的话呢,那么就是我今天要讲的内容了,来咱们把这个东西停一下啊。
我来说两句