00:00
呃,那么上午呢,咱们主要给大家介绍关于我们这个啊,也来search置它里边的一些啊,我们这个API里面的高级吧,对,一个是我们这个mapping,一个呢是我们这个索引别名,还有一个是索引模板,对吧?那么你得知道啊,就咱们现在一般的应用场景是什么样的,对吧?比如说当时我们这个别名的话吧,那么它在主要几个应用场景啊第一个对吧?在运行其中呢,可以无缝的从一个索引敲换另一个索引啊,就我现在如果说啊,我程序里边需要连接某一个索引,那么尽量的咱们不要直接写索引的名字,而是写别名啊,那这样的话,如果说你现在呢,对这个索引要发生变化的话,你不用去改咱们源代码啊,不用改源代码这第一个。那么第二个呢啊,咱们在给索引加别名的时候呀,可以加了一些我们的条件,那这样的话呢,其实就相当于对我们的索引做一些过滤啊,相当于创建了一个视图啊,相当于创建一个视图,然后第三个呢,那么可以给到多个索引啊来进行分组啊,通过别名对吧?然后呢,把咱们现在这个索引放到一组里面去,那这样方便我们对当前这组索引对吧?来进行一个统一的操作啊呃,那么对于索引模板,那么一般它的个使用情况是什么呢?其实分割索引这个其实和分组呢,它俩其实比较像的啊,比较像的,然后再往下呢,咱们给大家介绍关于我们在Java里边去如何操作我们的elect search,那么如果说在咱们Java操作来search上,那么我们首先呢,得去找它的客户端工具,那么这里咱们用的是我们这个je client啊,Je client啊,然后接下来咱们呢,通过它啊对我们这S做操作,上午咱们做哪些操作呢?第一个啊获取连接,然后第二个咱们呢。
01:48
往我们I search里边插入单条数据,那么第三个呢,咱们从I测试里边来查询一条数据,第四个咱们呀,通过我们这个查询条件,然后呢,从AI search里边来查询咱们这个多条数据出来,那么只不过呢,咱们上午在实现的时候,对吧,那么这块呢,他使用的是什么?直接把咱们那个查询的这个啊J字串,然后作为参数给我们的S传过去了,短到这块呢,不好,对吧,这个方式呢,那我感觉在我的代码里边嵌套我们现在这种租串了,对吧,那这样呢,不好,那其实呢,如果你要是想去完善的话,那就完善的话,那么本身呢,我们这个je它给我提供了一个专门啊用你用来帮助你去封装咱们现在查询条件的这个字串的这样一个类,就是说它最终呢,生成的还是这个字符串,因为你想这东西咱没法法改变,为什么呢?因为人家在这个builder里边,它要求咱们传的是不是一个字符。
02:48
块类型的一个这样的这个数据过去啊,对吧,他要求你传一个接对象,只不过呢,那么咱们现在这么写的话呢,不太好对吧,那我希望什么呀,我希望呢,咱们对吧,哎可以怎么样想办法,这些综上处理一下,对就通过相关的内容对吧,那么这块呢,我来看一看啊,咱们把这个啊复制一下。
03:22
然后接下来把这名字改一改啊把这名字改一改,这个呢是根据我们这个条件,从al elect来查询我们这个多个文档,那么这块呢,是我们第二种方式对吧?第二种方式,那么第二种方式呢,其实它主要呢,是对我们这个啊查询的这个字串它做一个处理,那么怎么处理呢?对吧?那么咱们现在这里是不是有一个search呀,对吧?那么其中有一个类,这个类呢,叫咱们那个search的,然后呢,有一个叫source builder啊叫search source builder,那么这个类呢,它的主要作用对吧,就是用于帮助我们呀,来构建查询的一个阶层字符串,注意啊,这个设置build,那么它用于来帮助咱们去构建啊查询的Jason格式字符串啊,那么如果想构建的话,那么首先第一件事,那你肯定得先把咱们这。
04:23
类对象呢,我创建出来是吧?这个呢是我们这个search source builder是吧?那么这个东西它本身在创建的时候,大家看这里是不是就不需要再什么构造这个模式了,直接你可以创建一个这个对象,然后接下来,那么你现在调咱们的这个对象创建好了,对吧?那你首先是不是得先做查询呀,对吧?那么如果先做查询的话,注意,那么这个东西怎么来查呢?那你看一看咱们现在这个字串啊,它的一个结构啊,整个咱们从这开始到咱们这里,这个呢是我们现在这个字串对吧?那么其中字串第一个这个操作干什么了,是不是做一个宽瑞呀。
05:01
对,你看我现在在咱们这里面,首先我是不是得先通过咱们这RY属性来进行查询啊,对吧,那首先我得把这个query这个属性呢,给我构建出来,怎么构建呢?对吧?那不能去拼接字符串呢,咱们呢在这里可以啊,通过我们当前这个builder,叫咱们这个设置到build,然后接下来点,对吧,那么这里呢,有一个方法,这个方法叫做query。啊,这个方法叫pre,所以说你可以理解成什么呀,就把它当前这个设置source builder理解成就是咱们现在整个最外层这个东西,然后接下来你要想构建字串的话,短,那怎么办?你得先按照这个步骤一个个构建,那么咱们这里都有什么呢?Query这里一部分,然后接下来什么from,什么side,什么sound,什么highlight,说这些是一部分呀,所以说咱们首先呢,要把这部内容呢给搞定啊,要把这部内容搞定,在写代码之前呢,也稍微停一下啊。让来继续对吧,来继续,那我现在首先呢,要把这个query啊给它构建出来,那么如果说啊,咱们现在要构建query的话,那它本身呢,得需要你传东西进去,对吧?传什么呢?来CTRL加P啊这里啊,它让咱们传一个什么query builder啊,让咱们传一个quabuer,那quabuer咱们现在是不是也没有啊,那你说我的quabuer这里边是什么,是不是应该是这两个东西啊,对吧,是不是这两个东西对吧?那也就是说咱们现在呢,在这里得想办法对吧,把这个快规给发译出来,那么这两个东西外层是什么呢?是不是有一个叫布尔查询啊,所以说注意啊,那这里,那么我现在这里需要传一个que builder啊,传1QUE builder,那么这个que builder呢,它本身我先把这个东西导进来对吧,这个呢是我们elect search的对吧,那么点进去你发现它是一个什么,它是个接口。
06:56
对吧,那你得找具体的实线呢,对吧?那么你不能把这接口给我传过来对吧?那么它的实线是谁呢?那你得看一看query下边是什么,是不是咱们这布尔啊,所以说那么这个时候我去new一个叫不玩somebodyquiry build啊,创建一个对象,然后接下来,那么这里他们要求你穿什么什么咱们这个流是吧?那这块呢,可以暂时先放一放,这个呢是我们这个布尔qua build啊,这个布尔build是吧?来把这个类型我给它显示出来吧,来在这里第一个他点VR是吧,这个呢是我south。
07:41
啊,这第一个,那么这块呢,咱们也把这个类型呢,我显示出来啊,这类型呢,我给它显出来点2VR对吧,那么这个呢,是我们这个啊负R,然后呢C,然后接下来那么咱们现在呢,那如果要查的话,那是不是应该把它对吧?哎,作为参数传给我们现在search source builder就是需要一个这个东西吧,对吧,然后接下来那么我这里那还不行,那在咱们这个布里边是不是还有两个咱们这个查询的一个条件的呀,对吧,一个什么,一个是我们这个must,一个是什么filter,对吧?那大家的想法可能是这样的啊,那我现在在咱们这里边不玩builder那么点对吧,看一看有没有咱们这个must相关的,这里是不是有啊对吧,而且咱们的must它里边要求咱们传,是不是可以传参数啊,传什么呢?也是传qua build,就你现在要must做什么事呢,也可以把咱们这qua build给我传过来,对吧,那么他需要在咱们这里。
08:41
得传什么computerribu呢,他做的操作什么,是不是我们现在要分子匹配呀,对吧?那所以说在这里我就拗一个叫match que builder啊magic builder,那么magic builder下面还有什么东西吗?是不是直接就是咱们当前要匹配的,咱们现在这个属性以及咱们值了呀,所以说呢,咱们现在在这里直接CTRL对吧,对吧,CTRL奖品,那么你发现咱们现在这里是不是可以直接给我放内容了呀,对吧,两个参数对吧,两个参数一个呢是我当前这个名字对吧,一个是当前名字,那么另外一个参数呢,就是咱们这个value值,把这个值CTRLC给打过来啊,把这个值clc给打过来,好,那这样的话,咱们现在呢,这个must这块啊到这啊完事了,那么除了我这must之外,咱们在布尔茶下面是不是还有一个filter过滤啊,所以说呢,那咱们接下来在这儿,那我们把这过啊。
09:41
也得去执行一下,那应该是Bo query build,接下来点过滤有吗?是不是有filter呢,对吧?那么在咱们这里把这个filter呢,给它加上啊filter,那么这个filter需要传什么呢?是不是也得传一个conribu对吧?它是什么conribu呢?大家看这里要干什么,是不是都精准匹配啊,所以说咱们现在呢,你有一个我们现在呢,这个是term啊term,然后呢,Query builder啊term query builder,然后接下来在它这里需要一传参数,这个参数啊两个,一个是你现在要匹配啊,咱们这个fair的字段的名称,那么另外一个是我们这个字段的值啊,另外一个是字段的值对吧?那么咱们现在把这个东西,这是我字段的名称CTRLC给拿过来,CTRLC拿过来,那么另外一个呢,是我们字段的值对吧,把这些东西CTRLC对吧,给拿过来啊拿过来好,那这样的话,咱们现在呢,在这里我。
10:41
哎呀,布尔类型它里边这两个查询我已经封装好了,然后接下来我们现在呢,把这布尔查询放在哪了,是不是给我们这4BUILD都传过去了,对吧?那相当于咱们现在这部分内容呢,完事了啊,相当于你已经啊处理好这部分内容了,那么除了这部分内容之外,大家注意是不是还有我们这个分页啊,对吧?那接下来咱们呢,再去调它的一些我们的分页的方法,怎么调呢?在search source builder这个下边,那么它里边有一些方法,一个呢是我们这个floor从哪开始,比如从零开始,那么另外一个它有一个方法叫做size,表示的是查询多少条出来。
11:24
啊,拆多少出来,那么这个是不是其实就是咱们现在相当于把它俩给封装完了呀,对吧?把它俩封装完之后呢?那这里接下来干什么呢?得做排序了吧,对吧?那我应该去找search source build,它里边有没有so相关的方法,对吧?大家看这里so的方法两个参数,一个呢,是按照哪一个字段都要来进行排序,那么另外一个排序的规则是什么?对吧?按照它来进行排序,那么第二个呢,咱们现在在这里传一个排序规则,这个排序规则是不是应该是AC或者是什么,咱们这个啊,这个DA啊,但是人家要求这个参数数据类型可不是我们现在的字串叫什么fo fo是吧?然后接下来,那么咱们现在呢,这里边是吧,大家看点一下,这里是不是有咱们现在排序规则呀,是吧,排序规则比如说呢,升序啊比升序,然后最后呢。
12:24
在咱们这里还有一个highlight对吧,那就来呗,在这CTRLC,然后呢,咱们有一个highlight对吧?那么这个high light呀,需要传一个参数进去,这个参数什么呢?叫highlight builder,那就new一个highlight builder对吧,又一个我们这个highlight build对吧?那么接下来那么咱们用high build之后呢,这里有一个属性对吧,咱们指定一下对吧,什么呢?咱们指定按照哪一个我们这个字段来进行高亮显示,把这个name呢给它传回就可以了啊把这个name给传回就可以了,好了,这样的话呢,咱们现在啊,把这个search source,这个search source builder,那么它这种内容呢,就封装好了。
13:09
对吧,说老师,那最终你家需要这个query啊,没关系,Search source of builder啊search source builder,然后接下来它其中呢,有一个我们的一个方法,对这个方法呢,看一看有没有转换成咱们的租串的啊,在咱们这里边对吧,有没有对转换成咱们的租串的一个方法,这呢的to的string的这里有一个什么two string的这个方法,然后接下来咱们的点V2来carryry一下对吧,Carryry一下对吧?好了,那这样的话,咱们现在把它给找到一个组串二,然后做一个输出carryry.S然后接下来这里面东西呢,我暂时啊,我先不用啊,先干掉。啊,这个暂时先给他干掉好,那这样的话是不是相当于咱们现在把这个查询的这个条件对吧,这个查询语句封装好了呀,来运行一下,看一看啊说老师这个东西得到的是什么东西啊,来运行。
14:18
对吧,那么咱们现在来看一看,这里是不是把咱现在这个东西都拿过来了呀,对吧,哎,这里呢,咱把这些东西啊都拿过来了,对吧,那这里有一个一看和是不有关系是么街是吧,对吧?那么这块应该是吧,我记得是不是有个解决方案对吧?在这如果说咱们这个日相关的错把咱们当前的呢加进去啊这个东我怎么知道的,这东西呢,一不。啊,就报了错之后咱才知道的,等报错之后怎么知道的,拿了百度去搜啊就这个就是包括上午有同学问我说老师你看你上午在导依赖的时候对吧,然后在这呢,我能想到的依赖应该有两个,一个呢是什么这plan,一个呢是我们这个search,这两个依赖大家能想到对吧?因为我现在要通过这的客户端去操作一台search什么,但是这样依赖呢,我是不是想不到啊,就我怎么知道我现在这样的还需要依赖于他俩呢,这个东西一般咱们想不到。
15:18
导致你第一次写的,你可能想不到,运行的时候你就知道了,短音题他报错了,报什么错了,对吧,没见过把它复制一下,百度一搜啊,它需要填个依赖啊,一般是这样是吧,好了,那咱现在呢,在咱们这里啊,把我们现在的依赖给加进来。来CTRLC啊,然后把它一来把这画一下卡死了。好了,那么他加完之后呢,那么咱们现在啊,再去运行网恋程序,对,再进行程序来看一看,其实日是相关错误的,这个东西你不处理问题不大对吧,大家看这个是不是咱们现在对吧,它的一个Json字串了,如果不放心的话怎么办呢?来到这对吧,然后呢,去百度一下。
16:21
到咱们这里把这JS格式呢,咱们给它都解析一下啊。随便找一个对吧,那么然后之后呢,咱们在这里格式化校验对吧?来大家看一看,咱们现在呢,在执行的时候,像这些东西是不是基本上是一样的,然后这块呢,对吧,Must,然后呢,匹配匹配名称对吧?然后现在这块呢,它其实帮咱们生成的,就同说老师你看我现在在咱们这里边,我没写这些,那其实帮咱们自动生成的,然后这块呢,是我的filter对吧,Filter过滤,然后这块呢排序,然后这块的高亮啊,这是高亮等于说他可以完全帮助你啊,来把这些东西给生成一下啊,给转化一下啊,就不用你自己在咱们这里边去写我们这个这么多字符串了,你会觉得哪种爽。
17:29
怎么看还是字串爽一点是不是是吧,而且这个东西大家注意啊,像这个东西你要是写的话,你肯定应该是先把咱们这个字串是吧给写出来,就在这里啊,你写出来,然后写了之后呢,那么你执行一下,你看我现在这个运行没问题,然后呢,你写代码的时候,你按照这个对吧,然后把它做一个类的封装啊吧,做个对象的封装对吧?好,那接下来咱们这个完事之后呢,正好把上午的东西呢给大家回顾一下,对,把上回给大家回顾一下好了,那我现在呢,把这个对吧写完了,那么写完之后呢,拿到了一个我query这样的一个查询字串,那么接下来咱们现在呢,是不是要开始执行我们这个查询了呀,对吧?那么如果执行查询,咱们肯定要用我们的je的客户端,它里面的方法什么方法is cut是吧,Is cut方法,那么我们像方法呢,它需要一个我们的action,但是action是个接口,咱们现在如果说按条件查询。
18:29
的话,那我应该去找这个接口实现类是谁。上午咱们在写的时候,接入实验类是谁?Search对吧,所以说呢,那咱们现在在这里new一个我们这个search对吧,拗一个我们的search,但是我现在在new的时候呀,发现他就得穿builder进去啊,那怎么办呢?咱们这里是不是构造的设计模式了对吧?那直接去创建它的内部的对象,然后接下来在咱们这里传谁呢?说把query所以参数给传进去了,然后接下来咱们在这里去A的吧,Inex对吧,把所引名称给它加一下,对,把所引名称要给加一下,那我们现在呢,这个是moon index,咱们上午时节五是吧,然后接下来那么除了这个之外呢,那么咱们来做一个我build VR得到一个search对象啊得1S对象,然后呢,把咱们这个search对象这参数传给它,那么传它之后呢,咱们这里对吧,相当于执行一个查询,那么执行完查询之后,这里是不是有返回结果呀,对吧,它的返回结果长什么样的,长成这个样子,就右边咱们这个样。
19:38
啊,又这样对吧,那么咱们去接收一下点VAR,那么这个时候呢,它返回的应该是一个search result。返回一个sir result,然后接下来,那么咱们在这里呢,对吧,我呢要对我们这个结果呀,进行一个处理啊进行处理,怎么处理呢?Res点对吧,第一个咱们呢,是不是可以什么get,什么d get string呀,把整个咱们的接串给你拿过来,你也可以获取直对象对吧?自己来处理,但是人家是不是帮他封装一些方法呀,咱们用的是哪一个上网get he对不对?然后接下来在咱们这里,它呢需要传一个参数,这个参数表示什么含义呢?表示的是我现在啊查询的是我们的阶层对象对吧?那么我现在调get gas的话,那么他会把当前所有命中的这些记录对吧,都给你拿过来,那么拿过来本身的这个盖看它其实是个JC啊,那你怎么样来封装我们现在Json的,咱们是不是得用我们这个对吧,这个map机合来进行封装呀,对吧,因为它本身KYKV6这样的形式嘛,对吧,那么咱们呢,可以用一个mapb集合来对它做一个封装,那么如果用map集合做封装的话,那么这个时候咱们呢,也。
20:48
放了,我应该对传一个我们类型进去,因为人家参数要求你对吧,传一个什么,传一个class进去对吧?那么咱们的map部机什么类型的呢?应该是我们这个Java对吧?它里面的一个我们这个map啊,YouTube包下面的map,那么里面放的是什么呢?对吧?里面放的是我们string以及any对吧?哎,以及我们的any,好,那这个我们现在点V2下对吧,这个呢是res list对吧?那么它本身的结果对吧,就是我一个T对象命中的一个对象,那么你先拿到这个东西之后啊,同学们,那么本身这是一个扎入集合,但是我们说啊,你要想操作的话,SC那集合提供的方法更多一点,所以说呢,我想把它转换成我们这个SKY了,那么Java和SC相互转换的话,你需要去导包,导谁呢?在我们这个skyla下面有一个collection,在下边呢,有一个Java converse对吧,那么这块它可以对我们这个对吧。
21:48
这个代数集合进行转换,转换成CA的集合对吧?那么转换成CA集合的话,那相当于什么呢?相当于你把这个东西啊,给它放到一个我们粒子集合里边对吧?来封装了,里面是一个一个的咱们这个命中的对象啊,一个命中对象,然后接下来那咱们现在想取谁呢?我其实只想把它给取出来啊,先把它取出来,那么如果想取它的话,同学们,那么咱们是不是应该是把它当前对象,它的一个source给打出来呀,那就是对象点我们这个source啊,对象叫source,那么取完之后呢,它其实啊放到一个我们8UFF份里边了,对吧,但是呢,我8UFF份的我们一般也不常用,我给它转成什么,转成粒对吧?点VR对吧,那么这个呢,是我们一个粒子集合对吧?哎,那比如说我先拿这个粒子集合,那接下来我说对粒子进行一个操作呀,怎么操作的this.mk string对吧,这个呢,操作就是不固定了,对吧,那么你现在呢,可以使用我们这换行来对我当前呢,对吧,这个。
22:48
So,内容进行一个切割对吧,也就说一行记录对吧,咱们换一行一行记录换一行对吧?然后接下来点我们这个C三角就行,对吧?点C三角形,这是咱们上午写的代码啊,这是上午写的代码,新的呢是这一块啊,新的呢是咱们这一块。
23:06
啊好,那咱们现在呢,来整体运行一下,来看一看啊,能不能够达到咱们查询效果,在这儿呢,我们去整体做一个运行。大家看咱们现在数据是不是出来了呀,对吧,那说明咱们现在查询呢没有问题,那说咱现在的查询对吧,是没问题的,好的,那这样的话,关于我们现在对我们这个elect search啊,对吧,在咱们的客户端的操作呢,就进到了这对吧,还有一个对吧,应该是什么呀,应该是批量插入对吧,这块呢,等我们后续在项目里用到的时候呢,我再给大家介绍,现在咱们插入的时候是不是一条一条插入啊,对吧?批量插入呢,咱们的用的时候呢,我再给大家说啊,那么这样的话,咱们像这个呢,就完事了,Elect search啊search告一段落了,停一下。
我来说两句