00:00
接下来我们再来看第二个命令,我们如何给ES里边索引一个文档,那翻译成MYSQ的话,那就是保存一条记录,首先呢,我们要保存一个数据,我们首先得告诉我们ES,我们这个数据呢,要保存到哪个所有的哪个类型下,那翻译成MYSQL的话,那就是要保存在哪个数据库的哪张表下,而且保存的时候呢,我们可以指定一个唯一标识,那么想要保存一个数据给ES里边,我们用的命令就可以是put,比如我们给customer这个索引,也就是这个数据库下的这个类型,也就是这张表下,我们想要保存一号数据,一号数据的信息就是这个,因为ES里面存储的所有数据都是杰森文档,所以我们在这准备了一个杰森数据。好,我们使用postman,先来进行测试,那么后来呢,再来使用K单呢?好,现在我们来添加。我们现在呢,还是来发送请求,给我们这个SEARCH9200端口来发送请求,我们现在要保存,首先保存呢,我们可以发送put请求,Put请求我们要保存一条数据在哪个索引下,我们先得指定索引名,也就是数据库的名字,再来指定我们要保存在哪个类型下,也就是我们表的名字啊,包括呢,我们这个数据的唯一标识,我们可以给它指定上。
01:24
那我们数据呢,由于是一个杰森,所以我们在body里边来指定上raw,我们来让它发送一个杰森数据,我们将这段杰森的内容我来复制过来,CTRLCCTRLV来点send。然后这一块呢,我们就会看到201CREATED,那么这条记录呢,就创建出来了。那返回的这些数据我们来给大家分析一下,那以后呢,经常会看到这些数据,首先杠index这些带杠的我们都称为叫原数据,这一块呢,反映了我们当前的一些基本信息,杠index就是我们这条数据在哪个索引下,相当于在哪个数据库,在customer这条数据库,包括呢,是在哪个类型下,是在这个external这个类型下,包我们刚保存的这个数据的ID是几,我们ID是一,包括这个数据的版本是几,我们这个版本呢也是一,还有最终的结果。
02:22
因为我们这是一个保存,第一次呢保存,所以我们的结果叫created是新建,我们刚创建了一条数据,这块叫扇子,这是封片,我们在集群的情况下呢,再来介绍这个分片的信息,那这些呢,就是我们要常用能看懂的这些字段,而且呢,如果我把这个请求再发送一遍。我再来点一个send,我们会发现呢,这块又变成了叫updated,同样的请求呢,我发了两遍,还是想保存一号数据,其实一号数据呢,之前已经有了,所以呢这一块的结果就是一次更新操作,而且呢它的版本号会变为二,所以呢版本是一个不断叠加的过程,这是我们这个put形式的保存,我们带上ID put带ID的保存,而且呢发送多次,发送多次,发送多次是一个更新操作。
03:19
所以其实boot操作啊,是保存更新二合一都不行,那还可以怎样保存呢?那还可以发送POS的请求进行保存,比如我们这个保存呢,我把它重新调整一下CTRLC来准备过来,我现在来发送posts请求,那还是要发哪个数据,我把这个数据呢准备过来,那这条数据呢,还是拿过来CTRLC,那这个post请求呢,我们在保存的时候,我们就可以不指定ID,所以我们来看一下,我在这呢,如果我不指定ID,我直接来send一下。那这呢是201CREATED,我们会保存了一条数据,刚才呢是一个新建操作,而这条数据呢,会有一个唯一ID,有的人家会自动给我们返回一个唯唯一ID,那当我们多次发送这个请求,它呢还是一个create,每次都会产生不同的唯一ID,上一次是这个结尾是XZT,这一次呢是RK,所以呢,Post是一个新增操作,但如果我们带上了ID,比如我们来二号是这条数据,我点一个send,那POS呢也能带ID,带ID,那第一次是created,那第二次我们再来send,我们会发现呢,它会变成updated,而且呢,版本会进行升级,相当于post也是。
04:44
保存更新二合一,那如果不带ID,那就是永远的新增带了ID,如果有就是更新啊,这还是我们这个post。保存它也是咱们这个新增和修改二合一新增如也就是说不带ID永远都是新增。
05:02
而如果是修改我们带了ID,并且之前有数据,那这就是一个修改,不带ID,或者带ID但之前没数据。那这就是一个新增,那这块呢就很好理解,那它跟put又有啥区别呢?当然我们看一下put put呢它是不允许不带ID的,我们来把这个ID取了,我点一个send。那在这呢,就会说一个叫45405叫请求方式不允许,也就是说ES认为你要发put请求,那就一定要带上ID,那如果你带的这个ID在数据库中没有,我还可以给你新增,有了我还可以给你修改。所以这是put的唯一要求,就是必须带上ID,这是我们给ES中保存数据用put或者post。
我来说两句