00:00
那么再往下走的话呢,咱们就来看一看对吧,这个关于我们语法里边的最后一个东西叫什么呢?叫索引模板,大家想模板是什么意思呀。母子。对吧,咱们刚才你原来咱们昨天创建索引的时候,是不是一个个创建的对吧?现在就相当有一个模字了,对吧?然后你现在在创建咱们这个索引的时候,你可以按照咱们那个模字来啊,可以按咱模字来,对吧?那么咱来看一看啊,本来这个一看这个名字,那么这个东西呢,就是创建索引的一个模具,对吧?那么其中呢,在咱们这里边可以定义一系列规则,来帮助我们构建符合特定业务需求的一个索引的maybe和setting,什么意思呢?说我现在啊,我要创建一个索引对吧,这是我的当前这个业务,我要创建一个索引,比如说我现在呢,在创建索引的时候,它存放什么数据,存放咱们今天的我们的交易数据,对吧?那今天是二零的201021,对1021对吧,那我们现在呢,那我就创建一个索引叫index,然后呢,2020这个20201021对吧,创建它,然后呢,咱们现在在这创建的时候呢,那我要求你,那你得自己去手动的去mapping,然后手动的去取别名对吧,那你写。
01:16
一堆对,创建了一个索引,对,然后等明天的时候,那我现在数据还有啊,那这个时候怎么办呢?我希望你继续来帮我创建一个索引,对吧?那么这个时候呢,你可能就叫了什么20201022~102,然后再往下对吧,一直到二三到一直到你们过节的时候24对吧,一直到你过节的时候1024,对,然后接下来,那么咱们现在呢,这里啊,大家注意啊,那我发现每天我都要去把这个东西创一遍,每次在创建的时候,我都要自己去手动去指定什么mapping,手动去指定什么三点,这别名设计比较麻烦呀,能不能这样,只要是我现在呢,这个东西以什么幺零这样的开始。啊,只要是我现在这个索引啊,以什么什么开始,那我就让他按照一样的一个套路来,对吧,就按照咱们一个模板来对吧,那咱们现在在创建的时候,后面是不是就省事了呀,对吧,这就什么呀,这就是我们现在的索引模板对吧?就是通过这个索引模板对吧?它呢,可以让着我们在创建索引的时候按照呢,呃,一定的,或者说你在索引里边和怎模板里边指定的mapping和set的规则来进行创建,对吧?那这样的好处什么呢?这样的好处呀,可以让咱们这索引具备可预知的一致性,什么意思,您不管是后边哪天的这个数据,只要是符合我这些模板,那么它的一个mapping肯定是一样的,它的一个set的一些别名的设置肯定是一样的,对吧?那么具体怎么来创建呢?这些东西注意看put,然后templle,然后加上模板的名称,然后这里你要给谁的这个来创建模板,等他型这你的模板的规则是什么,这个其实一看pattern,这是什么呀?是模式啊。
02:59
对吧,就是我现在哪些,所以在创建的时候可以用到你的模板呢?对吧,那么它其实在这里它是通过一个模式匹配来做的,对吧,所有二这个以末尾test开头的这个模板在创建的时候那么都可以用啊这这这索引在创建的时候都可用我这模板,对吧,就你不管test 1test2test test什么什么,对吧,只要是以它开头对吧,那么这个时候呢,你在创建的时候都遵循着我现在在这个模板里边来定的规则,那么你在这里都定义什么呢?首先第一个setting。
03:31
那你看这这这定义什么了?Number of w shorts定义什么了?是不是咱们这分居数了,默认是几,默认是五个了,改成一个对吧?那也就是我现在这个索引在创建的时候,使用这个模板创建是索引,它的分级数是一个,那么这个大家刚学完,这是什么?这个是不是咱们别名啊,对吧?那我们一般情况下在使用模板的时候呀,这个别名我都给它取俩,就只要是咱们使用我的模板创建索引,那么我就给它取俩小名,那么这两个是什么呢?大概你选的为什么有两呢?
04:09
这个东西你看这两个名是怎么回事是吧。假如说啊,结合着咱们现在这里边来对吧,那如果说你现在呢,创建一个目,然后呢,Test。今天多少号呢?今天是1021啊,今天是1021对吧?哎,那么今天啊,那么咱们现在有索引,那么这个时候呢,我使用的当前这个模板创建这个索引,那我会给大的索引呢,取两个别名,这两个别名分别是什么?这两别名分别是一个呢?是我们这个末尾,然后test的1021,然后杠query的杠query啊这个是不是就相当于你的一个索引名称,然后后面加了一个query,然后另外一个呢,这个叫什么?另外一个边名叫做咱们的一个moon,然后呢,Test啊,另外一个叫moon test,然后接下来幺零啊没,没有101了,直接movie test,然后接下来加了个什么,加一个query,说说你取这两边名有啥用啊,为啥取俩一个就够了吧,组,其实默认在这里帮他分了一个组。
05:18
那这是第一个,这是第二个,第几个是刚才分组的第二个是不是使用我当前咱们现在这个模板创建的我的索引,他默认是不是通过别名帮咱们放到一组里边去了,对吧?哎,也就是说明天啊,我到1022的时候,我如果还创建的索引的话,也使用这个模板,那么这个时候呢,它也会给到明天的这个索引来生成别名叫什么叫movie test carry,那么当你使用他查询的时候,你是不是可以把咱们使用我这个模板创建的索引,所有的数据是不都给查出来,是不是相当于放一组流去了,对吧?哎,所以说这块呢,它起了两个命名,一个是你当前的这个索引自己呢,那么另外一个呢,相当于做了一个分组,对吧?相当于做一个分组对吧,然后接下来再往下走,这个什候呢,是不是就咱们麦评委啊,对吧,Mapping这个有的时候大家再去看的时候,一些咱们这个API里边啊,或者一些咱们这个啊,这个源码里边,它这里边把这个设置为什么下划线dock对吧。
06:18
那么这个下限到了什么呢?就是咱们那个太。啊,就是我当前在咱们这里面设置的时候,对吧,那么这个mapping,然后这是什么,这些可列呢,Type对吧,Type,那么里面的属性有哪些呢?对吧,那这里是它的属性,比如说有ID有什么呢?Movie name movie name对吧,有movie name对吧,那这样的话,咱们现在呢,来创建一个模板,注意看啊同学们在这里CTRLC把这个模板呢拿过来啊在这里我现在啊要去创建模板。创建模板对吧,那么这个模板呢,比如说它把叫做我们的一个TEST2020对吧,改一个这叫什么呢?这个叫0523啊这是623,然后接下来咱现在呢,去来执行一下来我现在的去执行,那么执行完之后呢,那这个时候咱们就可以去创建我们现在的相关的内容了,比如说啊,我这个时候呢,我去创建一个我们这个索引啊,我现在呢,假如说我创建一个索引,那么这个索引呢,那么这里注意咱们现在呢,在这里我可以直接往咱们这个索引里边来,往这个里添加数据,对吧,比如说那我现在呢,把这个东西拿过来都拿过来,那么这里呢,我改一下这个test,对。
07:39
它有个名称是吧,他们类的,然后接来这个呢,比如说是2020这11对吧,幺幺也可以对吧,这是幺零嘛,对吧,然后接下来咱后现在呢,在这里我往里放两个数据,其中呢,注意啊同学们,咱们在这里你创建的时候,这个这个是相当于我的索引名称啊,这个索引名称符不符合你当前的索引模板里面定义这个模式。
08:01
末T开头吧,这个符不符合,符合吧,那符合的话,你是不是得使用我当前的模板呀,对吧,但是我发现模板里边呢,有的这个你的属性我是有的,有的你属性的我是没有,对你看我现在这模板里边,我这里面是有ID,然后你有你这我这里面是有木name,但你这不叫木name叫name。对,也就是有的时候呢,我符合我的模板,但是呢,我再去创建的时候呢,这个东西的并不是完全符合,那怎么办呢?对吧,没关系,执一下看一看呗,那么执行完毕之后呢,来看这里本身是不是就create,然后接下来那你看一看当前咱们创建的这个,所以那get,然后接下来咱们那个木,然后呢,TEST202010,然后接下来这里是不是应该有一个M啊来看一看同学们来在这里会是什么情况呢?啊,就发现咱们现在这个mapping,你发现这里边整个啊这块内容啊,一个是我们的ID,一个是我们这个公共内容,它和我们在我们那个模板里边指定的是不是一样的,你看要不然默认的话,它不会给你指定什么咱们这个分子器的,对,咱们这里是不是自己指定的,我使用IK分子器啊,对吧,那么除了这个之外呢,那还有一个内这个内部模板没有,没有怎么办呢?没有它就帮你自动推断。
09:18
啊说模板里没有,那么这个时候呢,它可以帮你来自动推断说老师,那我现在呢,我不想这么查了,我要怎么查呢?这里边我想看看query对吧,这里是不是有一个怎么query啊,杠query啊,那在这里杠query对吧,那你直接查询效果是一样的,因为咱们在创建我们现在这个索引的时候,它使用的这个模板,他会给咱们索引呢,取两边名啊会取两边名对吧,那大家想想,那以后咱们现在对只要把模板定义好了,咱们在创建索引的时候,我是不是就可以不考虑什么咱们的M啊对吧什么的别名啊对吧,哎,是这些事的,对你你你使用咱们那个模板就行了呗,你只要符合咱们模板它的一个模式就行了嘛,对吧,使用模板模式就行了嘛,对吧?好了,这是关于什么呢?这是关于我们现在的模板创建对吧,它的一个对吧,我们对这一个这个语法对一个语法对吧?呃,然后接下来呢,那么咱们呢,再往下走对吧,这里有一个说怎么去查看系。
10:18
等中已有的模板清单的,对吧?那咱们现在你可以这样对吧,我要想查看系统里边某一个已有的模板清单,那肯定在这get,然后进来到cat里面去看一看有没有和模板相关的到cat,然后呢,Time到time,那么这里你们可以看到啊,然后现在这里边说老师我就创建一个呀,这里面怎么冒出这么多来,那你看除了你的是不是系统本身肯定还有一些自带的呀,对吧?哎,那么咱们现在你看这个什么,这是我们这个模板的名称啊吧,这块呢,是不是模板它的一个pattern呀,对吧?它的一个匹配模式是它的一个匹配模式,对吧?呃,然后接下来那么除了这个之外呢,那么咱们看一看get,然后这里呢,和complete有关的,和咱们这个complete有关的,还有一个这个对吧,那么这个干什么呢?这个你也可以查看咱们某一个模板对吧,它的一个具体的一个啊,我们这个详情对吧。
11:18
啊,比如说我刚才创建一个模板对吧,这个模板呢,叫什么什么对吧,你直接把这个拿过来啊,拿过来对吧,这个模板名称,咱模板名称是不是叫我们这个呀,莫莉523对吧,莫力523对吧,来那那现在呢,查询一下呀,对吧,那么这个时候呢,会把咱当前这个模板对吧,它的一个详细信息给你拿过来对吧,别名啊对吧,或者是咱们那个makinging啊对吧,这个setting的设置啊对吧,然后它的一个对吧这个匹配的模式啊对吧,或者说你这里可以使同位符对吧,比如说我现在像这样对来看一看也行啊也可以。啊,这是关于什么呢?这是关于我们现在啊模板它的一些技术语法对吧,然后接下来咱要分析一下,那么咱们这个模板呢,它的使用场景。
12:04
一般到什么时候的,这个需要用模板。多次创建索引,并且呢,索引是不是对吧,这个在使用的时候,它这些什么setting啊,Mapping啊,什么设置应该都是一样的是吧,这时候对吧,应该去使用模板,对这我能想到的还有别的吗。啊,一保持一致性是吧,就是我现在我需要什么呢?我需要让我的索引它里面的结构啊,或者什么保持一致性啊,这也是一个。来,那那看一看关于我们现在的它的一个使用场景,那第一个呢的分割索引,那这个东西什么叫分割索引,对吧,其实这个和我们前面讲的这个别名呢。有一些效对吧,其实就相当于给做个分组嘛,对不对,对吧,那我现在呢,这个就是说我可以啊,就是把咱们根据我的时间,比如说一天对吧,然后把一个业务的数据索引,然后给切成多个,比如说我现在啊,我要想去存放咱们这订单信息,那你完全可以这里就创建一个对吧,完全去创建一个对吧订单,然后呢,咱们应单这里面放在所有订单里进行,但是呢,那如果这样的话,那你想你的订单越来越多,你都放在这一个里面,你操作起来是不是比较麻烦呀,对吧,那咱可以怎么办呢?按照一天对吧来进行一个我们的切分,对吧?诶我今天我放的是这个一号的,这个呢我放在二号的,这个呢放在三号的对吧,这个放在三号的对吧?哎,那我现在呢,在咱们这里边同学们对吧?哎,那我如果都一样的话,那我是不是要求每一天我是不是要给我们现在对吧,这个这这个索每一天创一个新的索引啊,对吧?那么这个东西我为了保证它的一个结构一致性,那么这时候怎么办呢?也在使用我的模板。
13:54
对吧,成模板,那你这么切分,其实这个东西这个思想就是这种切分思想的好处啊,大家应该在咱们have里边就有,短于我现在把这整个切分,对吧?这个有什么好处对吧?这个思想呢,那应该在have里面有,对吧?第一个结构变化的灵活性对吧?第二个查询范围优化,原来我要是查询所有,现在我是不是可以按天查询啊,对吧,是不是减少咱们的压力啊,对吧?那么结构变化的灵活性,这是怎么回事呢?注意咱们前面讲过说我现在啊,假如说ES它自动去帮咱们进行买了,结果现在创建索引的时候,都帮他自动的去做那个买点,然后把这索引的一些我们这个属性,它的类型已经给我自动推断好了,对吧,但是这个时候呢,它就不允许修改,说我现在想把这原来的一个什么这个呃,这个float给double,这改不了,但是有的时候呢,咱们的实际生产环境里边有可能会发生变化,对吧,本来我现在在咱们这个1021的时候,这个所有的结构呢是一个样,但是到1022的时候呢,有有业务变化的。
14:55
那我可能我需要把它当前的某个结构发生变化。那这个时候大家想一想对吧,那你对如果要把它们都放在一起的话,这些东西没法变,但如果你要把它拆分的话,这些东西你是不是可以单独把咱们1022这个去创建一下呀,对吧,就可以拆分啊可以咱们这拆分对吧,那有的老师,那你现在可以使用所有模板呀,你在咱们102的时候对吧?那你现在这个模板没变,那怎么办呢?对吧,那这样呗,咱们假如说啊,今天的咱们的是我们这个对吧,这个业务对吧,变更的一个最后一天,咱们一直使用的谁呢?一直使用的A模板,然后呢,后来到咱们这个A102,从咱们这个明明年开始102之后,然后呢,他就开始把这个结构呢,会发生一些变化,咱能不能这样,咱们到我们这个12点的时候,我把咱们的模板给变一下。
15:48
模板,咱们现在可以把A干掉,然后上一个谁呢,上一个B对吧,然后这个B的结构呢发生变化,那等到咱们再创建我们102A索引的时候,它是不是就可以按照咱们BD模板来了呀,对吧,那是不是相当于我这个结构也发生了变化呀,对吧?哎,所以说这块呢,要注意一下对吧,它呢对吧,就相当于我现在这个使用这边名,其实最主要的像这个分割索引的,其实这块对吧,也不一定完全你给他套到模板,这对你不一定完全套模板,这对你像别名,这相当于咱们这分组,其实你也有咱们这个分割的思想在里边啊,我现在可以一天一天的来保存数据,然后呢,到时候想操作咱们这个短多天的,那么可以呢,通过它别名来进行分组,对吧,其实这个不也是一个分割这一个思想嘛,对吧,但是我们现在呢,那你要想实现的话,那面临一个问题什么呢?就是每天呢,你都得创建一个索引,这比较麻烦,为了保证索引结构的一致性,那么这个时候咱们可以使用我们的索引模板。
16:48
啊,为了保证它,咱可以使用索引模板对吧?那么一旦啊,我们现在的业务发生变化了,那么这个时候呢,咱们可以通过调整索引模板对吧,来改变对吧?但是需要注意对吧?需要注意注意什么呢?使用索引模板的时候呀,大家注意看,一般呢,它在向索引中插入第一条数据的时候来创建索引,什么意思呢?同学们来看,我刚才在这里,我上的时候创建了一个索引模板,叫它,然后什么时候来创建索引呢?咱们在这里我是不是直接pose操作pose它本身注意它不是创建咱们索引。
17:21
他这里是不是往里边添文档了,它是不是现在往咱们这个索引里边的文档对吧?也就是这个东西,它本身索引名这个呢是类型名,然后接下来咱们没有指定ID,它会自动帮咱们生成一个ID,你相当于往上添加文档对吧?那么当你第一次来往所引里添文档的时候,这个时候它会创建索引了,那大家想一想,创建索引的时候,他是不是得去找我这索引的模板是什么,是不是得去找咱们这个模板呀,找模板怎么找的,是不是得和咱们模式进行匹配呀?那我问大家这个过程需不需要时间,肯定需要时间了,所以说呢,如果说你ES里边它的一些说分片呢是比较多的话,那么这个时候呢,你创建索引可能会对有一点的延时。
18:05
啊,有点延迟,如果这个时候延迟你不能接受的话,对吧,那么你呢,对吧,这个可以不使用咱们这个模板。如果说我现在这个一点延,就这么点延迟,如果你接受不了的话,对吧,那么这个时候呢,你可以不使用模板,不使用模板,那这个时候大家想一想,如果说我现在和切分数据的话,那这个东西怎么做呢。啊,手动创建,那手动创建太low了,写个定制脚本,比如说咱今天是短这个10月21号,明年是不是10月22号了,我在咱们十今天21号11:55的时候,就半夜啊11:55的候,我的脚本运行干什么呢?把10月22号的模板给我创建出来。啊,把这索引创建出来,然后到第咱们这个第二天到10月22号了,那么如果再往里放数据的时候,你是是不需要考虑索引创建的事了,你直接往里面放就行了,就是今天你把明天呢这个索引传出来,对吧,就是我现在拿着当前日期,然后呢,获取下一个日期,然后呢,根你的下一个日期来创建一个我们的索引,等第二天你要往这索引放数据的时候,你直接放就行了,你不需要去自己再创建索引是吧?哎,这块呢,一般对吧,这个不会不不会这样的,一般就是说咱们现在。
19:20
这个延迟呢,确实还好,对吧,其实还好好,那这样的话呢,关于我们这个elect search试啊,它的一些我们这个基础的一些我们用法呢,对吧,这就完事了,对吧?但是我们说这些东西的命令,对这讲完之后呢,大家去啊操作熟练一下啊操作熟练一下,然后呢,咱们在下节课呢,就开始对吧,回到我们这个程序中来了,对吧,开始想一想啊,看你命令长得怎么样是吧,昨天呢,这个练多少行都无所谓,对吧,看一看写代码的时候,对吧,这个效果就知道我们练掌握的情况了,对吧,来他稍休息会啊稍休息下。
我来说两句