00:00
怎么样来操作一来search对吧,那么操作一来search,那无非是对吧,怎么样从那里面获取数据,怎么样往里边呢来放数据呗,对吧?然后接下来呢,咱们现在主要先看什么呢?先看往里边放数据对吧?先看往里边放数据对吧?这个放数据呢?那其实我是不是可以到单个放那的时候,我是不是也需要批量插入啊对吧?那批量这块呢,咱们这个后续再说对吧,后边呢,我再给大家再补充对吧?那么咱们在项目中啊,我会用到批量,到时候再说,现在呢,那我先呢来单条插入啊,那我在这里啊,在这里我呢需要提供一个方法啊,这干什么呢?向我们这个ES中来插入单条数据啊,插入咱单条数据啊,这个呢是方式一啊这个方式一。那么我现在呢,要插入的话,那其实是不是就往索引里边放文档了,所以说定音方法等放是put往索引里边放呢,那就是往put index里边放呗,对吧,那接下来那么咱们现在呢,那如果你要想去放的话,首先第一件事连接是不是得建立起来呀,首先第一件事呢,来获取我们这个客户端连接,对吧?那咱们应该是不是调方法就可以了呀,对吧,那就是get get client对吧,直接呢去调到这方法,这个方法呢,它的返回值那应该是一个just client对吧,那应该是一个just client。
01:32
对吧,把这个客户端对象获取到了,那获取完之后呢,先别着急写代码连接对象获取到之后,用完了之后,你别忘了给人关掉嘛,对吧,那应该是关闭连接对吧?然后接下来的get client.allow对吧?那么这里咱们是不是通过客户端去操作我们现在的这个,那接下来咱们呢,要通过咱们的客户端对象去操作我们的ES怎么操作呢?这里边有一个方法点一下注意,你们觉得哪一个方法像。
02:05
通过呢,Cos对象指标操作,咱们也来测下哪一个方法下。SQ什么意思,执行啊,那我现在执行不就是执行什么操作嘛,对吧,所以说呢,就是咱们SQ的方法,对吧,通过它来操作咱们这个对象,那接下来那你看一看呗,当前这个方法需要什么呢?需要一个你发送的请求什么类型的action,知道action是啥吗?动作对不对,也就是说你现在要执行什么动作呀,插入查询还是什么吗?对吧,你是不是得把这个动作给我呀,对吧,但是你想一想,我这个动作可不是唯一的,有可能是新增,又能删除,又能修改,有可能查询吧,对吧?那所以说这个action我感觉它不代表具体某一个。它应该代表咱们一类动作对不对?那你现在点去看一看action是什么点对吧,然后到这里有一个action,点进去发现这东西本身是什么,是个接口,既然是接口,这里面是不是应该有实现类呀,那接找呗,在这里啊,那我现在呢,CTRLH对吧,去找它的实现,那我在咱们当前这里边呢,去找我们这个抽象action,然后在咱这里边呢,它有一个什么呀啊叫抽象的document对吧,这个动作,然后接下来在咱们这里边有一个叫single result,因为你现在是不是放一个呀,对吧,然后接下来点进去,那么这里呢,这个动作主要有这么几个,同学们。
03:27
能简单猜一猜都是干啥的吗?对吧,那你想一想,这个东西你应该知道查询呗,而且差一个对不对?迭delete的删一个,然后这个update的歌新一个,那这个呢,一般这行计划咱一般用的少一点啊,这个index index干啥呢?想一想,我当时在讲咱们批量操作的时候,我让记一个这个对吧,然后进来时候是还有一个index index是代表咱们这个新增操作呀,对吧?那也就是说这个时候index注意啊,到这里它代表一个动词了,原来咱们index所引短行这是个名词对不对,现在这里它其实代表一个动作什么呢?代表咱们的新增操作啊,代表咱新增对吧?那么既然这个东西它是一个类,那么这个时候呢,它又需要你现在传一个东东西过来,那怎么办呢?咱们这里是不是应该去创建咱们这个插入对吧,这个抽类吧,对吧,他类谁呢?Index到index那来呗,咱们现在这里new一个对吧,在这里new一个index对不对,然后接下来。
04:32
在这里导包导谁呢?导咱们这个这个elect search,导在search box下面扣下面有一个音带,别导错包了啊,别导错包对吧,那接下来咱们现在点进去看一看啊,我这个东西怎么来创建对吧?那在在咱们这呢,我发现啊,本身在这里它有一个这个东西。Protected index。然后呢,Builder。
05:00
Builder。什么意思?同学们,那我发现在咱们这里边,这个东西你在创建的时候,你不能直接扭它,因为你要直接拗的话,你是得给我传一个咱们这个标准过来,所以说你既然不能直接就,那么咱们这个时候怎么办呢?你是不是得去找它的一个内部类,这个对象得找内部类呀,这个内部类叫什么呢?Build嘛,对吧?那么咱们现在看这里边需要传什么的source,就是你要操作什么东西,对,你要操作什么东西,对吧?而且这个类型什么any类型,我问大家,我现在在咱们这里边,如果说啊,我往咱们这里边去插入一些数据,对吧,比如说我在咱们这里边去插入一些数据,对吧,我随便找一个吧,对吧?呃,在这是吧。咱们我一开始插入操作在哪呢,找一个。
06:04
就这个呗,是吧,比如说那咱们现在就他吧,啊,比如说现在呢,咱们这这边是吧,123啊123好了,那咱们现在把这东西拿过来啊,把这个拿过来,大家想一想,我现在这里边我要想执行插入操作的话,那么这个东西你是不是可以直接对吧,把这个指令给我执行一下,对吧?那么其实这块呢,是不是发送请求,然后这块大家想一想,是不是我现在给这个请求传的参数啊,对吧?这算不算是any类型的参数。这个东西算不算any的参数算吧,对吧,那如果算的话,那我觉得这个事简单了对吧,什么呢?对吧,在这里对吧,他们需要SS吗?那我这个SS呀,还是比较容易给提供的,我把这个关掉的。来,那么咱们现在呢,在这里我呢去定一个对象,那在咱们这里它需要一个source,那咱们现在呢,就要定义我们这个执行的我们这个south怎么定义呢?我的string类型对吧?那VR然后呢,他要south,我就给它south string类型对吧?来在这里往这一放对吧?但这种方式同学们就觉得爽不爽,把这字符串拿过来一看,这东西啊来我现在这这我真的语句啊,啊这这语句对吧?假如说你到公司里边啊,一个哥们刚走,都刚离职,让你维护一下他的代码啊,这个呢,是这哥们写的这个这个对接操作语句。
07:31
那你拿过来对吧,这是不太爽啊,对吧,我记得在咱们这个SKY里边是不是有一个格式化字串的一个语法呀,啊,这双引号加少了是不是加仨就行是吧?来呗,加三,这样看起来比刚才是不是要少那么一点点,对吧?好,那既然它是S的话,那么咱们现在这S有了呀,同学们,这个S有了,对,然后接下来,那么咱们这里是不是可以build一下,然点V拿到一个什么呢?拿这个index,这个index大家想一想是什么类型啊,是不是咱们action这个接口的一个实现类啊,然后你在执行的时候,是不是我现在它其实是一个什么,是不是我现在需要一个action,它的一个时间的一个象,那我把inex往这一放,这不就OK了吗?对吧,但是同学们,我在执行这个操作的时候,我可不简简单单给你传咱们现在这些东西了,我上面还有呢。
08:23
你看我在这个新增的时候,我上面是不是还得得加东西,什么索引的名称,什么咱们类型名称,什么咱们这个文档的ID是不是得用啊,对吧?那你现在你这里,你通过Java代哪给传说我现在来执行我这个添加文档操作,那你是不是得知道我要把这个文档添加到哪个索引里面去,对吧?然后这个文档的ID是什么,我是不是在知道,所以说同学们在这里在build之前对吧,在build之前,那么你现在呢,还应该做别的操作什么呢?来点一下对吧,你看一看有没有和inex相关的,这里是不是in代的方法呀,对吧?然后有没有和咱们这个type相关的,这里是不是有type方法呀,然后有没有和咱们ID相关的,这里是不是ID方法呀,对吧?那这样的话,咱们现在就可以完全什么呢,把咱们这个东西拿过来了,对,比如说我刚才呢,在咱们这里,我往哪个里放呢?Move index对不对,来CTRLC,然后呢,来一个加个后缀,比如说五表扬这个type。
09:23
类型的,比如说就是我们的目对吧,咱现在这ID多少呢?比如说一对吧,那咱现在要求什么要求搜号是吧,那咱们就是这个一。啊,完事了。看一看对吧,整体上大家想想在写这个代码的时候应该不难吧。啊,这里应该不难,那现在咱们测试一下,看一看行不行啊,来在这里写一个慢方法啊,慢方法的话呢,去调一下咱们这个put index这个方法啊,把这put index方法呢去调一下,然后接下来去执行导这程序啊,来运行一下看效果啊。
10:12
这个警告呢,你不用去管它,咱们程序是不是执行完了呀,咱们执行完了,那你应该来到这里啊,应该来到这,这个不要啊,不要嫌太大。这个不要。然后接下来咱们现在呢,去做一个查询,咱们那个索引叫末尾index对不对,然后接下来下划线对吧五是吧?哎,咱是下划线五啊,怎么感觉没有来,那现在呢,来做一个四对吧,来做查询啊有了是吧?那大家看这个是不是咱们刚才去查的数据ID为一对吧,然后这个呢,是我们现在它的一个对吧对吧,这样的一些我们的内容啊,那这样的话,咱们现在呢,这个往这里边插入一条数据啊,就完事了啊,往这里面插入一条数据就完事了啊。
11:09
来看一下咱这个代码啊,看一下咱的代码整个如果要执行的话,首先呢,咱们去对封装的一个获取咱们这个je克兰的工厂这样的一个方法,对吧?然后接下来那么咱们如果工厂呀,创建完之后,咱们调用工厂它的get来获取咱们这je客户端对象,然后接下来呢,那么咱们呢,去提供一个方法来完成像我们的原色插入一条数据这样的一个操作。啊,插入单调数据这样的操作,然后接下来,那么咱们现在呢,再去我们这个,呃,插入的时候,那主要的步骤第一步是干什么?第一步是获取客户端,然后接下来咱们是不是把这客户端给干掉了,对吧?然后接下来,那么你现在执行业务是什么呢?我是不是通过一个AQ的方法来执行,你现在具体要做什么操作呀,那么发现AQ的方法需要什么呢?传一个咱们的action动作进来,那么action本身是一个接口,那么咱们的接口呢,有对应的时限内,也就是说他把咱们增删改查这四个行为是不是都封装成咱们具体的一个类的呀,对吧?那么这些类呢,都实现了action这个接口,对吧?那么咱们现在呢要插入对吧,而且是插入单条,那么这个时候呢,我是index啊,我是index对吧,然后接下来那么在咱们这里边对吧,那我就封装一个index对象,那么在创建inex对象的时候呀,那么这个对象呢,它本身并不是直接扭出来的,而是使说构造者设计模式对吧?那么首先构造者设计模式的话,咱们创建的应该是index这个类的的一个内部类对象,这个内部对象叫什么呢?叫build。
12:37
那么你在创建内部对象的时候呢,那要求你你把你当前要执行的内容啊,对吧,那么你得给我放过来对吧,那么我现在呢,放了之后呢,注意,然后呢,我再指定我当前要把咱们现在这个数据这个文档往哪来放,其实这里大家想一想,我这个source是不是相当于我一个文档。对吧,相当一个文档对象嘛,然后接着你要把这文档往哪个索引里边插入对吧?然后呢,咱们索引它的一个type是什么,然后接着这个ID的什么这些东西呢?那你可以通过咱们的方法来给我指定,那么同时呢,在咱们这里边对吧?那么有一个什么呢?有一个注意的地方,就是本身啊,那我们现在在执行的时候,对吧?那我们本身这有一个source,这个source呢,对吧?注意看在这里我说一下吧,这个builder啊中它的一个参数啊,表示为表示呃表示什么呢?表示呃要插入的啊,或者要插入到索引中它的一个文档对象文档啊,那么底层呢,会转换,为什么会转换为我们的Jason格式它的一个字符串啊,底层呢,它其实会帮咱们把这东西转换,如果你现在直接给我传一个字符串的话,它其实是不是就省事了呀。
13:58
因为你给我传直接是个杰森,直接是杰森,我是不是其实就省事了,对吧,那大家想一想,那我现在假如说啊,我不给你传杰森,我能不能给你传一个对象过去。
14:10
然后你把对象给我转换成我们的G神,那应该也可以吧,对吧,那既然底子会转换,所以说呢,对吧,所以咱们的这个短可以短传什么呢?也可以传样对象啊也可以啊,也可以将我们现在它的一个样理类啊对象对来这个或什么呢,将咱们这个文档吧,对吧,将文档来封装为咱们这个样类对象,也可以这样来做啊,也可以这样来做,那么到时候他把它样对象呢,也会转换成接给他传过去啊,也传过去,然后这块呢,Is cut对吧,那么is cut它的一个参数为我们的action对吧,这个类型对,然后呢,Index是我们一个action对吧,这个接口它的一个实现类对吧,好,这个呢是我们现在啊第一种方法,但这种方法注意其实呢不太好对,因为在扎。
15:10
串里边嵌到这样的代码其实是不太好的,对吧,在咱们SC,在咱们正常代码里边嵌到这样的语句其实不太好的,对吧,所以说我们呢,一会给大家介绍第二种方式,第二种方式干什么呢?就是想办法把这个东西给封装为我们的样类对象,然后呢,传到我们现在这个build里去,因为它本身any类型的嘛,对吧,你一样累也没问题,对吧,咱们稍微休息一会儿,然后回来继续对吧,休息一下。
我来说两句