00:00
回答练习时间了,咱们直接继续对吧,在这个往下来看,再往下来看,呃,那么再往下看呢,刚才是我们这个单条是吧,那接下来呢,咱们就根据查询条件来查多条呗,啊来根据什么呢?我现在想根据我们这个指定查询条件啊,指定查询条件,然后呢,从我们这个E中啊,从我们的ES中来查询我们这个多个文档啊查询多个文档首先你得有方向,同学们对吧,我要想查询多个文档的话,你们觉得这个东西。他是不是得有一个具体的一个这个查询多个文档的一个实现类啊,这个实现类可能是什么。那你得想咱们这个命令对吧,咱咱咱们杰森我在我在这里写的时候,我想查询多个怎么查,我想查询一个是这种语法,我想都查出来呢,是杠是吧?哎,那我觉得这是有方向的对吧,末尾NEXT5,然后接下来在咱们这里边呢,咱们这个啊就直接就杠search对吧,来下划线,我们这个search对吧,可以把它当前这个所引用的所有文档查出来对吧,这个方向啊来那我现在呢,定义方法啊,Fair index by condition条件啊,Condition啊来查询,那么套路是一样的,套路是一样的啊那么咱们现在呢,先来第一种方式吧,简单的方式,方式一啊方式一对吧,那么我现在呢,如果想做这个事的话,首先第一个啊,Get je对get,那首先呢,咱们得先获取客端对象点2VR对吧,那这个呢,是得到我G单啊je。
01:48
可按扣端,然后接下来最后呢,别忘了它应该去做一个关闭,然后呢,在中间我是不是要去执行它的一个SQ的这个方法呀,对吧?那么咱们现在这里边有没有search呢?对吧?不能想当然对不对,然后点进去对吧?在咱们这里边找我们的action,找action它的一个实现,对吧?CTRLH,那么在咱们这里边注意啊,原来这里我往下走是因为什么,是因为这里是不是我们这是单条啊,对吧?但除了我们现在这个之外呢,大家看一看这里边有一个这个是不是有四呀,对,我现在是不是不是单体号的呀,所以说这是什么呢?这是search,而且你看你可以提前先看一眼。
02:24
是不是有咱们的批处理呀,对吧,所以说咱们到时候要批处理的话,那你肯定应该是咱们这个对broke对吧,那我现在呢知道有search了啊,有search了,那咱们现在呢就得去对吧,根据我们的一个search对吧,去查一下,那这里如果想根据咱们这个search类去查,那首先你是不是得先去封装一个search对象,所以说在这里我们呢要封装啊我们这个search,咱们这个对象,那就new一个search出来呗,咱new一个search出来就是咱们这个包的下面对吧,那这里传什么呢?一看传builder,马上把这个东西干掉,把这builder呢给他这个写出来,然后接下来再往这里什么query是吧,这就这我就放心了是吧,Query来呗,VAR,然后接下来query什么类型string是吧,那这个东西更简单了,String到这对吧,是不是咱们想查谁,是不是把你的条件。
03:24
往这一拿就行了,写个稍微复杂点的,同学们,咱们在这儿对把这个东西拿过来,关于我们这个查询呢,咱们其实给大家呢介绍一些对吧,但是呢,这个东西都是零散介绍的啊,那我现在呢,可以让他把咱们这个接触这些东西呢,咱们都给他对用一用对吧,都给用一用对吧?那么如果都用一下的话,大家看一看啊,本身我现在如果要查询对吧,我直接到到这里来看吧,到这里来看啊吧,来是吧,加上咱们这个query对吧,那么这里首先第一个query,然后这个是布尔查询吧,那如果布尔查询的话,同学们大家看本身整体这个宽RY应该是从这儿开始,然后到这结束对不对,这是一个查询,然后接下来呢,那么咱们在布尔查询里边,那它是从这开始到这儿,那包含两个条件必须得满足,一个呢是名字,这个名字呢就包含red了,包含谁呢?包含天龙的。
04:25
啊,博安天龙一般各地应该都有个网吧叫天龙,我觉得那那咱现在呢,在咱们这里,反正我们这有,不知你们这有没有是吧?然后接下来在咱们这里边呢,我现在再去找一个,比如说呢,Actor name,然后呢,这个是不是演员的名字呀,对吧,这个包含谁呢?刘若彤是吧?来,那咱现在呢,把这个东西给RLC拿过来。这个是精准品备啊,这精准品备,然后接下来,那么咱们现在呢,在这除了我现在这两个之外啊,大家想一想这些from size这是干什么的,是不是咱们现在分解查询呀,然后这个salt呢,是不是咱们这个排序呀,按照什么来排序呢?按照豆瓣评分,然后接下来咱们呢,做一个我们的降序排序,对吧,然后再往下对吧?那么咱们这里有什么呢?高亮呗,对吧,按照什么呢?按照咱们名字啊来高亮显示好了,那咱现在执行一下,看一看能不能把这个刘学同学查出来,这东西是不是可以的呀,对吧,我现在呢,可以把这个东西对吧?按照我们这个名字呢,给它查出来,豆瓣客户写错了吗?
05:27
豆瓣K豆瓣K啊,没有这个评分是吧,还行thoughtt对吧?啊这块啊,这个就一一条对吧,它是没有评分的,没打分的就一条没打分好了,那咱现在呢,把这数据有查出来了,对吧?那我现在希望什么呢?就是希望啊你这是通过咱们现在这个网页查的,那我希望你通过代码来查啊,通过代码来查对吧,那你想那你把这东西转换成代码对吧,是不是还是挺吓人的呀,对吧,还好人家给咱提供的API有一个叫这个query的,而且还是string类型,对吧?那咱们在处理的时候呢,那完全可以这样。
06:03
就是把你刚才写的这个东西放在哪呢?放到咱们现在啊,这个直接放到咱们这个字符串里面来,然后接下来那么你再去构建我们这个测试对象的时候,那么其中它要求你,你是不是得把咱们这个查询条件给我拿过来,那么咱们现在在build里边的,它需要一个参数,这个参数是什么?这个参数就是我们这个查询条件啊,这个参数就是查询条件,然后接下来那么咱们现在这个东西没完事的呀,来去build一下吧,对吧,再去build一下,然后接下来我们现在VR拿一个什么呢?拿到一个search,对这样对象对,来在这里build一下,来点VR拿到一个我们现在呢这的一个search对象,然后咱们完全可以把这个search呀给拿过来,但是这里边应该还是少东西对吧,因为你现在你要查询的是哪个索引对吧,这东西我不知道啊,所以说呢,那咱们现在那就点呗,对吧,在咱们这里边再去点一下和index有关的就一个上。
07:04
上面那个是不是叫什么,是不是叫index呀,现在这个方法叫I的index,然后这个参数是不是索引的名称啊,那么你得告诉我,我现在呢,要从哪一个索引里边来拿,对吧,这个是moon,然后index下划线,然后接下来这里还有什么呢?咱们除了index之外,是不是还有什么type呀,对吧,其实这个type看不加行不行啊同学们,咱们现在查询的时候,这里边你看我我本身在查询所有的时候,我是不是直接其实就是一个index,然后就设呀,对吧,我type看不加行不行对吧?看不加行不行,好了,那这样的话呢,就完事了。啊,这样还完事了,关键是哪呢?这个东西其实如果说到这儿啊,到这儿我相信同学们应该都能能都能接受吧,就整个咱现在这种形式,你看咱们现在执行这几行代码,包括封装测试对象,到目前为止有没有说老师这个感觉太有难度了。对,应该还可以吧,对吧,关键是什么呢?同学们,咱们现在查询出来之后呢,它长什么样,是不是长长长这样的东西啊,对吧,那你说我现在再再去把这个什么这子字串给你,对吧,那你没有太大意义,我是不是应该对我们现在查片这块的数据做处理啊,其实我关心什么,我关心是文档。
08:15
我比较关心就是咱们现在按照条件查询我当前索引里边有哪些文档,对,就像你执行一个搜口,你是不是比较关心的是这个搜Q里边它的记录啊,对,我也是,我现在查询咱们索引,我比较关心什么呢?我比较关心的是咱们当前这个索引里边它的文档有哪些,对吧?这个文档在哪呢?在咱们south下边对吧?那么怎么样来去把咱们现在so下面的内容啊给拿到呢?对吧?怎么样把它拿到,那么这个时候是不是得对我的结果集做一个处理啊,对吧?那么怎么处理呢?咱们当你执行了Q方法之后,那它是不是有个返回值啊对吧?原来咱们是不是document的result对不对?那接下来这里咱们呢,来把它接收一下,发现这个好像和这上不太一样,这是不是变成40RESULT的,也就是我现在呢,这里它其实呢,拿到的是一个查询的一个结果集啊,拿查询九机,那么我现在拿到这res插九机之后,那么接下来咱们是不是可以获取它里面内容呀,对吧,获取谁呢?这里咱们肯定get,然后呢,有什么Json是不是string啊这种方。
09:16
是呢,我觉得对吧,没啥意义,你把这字串拿过来,我觉得这东西有些东西我没没必要要那么多,对吧,那么你可以怎么办呢?会借讨债的对吧,然后你自己处理,或者说你看一看,人家在给你提供方法的时候,有些东西啊,对,有些东西对可以咱们用,咱直接用,比如说获取什么total,对吧,这应该是个数呗,对,比如说我现在获取什么最大评分,对比如说我现在获取什么第一个命中的。比如说我现在获取这些叫什么get his,这是什么呀?说所有命中的记录啊,说老师那这个东西获取的是啥?你看一看同学们,当你现在执行我查询的时候,其中咱们这里是不是有一个我们这个属性,这个属性是不是叫has,对吧?那么咱们get has它相当于什么呢?是不是相当于把咱们这里的东西给获取到了,也就说它相当于啊,咱们给我提供了一个方法,这个方法呢叫get has,它可以把咱们我现在高量选中的这一部分内容给获取到。
10:16
能理解不同学们对吧,那我现在呢,在这里,那就获取这一部分内容呗,对吧,它点get his,但是让你传东西啊同学们。他让你传参数对吧,而且这个参数你看什么类型的呢?咱们就来个简单的,就我找最短的这个,我觉得这个简单对吧,你看什么s type。然后什么类型,Class类型对不对,那也就是说啊,这个so type是什么意思呢?我当前呢,要叫get his方法,那么这个方法呢,它会把咱当前这个his命中的所有记录啊,这个内容给你传出来啊,给你拿过来,但是呢,那你看看咱们现在拿到的东西,它是什么类型的,它本身是不是一个这个数组,数组里面放的是不是一个间一个个,咱们这个放的是基对象啊对吧,那么咱们现在呢,在我这里你用什么来封装我们现在的进对象,你想杰森它本身啊,是不是建制,对啊,你用什么来封装的,你是不是可以用map部集合来封装一下,对吧,所以说那我现在这里,那么你用什么来封装,我现在给掌握结果呢?那我应该用map来封装一下,所以说那你应该把map步传过来,但是人家要求你传的类型,所以说应该是class off,那么咱们这个map是用Java还是用SC呢?是不是用Java呀,所以说这里那应该是我们这个U点,我们这个。
11:38
Map,然后接下来这里我们的key string,然后呢,可以any是吧,来封装一下,注意啊,当我现在调用这个方法之后,它返回的结果是什么?注意看点VR,然后这个呢,是粒子集合是吧?这没问题,因为有多个嘛,可能然后接下来看一看这里边的结果什么东西。
12:04
比较长,是不是比较吓人,是不是,你看整个这个粒子集合吗?因为你可能密中多个嘛,对吧,这个集合里面放的是什么呢?放的这个东西对吧?放放的是我们这个查询结果对吧?查询结果这个相当于我们这个内部类对吧,就是封装的它其实你你因为是命中嘛,对吧,咱们现在这个叫什么叫hit对吧,那其中每一个呢,叫什么叫hit对吧,那这个hit它其实也在咱们这个surgery result里边有一个对象来封装,那么咱们命中里面东西你用什么来封装,你用什么来给我这个包装呢?咱们是不是用我的mapb集合来包装的呀,对吧?那么咱们在包装的时候,大家想你本身mapb集合是不是已经可以把咱们K和VALUE6给我放到一块了,所以说这个呢,它本身也是建筑,对咱们有这个K就可以完全包装了,这个东西你完全可空啊,这个东西完全可以给我设置为空,对吧,这VO其实就表示咱们这个扎VO是空的对吧?表示空的意思对吧?好,那咱们现在把这个东西拿到了,拿到了那么拿到之后啊,大家注意咱们这个。
13:05
是一个Java的集合,对不对?那么对Java集合呀,那就来进行操作呗,大家想一想,如果从语法的灵活角度来讲,咱们Java的集这个集合操作起来方便,还是SC这个集合操作起来更灵活一点,肯定SC,你想一想这个SC它给咱们提供的集合的相关的方法,对,其实就像我现在这个RD算子一样,这其操作起来比较容易啊,对吧?所以说我现在假如说我现在想把这个里边的什么什么取出来,我是不是可以用map或者说filter过滤啊,但你看Java里面没有,所以说现在怎么办呢?我现在希望对吧,在这里我呢要这个将我们这个Java的list转换为我们的Jason的list,转换Jason的一个集合,那如果这会转换的话,怎么转换?对吧,在这里也需要呀,去导一个包对吧,Import然后在咱们这个scan中对吧,Import然后呢,在咱SC中是吧?在这啊,他这个比较什么呢?对吧,比较智能对吧,咱们现在呢,如果没用的话呢,他现在还对吧,给你导不了对吧,Import我看一看在这里开太智能了,是不是因为我有一个自动导包开启了对吧,就是如果说我现在没用的话呢,它在这里是吧?呃,在这对吧。
14:26
好,把这句话可你拿过来吧,对吧,在咱们这里的其实需要一个这个内容,对吧?其实需要一个这样的东西,对吧?那么你现在呢,可以这样类似点as scale啊,但现在方法没有,没有的话呢,那就可以import,然后接下来什么呢?咱们在这它要去导入我们那个scale啊,里边有一个啊collection啊collection这里边呢,有一个Java comvers,把咱们现在的这个内容导过来,那这样的话呢,它可以把咱们当前集合呀,可以转换成我SC的集合,那么如果转了SSKY集合之后,大家想想你拿的是什么,你拿的是咱们现在当前这里边的一个命中这样的这样的一个数据,对吧?那你先想关心哪个呢?我想关心这里个东西,那你想一想咱们当前这里边是一个一个的卖,对吧,这个是不是相当于咱的属性对吧,那我现在其实想比较关心的是是不是就是SS呀,所以说你完全可以把它给拿出来吧,对吧,那怎么办呢?那咱们现在在这里我完全可以map一下对吧。
15:26
Map这是什么?这是当前我这个对象,那其中呢,有一个属性叫什么叫S对吧?我现在呢,把这个S给拿出来对吧?然后接着那么咱先VR一下看现在它是什么了对吧?现在它是一个mapb集合是吧?我觉得这样不好啊,它本身啊,这里边是一个集合,然后呢,这里边放着map对不对,那我现在其实呢,我完全可以找我擅长的什么呢?我觉得例子我操作起来无压力对吧?那这个时候一对吧去定一下对吧,这个变量,然后这个呢,咱家来看一看对吧,这个是不是就我现在它的一个粒子集合的对吧?那这个呢,Res的离一对吧,I子集这个呢,不应该用它,这个呢是我们的意思啊,这个是例思对吧?好了,那咱们现在得到一个这样的结果,那么得到这个结果之后呢,那我想把当前这个结果里的数据给它输出一下,就相相当于啊,你现在拿到咱们现在这个S了啊,你先拿着这个S了,那么你拿着S之后呢,那就把它输出一下,怎么输出呢?对吧。
16:26
那在这对吧,Res list1,然后点make string对吧,然后我现在呢,对吧,做一个换R对吧,然后接下来做行输出对吧,来看效果,看一下咱们现在它的一个执行效果什么样。改这个吧,对吧,在这这个呢,是来看这个对吧。肯定是。
17:03
大家看一下,因为咱们现在是不是只有一条数据啊,对吧,所以说当前呢,他拿出来咱们这个数据对吧,那就是这个这里有一个换行对吧,它会把它当前这个数据给查出来啊,这个是我list子里边它的stop中对吧放的数据啊,其实如果查询的话,它会有多个啊,它有多个好了,那这样的话呢,关于我们现在啊,呃,根据这种形式对吧,查询什么呢?查询我们这个根据条件对去我们这索引中查询文档,对它第一种方式就OK了,第一种方式什么呢?第一种方式其实咱们这里说直接把咱们这个查询语句拿过来了呀,对吧,但是说这种不好,对吧,咱们得想办法把这个东西给转换代码对吧,咱们得想办法把这个东西呢转换成代码吧,这个转账代码的操作呢,咱们下午再看吧,到下午再看,然后上午呢,到目前为止啊同学们对吧,咱们呢,给大家介绍内容对吧,一个呢是我们。
18:04
那个索引别名对吧,就是说我现在在创建索引的时候,我可以呢给索引取一个别名,通过别名呢来对索引进行操作,那么另外一个呢,是我们这个索引模板对吧?就是说我现在也是在创业索引之前,然后呢,我可以定义模板,然后呢,这个模板里边是不是有一个patternon对吧?以后只要符合我模板的模式,那么这个时候呢,你这个索引它都会按照我模板定义的mapping啊,Settinging啊来进行创建端来进行创建,然后呢,这些完事之后呢,那么咱们给大家介绍了对吧,我们在idea里边怎么样去操作我们这个search对吧?那么这里我们呢,其实主要大家记了这么几种,第一个先呢去建立我们这个连接对吧,这个连接呢,有一个客户端工具叫je client对吧,然后咱们这个如果是操作我们这个red那个叫jland啊,这个要区分一下,对,然后接下来获取连接之后呢,我们是往我们这个所以里。
19:04
里边来添加文档啊,来添加文档对吧?怎么去添加啊添加那其实呢,是通过index来对我们这个添加数据呢,做一个我们这个封装对吧?然后接下来我们怎么样根据ID去作业里边查询单条数据进来,对吧,然后呢,怎么样去对吧,根据查询条件来查询咱们这个多个数据对吧,出来然后并且呢,怎么对我们的数据呢,它的结果集来进行处理,对吧?那么咱们现在添加注意啊,我们是不是就是添加了一条啊,等添加多条呢,这块呢,我先不在这说,等到咱们项目里面用到的话,我怎么去批量添加,我再说对吧?好的,这是咱们上内容怎么样,感觉还行是吧,感觉和你们上课之前状态不一样,你们上课之前告诉我挺喜欢写代码的,是不是咱们现在看着还不那太喜欢的是吧,行了,咱今天上午就到这对是吧。
我来说两句