00:00
文档啊,是E软件搜索数据的最小单位,如果我们把ES软件类比于数据库的话,那么之前所讲的索引操作就类似于我们表的操作。那好,我们现在当前要讲的文档操作,其实就类比为我们表的数据操作,比方说对数据的增删改查,其实就是对文档的增删改查,但这里的文档呢,并不是指的文件,它只纯粹是一种我们逻辑上的一种概念。这个我们的逻辑上的概念呢,要比我们数据库表的那个数据呢,它要灵活一些,因为我们往数据库的表里面插入数据的时候,那个数据是有字段限制和要求的,比方说组件ID名称叫name,对吧,有这个要求,而我们的这个相对来说就比较什么灵活了,因为它的格式有点类似于阶层格式,那么使用起来相对来说比较方便。那好,接下来我们就给大家演示一下最基本的文档操作。那么既然讲文档操作的话,我们就跟以前讲的是一样的,增删改查,我们依此来演示一下。
01:00
第一个我们讲解创建文档。创建文档,其实创建的就是索引的数据啊,索引的数据就是这个意思,它的基本命令就是用我们的put,然后呢,我们写上一个索引的名称,咱们叫索引名称,这个索引名称我们首先先给它创建,好吧,咱们叫做test,下划线叫dock。然后我们的put test的下划线,Dock,然后我们再来斜杠,这个时候你需要明确的告诉我们的ES软件,我现在要做数据操作了,被下划线叫做dock。Do的指令,它就告诉你我们需要做一个数据的操作,诶我们前面的put就是想做什么样的操作,就是这个意思,如果你写个get,其实就是一个查询的操作,但是我们这里加了一个put,它是一种创建的感觉。创建数据的话,并不知道数据是什么样子的,所以说回车,回车以后加上一个大括号,然后里面填写上我们的一些数据的一些值,比方说ad,我们叫冒号1001,然后还有一个我们叫做name,咱们就叫张三,还有我们这里呢,给它来,我们叫年龄啊,我们这里写上30,这样的话就等同于我添加了一条数据,数据的内容是一个节省格式的数据,哎,我们就表示了这个含义,行,那我们首先先添加索引。
02:26
添加索引完成以后没有任何的问题,然后呢,在这个索引当中,我们添加一个文档,等同于往这个表里面添加了一条数据,数据的内容是这个内容,好,我们点击执行。点击之后,同学们可以看到我们这里呢,他说了我们这个put是不允许的,我们这个地方只能允许post,诶这个地方就很奇怪,我们的put一般就是往里面放的意思,为什么它不允许呢?这个给大家解释一下,是因为我们创建数据的时候,我们数据应该具有唯一性标识,但是你的这个地方并没有唯一性标识,所以他不知道如何处理,那该怎么办?所以我们创建文档的时候,我们应该什么呢?
03:09
增加唯一性标识啊,有点类似于我们数据库表的这个组件的感觉,所以我加上一个斜杠,我写上一个1001。大家可以看到,在我们右边反馈的结果当中,它有个下划线ID,这个你可以理解为就是文档的唯一性标识,咱们就叫1001,这个时候我们的put是允许的。但是如果你要是不使用这个微信标识,它也会给你增加这个ID,但是它是自动生成的,但是这个时候就不能用put了啊,刚才它也提示了嘛,所以我们这里来拷贝,拷贝以后我把这个地方我改一下,改成叫post。改一下咱们叫post,但是我这个时候我的这个1001我就不加了,我不加了以后我把它改成1002,我改成李四,把年龄改成40好了,这是第二条数据。
04:01
我们这是第一条数据,这是我的第二条数据。执行。发现我们创建成功了。但是它的这个维性标识就是一个自动生成的,诶就是这个道理,所以啊,增加维性标识有两种情况,一个是手动,一个是自动啊咱们的一个手动,还有一个我们叫自动,那么手动和自动的话,区别就在于我们这个数据的后面你加不加它,哎就是这个意思。好了,创建文档成功了,那这个时候我想查询文档行不行呢?查询文档这个指令相对来说比较简单,我们给他写上一个get,然后加上索引的名称,索引的名称说白了就是这张表,然后呢,从这张表里面你想查询什么样的数据,所以下划线do,然后你再告诉我组件是什么。然后呢,我们直接点击箭头点击,点击之后你会发现我们刚才的数据就已经被查出来了,那么这里面有个叫下划线source,就是我的数据,那么里面的ID name age这不就出来了吗?没有任何的问题,诶,那我如果想要查询我们刚才的动态生成的那个数据怎么办?你会发现你查可能就不方便查了,为什么不方便查了呢?是因为你不知道这个组件标识是什么。
05:21
哎,那我们怎么办呢?这个时候啊,我们是不是把它去掉,这么查可以呢。点击一下,点击点击以后,你会发现,如果在这个数据的后面不加索引的话,你是查不了的。哎呀,那不行啊,我就想看一看我刚才那条数据怎么办,这个时候啊,还有一种方式,我们可以明确的告诉他我是查询,所以呢,我们有一个叫下划线search。这个search呢,它表示的意思是查询当前索引当中所有的数据,所以呢我们来拷贝,拷贝以后就是查询索引中所有的文档数据,所以这样的话,那个数据就会被查出来了。所以查询。
06:01
查询以后,同学们可以看到在我们的这个地方,这是刚才的1001,那么这个就是那个新的数据,诶,所以啊,我们得用这种方式去查,对吧,那么我们增加和我们的这个查询就有了,那么接下来我们说一下修改,那么叫修改呀。把之前的属性值发生变化,我们一般就称之为叫修改了,那么修改咱们的文档数据,那怎么改呢?我们其实可以看到我们这个put,它会传一个1001,我就把它拿过来,拿过来以后大家想一想,我如果是同一个值的话,那么我这样的话往里面添加它是添加数据呢,还是怎么做呢?所以为了让大家能够看明白,我这里加上一个。10011,我加上一个他。文档的组件标识我并没有改,我只是把数据发生改变好,这个叫做300。对吧,那这个呢,我写个张三一把每个字我都变一变,邓子瑜呢,我还可以再加一个。
07:00
我加一个电话号码。随便写啊,随便写好了,点完以后我点击我们的箭头。同学们可以看到我们这个叫修改成功,就说明我的put呀,在我们提供组件的时候,其实是可以增加,也可以什么修改的,你有那就修改了,你没有那不就增加了吗?对不对,而且我们还可以动态添加新的属性,这个其实要灵活了很多,在咱们数据库的表当中是没有这个能力的,你提前定义好了字段,那么你只能按照字段的数量添加,你多一个少一个,诶都可能会有问题,对不对,所以啊,这个咱们就叫修改。诶,那我们这个post行不行呢,所以咱们再来。我把这个post呢,我们再来演示一下来。那么这个地方呢,我演示一个post啊,我们现在我这个地写上一个103吧,103吧,哎,不对,还是幺零还是10102吧。
08:00
把这个改成二啊,我就随便写啊,随便写,然后随便了好了,我们执行一下,执行以后我们点一下,诶你会发现,诶我们这个不对,为什么呢?因为我们这个地方的102其实是什么,是我们的组件,所以说现在你去查询的话,你会发现应该有三条数据了,所以查询。查询以后,我们的结果应该是三条数据,所以这不是修改,诶那我如果把这个ID我拿过来,拿过来以后我放到这里,那算不算修改呢?我们再试一试行。执行以后你会发现也算,所以啊,我们这里呢,就会感觉啊比较灵活,我可以用post,也可以用我们的put,只不过我们的这个组件标识你需要考虑清楚,对吧?那我们查询的时候也可以查询某一个我们的数据,也可以查全部的数据,这不挺好的吗?诶所以增加修改,那接下来我们开始要去删除了,所以呢,我们接下来咱们往下走,嗯,咱们叫删除数据,那么删除数据的指令我们就要用到我们的delete。
09:03
然后呢,我们写上叫做test and do,斜杠,记住我明确的要告诉你,我要对数据做操作,然后斜杠我们这里呢,需要把1001给它写上,或者我写个1002,我明确的把这条数据删掉,删之前我再确认一下,我把这个查询全查出来。查出来以后,你会发现我们这里是1233条数据,那我现在呢,去删除一条,我们执行,执行以后,那么这样的话数据就被删掉了,删掉之后我回过头来,我再去查询,你会发现应该就剩下两条了,所以我们的数据就剩下两条,所以这就类似于组件删除的感觉,诶那如果我现在删除一条并不存在的数据行不行呢?比方说我这个1002,我再删一遍。好,我再算一遍执行,执行以后它就会有一个not found有这么一个结果,它会告诉你并不存在,诶那我如果这个不写呢,我把这个去掉,也就是说我现在不写咱们当前的这个组建标识,我光写个talk行不行呢?是不是全删了呢?诶我们看一看,这种情况下是不允许使用我们的delete操作的,我们需要使用post,那么我们post不又回到了我们之前的这个位置吗?
10:18
所以啊,咱们的这个指令的写法,这里有一些细节呢,是需要大家去对比学习的啊,不要写错了对吧?好,那么我们的文档操作,我们就简单的说到这里。
我来说两句