00:01
好了,那接下来我们就来看具体的操作了哈,呃,那这些代码的话,我就这个把它合起来啊合起来,然后这个推到后面我就不看了。OK,来接下来我们就讲这个具体的操作啊呃,那操作的话无非就是真山改茶呗,对吧,无非就是真删改查啊,那我们先讲这个。先讲什么,先讲这个增好吧,增增加啊好增加,呃增的话呢,其实就是我们之前讲过的啊,有这个什么密等啊,我们分这分这个密等,还有什么这个非密等对吧,就你在这个DSL中,你做过什么操作,这里面其实都能做啊,因为你客户端你不就做这个事的吗。对吧,你有密和这个分密的啊,那我们来这个写一下吧。呃,DF啊,比如说我们增的话,我们就叫做就叫put吧。对吧,密得写不就是一个put吗。是不是啊,那我就叫put吧,啊po好呃,那将来你这个分密的话呢,我们就叫那个什么叫叫那个po是吧。
01:09
是不是啊,这叫post就可以了啊,OK,来,那我们看一下啊,这个里面怎么写呢?啊,你要去增加数据,那就先明白我要调用哪个方法啊,所以你要拿上你的这个class对象,然后去调方法了,那调方法的话,这里面你看一下啊,你就去找一下这个跟创建跟新增相关的方法啊,其实你这个找半天,你发现好像并没有一个方法是。一眼看上去就好像用要用的。对吧,你看看啊,没有什么,好像没有什么put。对不对啊,你看有的是什么script,这肯定不是啊,对吧,也没有什么post,你发现没有。对吧?啊,所以这就是,呃,我们在第一次去接触一个比较陌生的这个东西的时候的一个比较痛苦的地方,就是我不知道我要调用什么方法,那我就需要怎么对这个整个客户端的要有一个什么直观的一个什么了解啊,那你这个了解的过程,你可以怎么去了解啊,第一个你可以怎么去查这个官网啊,查这个官网对吧,查这个官方的一个手册啊,查这个官方手册,然后呢,去看一看他到底怎么去做的。
02:06
那么还有一种就是比较直观一点,什么直接什么去搜索一下,比如说我百度一下对吧,或者我找一些什么帖子,然后看看这个ES什么客户端的一个入门操作对吧,那你大概就能知道我要调用哪些方法。对吧,啊,这个东西就是你在这个第一次学习的时候呢,需要你去做的啊,像现在的话,我们就不用去查了,我就告诉你了啊,他这个其实那个方法的话呢,教这个index啊。对吧,他是教这个方法的,这个就是做我们这个增加的一个操作,你要去调用的方法,你不用去找那个什么put了,或者什么POS,它没有好吧,我们调的是一个index啊行,那我调这个index,它需要我传什么东西呢?啊,他需要我传一个叫做index request。啊,传一个这个index request,然后再传一个request options,啊传两个参数来,我们先说第一个啊,这个index request,这个其实就是一个请求,他要去封装我们的一个就是写入的一个请求的。对吧,你在写的时候,你就看到他要什么东西,你就想方设法给他创建什么东西,那这个东西我们就可以直接去扭一个来,我们扭一下又上一个index request,对吧?我先把它扭出来,先把它放到这,这是我的index request。
03:15
OK吧,那我就是可以把它传进去了啊,Index request OK放到这,然后呢,后面是什么呢?后面是一个叫做request options啊,这个其实是你的请求的一个什么呀,请求的一些什么options,就是你的选项啊,或者什么请求的参数啊,呃,这个东西我们暂时不研究它啊,因为我们对这个整个请求,整个这个HTTP请求呢,其实也不是很熟悉,对吧,所以这个的话呢,呃,ES呢,他也知道这个事儿啊,因此他帮你做了这么个操作啊,就在你的叫做request options。对吧,它的这个类中呢,帮你提供了一个默认的。能看到吧,你直接调用这个默认啊,它就给你返回一个什么叫做request options了。能听到吧,那这里面其实什么都没有放,你看都是空的啊,都是一些什么空的东西。
04:01
啊,那就代表着我们正常情况下是不用研究这个请求参数的啊,不用去管它,我们重点研究的就是前面的这个东西。好吧,行,呃,那现在我们要封装一个index request,那你想想啊,你说你要写入数据,那你不得告诉我要写入到哪个索引吗?对吧,以及你要告诉我写入的数据是什么嘛,是不是,所以说接下来就是什么基于这个对象呢,然后呢,去展开啊,那首先。我们要什么呀?指定我们的这个索引对吧,就是设置这个索引,就是指定这个索引,索引怎么指定,那你试一下吧,Index request,看看有没有指定索引的。对吧?索引不叫index吗?你看一下,这不就指定你的索引的名字吗?是不是啊,你可以在这方去指定你的索引的名字,或者说啊,这个构造器中啊,一般也可以指定。能看到吧,构造器里面一般也可以指定啊,这支持它这个ES这个客户端的一个特点啊,这个构造器里面一般是可以指定这个索引的,OK吧,行,那你可以在这方去指定,也可以什么在这地方去指定啊,那我们就写到这吧,好吧,写到这儿啊呃,那我们写个什么索引呢?呃,我看一下我们有什么索引啊,我们来一个简单一点的,不写那么多啊,写那么多你这个不太好操作哈,Get一下叫做catch,然后呢,Indexes啊。
05:16
我记得我们之前给了一个叫什么。呃,叫movie test是吧,嗯,Movie test,嗯。我觉得这个可以啊,但我不需要写这么麻烦是吧,我就简单一点,我就叫这个movie test得了。那行吧,我就叫movie test啊来好,我就叫这个movie test,然后正好的话呢,呃,如果你要创建它的话呢,应该是能够使用上我们那个模板的啊,那个模板里面的话呢,呃,我看看啊,我那个模板叫叫啥来着,嗯,上面有啊。呃,这是我那个模板啊,它里面总共有两个字段,一个是ID,一个是这个,一个是这个魔文名字啊,就是我们有一个电影的ID,然后有一个电影的名字,对吧,正好两个字段啊,行吧,那我就这么去用了啊OK,那你指定好索引以后呢,接下来就是这个指定什么呀,指定你的数据啊,就指定什么,指定这个do,就指定文档呗。
06:08
对吧,那这个文档怎么写啊,你看一下啊,就是index request,它里面有什么呀?Doc,我看看有没有这个方法啊do,诶没有啊,没有的话就是,呃,我看哪个方法啊。没有的话,那应该就是。S是不是S呀。对吧,那就SS圆呗,对吧,资源啊,那这里面应该就是放我们这个,放我们这个数据的啊,然后你放数据的话,我们正常我们给的都是一个什么再生字符串对不对,所以你看这里面我们有这么一个方法啊,就是你可以给他一个加胜字符串,然后呢,并且要告诉他我给你的这个字符串的类型是什么,就告诉他我是一个加胜格式的就可以,对吧,那我们先需要准备一套数据吧,啊这个准备数据的话,嗯,为了方便一点,我这样哈,我去写上一个class,好吧,写上去class,这个class我就叫做movie啊呃,写个杨梨类吧。
07:01
啊,就叫做movie啊,然后这里面我们就写个呃,叫这个ID啊,它是一个字符串的,然后呢,叫嗯叫啥来着,刚刚那个。我对应起来啊,对应起来。呃,叫下划线内是吧。好,它也是一个字符串行,呃,那我写上一个样例内啊,这样的话我上面就可以非常方便的去使用啊,你看一下我先准备一下数据吧。就是直接什么movie好吧,这里面我就是给什么东西啊。给你的ID,比如说1001,呃,名字啊,你这个电影的名字叫什么呢?比如说我们写个这个什么速度与激情对吧。随便写啊,OK吧,行来接收回来,好,那这是我的一个什么。Java中的一个对象,或者什么这个SKY中的一个对象,但是你将来真正写入到这个ES的时候,我希望你是一个JA数据啊,所以说我们可以调用一下我们这个JA。对不对,调一下这个再省啊,然后呢,打个包啊。
08:00
来导火包啊,然后呢,作为一个什么呀,呃,To JA string啊,然后呢,把你的这个movie呢传进去哦,那因为我们这个是一个SKY对象啊,说我们要传上一个这个叫啊对吧,把这个传上啊。行,我就拿到一个摘数据了啊,这这个VR叫movie摘啊,能看到吧,那这就是我们要写入到ES的数据,那我就把这个什么movie摘传到这好同样呢,呃,我们要告诉他啊,你是什么类型的,就是有一个叫什么X content type。X。Ta。Content type对吧,好,它里面有一个叫做摘啊,就是告诉他啊,我现在给你的数据呢,是一个摘数据。对吧,这样就可以了啊行,那你看一下我的这个索引也指定好了,然后这个dock也指定好了。接下来我就可以正常写入进去了啊,但其实现在我们做的是一个密等写,那密等写的话呢,我们之前说过,你的关键点就是什么需要去指定什么指定你的ID对不对,要什么要指定这个dock ID的对吧?所以说呢,你除了这个之外哈,你还有什么指定你的doc ID啊,那我就在指定dock以后呢,再指定一个吧,对吧,就指定我们的doc ID啊,这个怎么指定的,那就什么直接index request讲什么呀,叫ID就可以了。
09:25
能理解吧,那我这个ID的话,我就嗯,就跟他保持一样吧,好吧,跟他保持一样得了啊,注意啊,这是你的数据啊,这个是我的文档ID啊,这两个是不一样的啊,就我就为了好看吧,我就把它保持一样的好吧,哎,就是一个值啊,OK,行,那你看一下这就写好了,写好以后的话,我们最后执行一个client什么index,那么这就搞定了。对吧,来把这个写好以后,我们做一个测试啊,直接来到这里面,你就不打印了哈,直接测吧,测什么呀,你就调一下我们这个写好的方法,调一下铺子不就好了吗。对不对,来跑一把啊。呃,我们叫movie test啊。
10:05
好成了啊,那成了以后呢,你就什么回到你的这个里面去查呗,对吧,查一下就就知道了啊查一下。好,来查一下啊。呃,我们就来往上一点啊。Get一下什么呀,叫做movie。哦,还没有啊。对吧,应该叫他啊来找一下,呃,没选中啊。行看一下吧,这个数据已经进来了,对不对。能看到这个数据吧,你看一下我们的。Do ID是1001是不是,然后它这个数据的ID是1001,然后呢,名字叫速度与激情,你看一下是不是我们这个写的这个数据啊。对吧,好,那么因为它是一个幂等写啊,那这个幂等写的话,你看一下,只要你的这个do ID不变,你上面这个数据不管怎么变,它最后只是保留一条数据啊,你比如说我把它改成你的数据激情一了。
11:00
对吧,来改了啊,改了以后你再执行一下,再执行一下的话,你看一下啊,我这个ES中的它其实还是一条数据啊。好成了啊,成了以后呢,你看啊,我把这个这是我刚刚那条数据对不对啊,我截个图,然后呢放到这,然后你再查一下,这个时候你看一下变成什么了呀,是不是还是这条数据啊同学们。对吧,数据还是一条啊,你看我的数据还是一条。对吧,但是你看一下啊,你的1001 1001,这都没变,只有这个值发生了变化,这不就是一个幂等写吗?对吧?它的前提就是只要是你的这个doc ID是一样的,那我认为你都是一个相同的数据,那我就会怎么做一个覆盖。理解了吧,啊,这是我们这个幂等写入啊,OK,行呃,那你这个幂等写入会了以后,那我问你这个会非幂等写,你会不会写啊。啊,非必得解,这个非常简单,跟上面一模一样。跟上面是一模一样的,我拿过来啊,拿过来放到这儿,唯独不一样就是什么呀,非密等写,注意不指定ID,听到了吧,不指定doc ID,那你看啊,我把这个指定do ID给他干掉,现在就是一个非密等写。
12:06
能记得吧,现在就是分泌能写啊,比如说呃,我把这个这个写进去啊,再写一次,来我们调一下这个post啊,把这个注释掉诶。好调一下post,行来走一下啊呃,那刚才我们这里面是有一条数据的啊,它的ID是1001对吧,现在我又写进来一条,这个就是值是相同的数据,但是呢,它会当成不同的数据来处理啊,你再查一下。好吧,两条数据了吧,你看一下啊,这是我刚刚写的那条数据啊,你的ID是1001,然后呢,我的分密等写,我是没有指定ID的,说他为什么给你生成一个ID。对吧,数据是能够写进来的啊,你比如说你再写一次。来,我再执行一次。好,我又执行了一次对吧,那你到这里面你再看一下来刷新一下,呃,查一下三条数据了吧,你看一下啊,是不是给你来一条数据啊。
13:03
对不对,虽然说你写的东西都是一样子的啊,但是呢,因为你是非密等写,那么他就认为这是一条全新的数据,它会给你什么,随机生成一个AID,然后给你写进去,对吧?这叫做什么非幂等写,就你写几次我就会有几条数据,但是我的幂等写呢,你只要你的ID是一样的,你不管写多少次,你最后只有一条数据。OK吧,啊,这个事情你要知道一下啊,行,这就是我们的呃,写。好吧,停一下。
我来说两句