00:00
呃,那么接下来啊,再往下走,咱们呢,来看一看,关于我们这个索引别名啊,关于咱们这个索引别名啊,这个别名呢,这个东西大家应该不陌生啊,就相当于给它取了个小名呗,是吧,比如说是吧,咱们风庆是吧。是这是是什么啊,那天远就是这名,这上写嘉庆是吧,对吧,别名远啊吧,这个东西咱们现在一叫的时候是吧,嘉庆可以,然后呢,圆也可以对吧,这个其实就是一个什么呀,就是一个别名嘛,对吧,就是一个别名对吧?那么在咱们这里边呢,说的专业一点,它就像一个快捷方式的,或者是我们这软链接,在你在操作的时候呢,您去操作我们这个对吧,这个本身的名字也好啊,然后呢,你操作时候操作咱们别名那也行,对吧?那么他们的不管是本名还是别名,它都可以指向同一个或者多个索引,对吧?那么咱们可以给任何一个需要所索引名,对吧,它的一个API使用什么意思,就咱们上面写的那么多API啊,对吧,你用咱们现在本身的名字去操作就行,对吧,或者说你现在这A篇呢,操作别名那也没问题啊,那也没问题,对,那么这个别名怎么来取呢?啊怎么来取,那么咱们看一看它的语法,那么如果想创建我们的别名的话。
01:21
那么你这个语法应该知道这是干什么的,这里面说创建索引的呀,对吧,创建索引,然后接下来,那么你在咱们创建索引的时候呢,通过咱们这个al对吧,那么这个这个关键字,然后呢,给它来指定我们这个索引的别名,对像这块的语法的固定的同学们,对你看它本身咱们这个是不是JS里的一个属性啊,然后这块是不是所引别名啊,对吧,那这块呢,不需要指定什么东西,咱不需要指定什么东西,好了,那咱接下来看一看,比如说呢,那我现在在咱们这里,我呢去创建一个索引,并且呢,在创建索引的时候,给当前的个索引呢,来指定一个别名,对在创建索引的时候给当前的索引呢指定别名,然后在下边呢,那么这块是不是就是我当前索引它的一个手动定义map啊,对吧,像这些是我的map定义好了,把这个呢,直接给拿过来,CTRLC拿来之后呢,那么来到这里啊,直接get work啊,再把原来的。
02:21
打过来。来呢,大家看一看,在这里呢,我现在啊要创建一个我们这个索引对吧?创建索引然后呢,并且来指定我们的边边好了,那么咱们当前呢,在我这里边对吧?这个缩引呢叫末尾,然后C针三,然后现在别名呢,是我们这三下划线后面一个Alice对吧?然后现在咱们现在呢,去执行一下,那么执行完之后呢,那么它给咱们一个返回对吧?那么接下来,那么咱们现在呢,要看一看啊,我现在想看一下当前呢我们的索引浏览器啊索引浏览器,那么如果想看索引浏览器的话,那肯定是我们当前在这里是不是有一个cat啊,然后接下来啊,在咱们这里边索引应该是单对吧,然后这个时候把它索引呢给我拿出来了,对,那当前目前的索引呢,那么有末尾,然后呢,以及我们现在呢,这。
03:38
123这没问题,这三是不是刚创建的呀,对吧?然后接下来那么除了看索引之外呢,那么咱们呀,现在想看一看那我的一个别名情况啊,一个边名情况,那么怎么来查看咱们这个边名呢?对吧?那么咱们现在来来到这里啊,那我就找一找get,那接下来和咱们这个边名有关系的对吧?大家看在这里别名对吧?大家家在咱们这里边是不是有一个叫下划线,然后呢,这里是是有一个什么al呀,对吧?然后接下来咱现在查询一下,那目前呢,你可以看到谁呢?咱们当前对吧,这里有一个别名,那么它是给哪个索引加的呢?是不是给咱这个索引加的呀,对吧?哎,可以通过他来查看一下咱们当前的它的一个边名情况,对吧?哎,那么我现在想干什么呢?说老师啊,那你这里是给我们这个三加了,昨天咱们好像在这里在创建的时候,我还有两个,所以一个呢是我们一,一个是二是不是对吧,我现在想给他们加,或者说呢,我现在呢。
04:38
我觉得这个三呀,对吧,这个一个别名不够对吧,在家里边呢叫远对吧,在学校里边呢,感觉同学们叫近对吧,更这个亲近一点,对,所以又给他取一个小名,又给取个外号对吧,那就在家里边圆,在学校叫近对吧?那么咱们现在呢,注意同学们,那这里假如说你要想给已经存在的,你要想给已经存在的,所以来加密本的话,那么这个怎么做呢?直接把这个东西拿过来,直接把这东拿过来,拿了之后呢,那么咱们现在来看一看对吧,那这是什么,这个呢?Poose操作,然后加起咱们现在要取别名对吧?然后接下来这个呢,是一个动作干什么呢?对吧?那么咱们现在啊,要去添加啊,其实你这块大家也可以做过来,自己看一看,其实这个东西本身的啊,这影不难,比如说啊post,然后进来,咱们现在是要加别名啊,然后进来在这里咱们应该是不是有一个action,对不对,当你写的时候,这个东西呢,都给提示出来了啊,你都给提示出来了,你要干什么,我要添加,那么添加这个东西。
05:38
是不是索引是谁对吧?比如说啊,我现在呢,要给我们现在这个,所以啊是他对吧?来去加一个别名,这别名叫什么呢?比如说叫咱们的A2啊叫A2,然后接下来去执行对吧?那完事了吗?对吧,就相当于给咱们现在呢这个它加了一个别名了,对吧?那么如果给它加别名之后,注意同学们,假如说啊,我现在想查询我们当前这个索引,那么怎么查询呢?那么咱们给他get,然后接下来加上我们这个索引名称对吧?那么索引名称呢是它,然后接下来做一个下划线search的吧,Search,那么你可以这么来查,因为我现在这里没有数据,对吧,返回的命中结果是零对吧?那么你除了这种方式之外呢,那你还可以这样get,然后接下来末尾,然后呢,通过它来进行查询,对吧,来做一个我们这个私人查询,这个效果呢是一样的,你也还可以通过咱们现在另外一个别名,是不是还有个别名叫AR的呀,对查询效果是一样的,而取了别名,你现在想对所有去操作你呀,可以通过我们现在。
06:38
索引本身进行操作也可以通过谁呢?也可以通过咱们这个别名对吧来进行操作,而且在使用别名的时候呀,那基本上和咱们这个始终这个索引没有什么太大的一个区别啊,就像在使用索引一样,对吧?然后接下来那么怎么去删除咱们这个别名呢?对吧,那么这个删除啊,那直接对吧,还是把这个拿过来对吧?刚才呢,咱们在这里我执行的是我们的poose操作,对吧?然后进下来你要干什么呢?你要对我们的别名来进行操作,那么你现在做什么操作呢?那你可以通过它actions来指定,对原来这里指定的是不是AD啊,现在不是AD了,对,现在呢,除了A之外,那么还有什么呢?还有我们这个remove,对,那么如果瑞幕的话,那你得告诉我,你当前要删除的咱们这个索引是谁,然后呢,你在咱们这里边要删除的咱们这个别名的是什么?对,比如说我现在呢,这个索引是他短,然这个别名呢,那我现在是他啊,这个别名呢是他短,那么这个时候呢,咱们可以去执行短一个删除操作。
07:38
那这样的话,咱们现在呢,去查看一下我当前的边名信息来get,然后接下来cat下划线,然后呢,咱们这边名对吧?大家看这个时候呢,我末尾三这里是不是只有一个呢?A2咱们是不是干掉了对吧?哎,删除别名对吧?删除别名然后接下来,那么咱们现在呢,在这把这个东西啊给大家介绍完了语法了,那么咱再分析分析什么时候用别名,说你说我现在老这这个取个别名没事的时候,对吧?就是创建的时候,然后取个别名挺费劲,然后呢,就是查询的时候用别名去对一些操作,想一想实际的一个使用场景,什么时候用它呢。
08:20
你们觉得这个别名有什么好处呢?什么时候用这个别名,就觉得这个别名啊,这个在使用的时候,对吧,真的给咱们带来一些我们的便利,对吧,那么咱们来看一看关于它的一些我们的一个使用场景,首先呢,第一个啊,它可以给咱们多个索引来进行分组。啊多索引来进行分组什么意思呢?大家想想你们以前呢,做过离线,是不是那么做过离线,你们在做一些统计的时候,对吧?那么有些数据你们可能会按照天呐,或者按照咱们那个月份是不是来进行存储啊,就把这数据查出来之后,我可能呢,再往咱们的HDFS短期保存的时候,在咱还有里边,我可能呢,给它进行一个什么分桶,对吧,后来进行存储对吧?哎,那么我现在在它存储的时候,假如说我当天按天存储的,但是呢,那我想干什么,我想统计最近一个月的这样的一个数据,那你说怎么办?
09:16
那你说咱们现在是不是得把咱现在这30年或者最近的这这这这这个东西,比如说我现在存的时候,我是这种形式,2020,然后呢,1001这里一个2020,然后1002这一个一直到哪呢?一直到2020,然后1031啊这一个,那你说我现在如果要是想把这最近一个月的这个数据给统计出来,你是不是得一个一个的把一天一天的缩引给我查出来,把一块汇总啊,对吧,那这个的时候咱就比较麻烦了,对吧,那比较麻烦,那咱怎么办呢?我可以这样,我呀现在给我们现在零幺取一个别名,给零二的取个名,给零三取个边名,对,然后这个时候呢,它的别名都一样。它别边都一样等比如都叫A,那么这个时候你再去查询A的时候,对吧?那么它会把它当前的所有的数据给聚合在一起啊,给聚合在一起啊,那么咱们现在可以试一试啊来试一试,比如说呢,那么昨天呢,咱们在这里啊,昨天我们在这里其实创建了两个索引get,然后呢,一个索引是吧,叫木CHINA1啊然后呢,这个是我们现在呢这个Chinese啊这个一,然后呢,这里边我现在search一下啊,设一下,那目前呢,这里边三条数据对吧?这里边三条数据,然后接下来那么除了它之外呢,咱们还有一个对吧?来CTRLC,然后呢在这里这个呢是我们这个二对吧,那么这里边呢,它也有我们的三条数据对吧?哎,我发现啊,那么你现在呢,有两个索引啊,一个是我们现在CHANGE1,一个是我CHINESE2,那你不管是什么,你的里面放的是不是都是咱们这国产电影啊。
10:57
对,就你这里全是咱们现在这里边一些什么呀,你可以把它理解成国产电影对吧,那么一共呢,那应该有六部,但是我现在这里边说放在两个这个索引里去呀,那这个时候可以怎么办呢?这个时候呀,咱们可以啊,为我们现在这两个我们这个所引来取别名,比如说我把这个东西拿过来。
11:18
拿过来,那么拿来之后呢,大家看刚才这个操作,现在呢,我要给他们添加这个边名,那么添加边名的时候,大家看我又给咱们这两个索以添加它的边,边名叫什么,是不是都是一样的呀,对吧?然后接下来我执行完毕之后呢,那么我现在再查询,查询谁呢?我现在再去获取我们的数据的时候,我要查询的不是一,也不是二,而是谁呢?而是我们这个别名啊,而是我别名,然后接下来做一个我们这个search查询,来大家看咱们当前命中的结果啊,当前命中结果几个六个,是不是相当于把咱现在这两个所有的值给做了一个聚合了呀,对吧?所以说那么第一个使用场景啊,第一个使用场景给咱们多个索引来进行分组啊,就通过别名来进行分组,比如说我现在想干什么呢?想把我们现在最近三个月的对吧,这样的一个数据统计出来,那你到时候就这样呗,比如说我现在这里789对吧,789,把月份是789的,对这些数据,然后呢给取一个。
12:19
别名到时候你一查是不是就可以了呀,对吧?哎,比如说我现在要把二零对吧,二零,然后呢,零七什么什么什么的,对吧,这样的一些数据给他都取编名,这做一个取编名对,然后接下来放在哪对吧?诶放到我现在这这这这个专门编名里边,那么到时候你对着编名进行查询的时候,那会把咱们七月份的数据都给查出来,对吧,这是第一种场景啊,这是第一种场景对吧,然后接下来,那么咱们现在呢,那么除了这种场景之外,对吧,还可以怎么办呢?他还可以给咱们这个索引它的一个子集来创建我们这个视图,什么意思啊,什么意思,比如说啊,我现在要想去查询的话,查询谁呢?就查询我们现在这个二吧,对吧,那这个时候我是把当前这个索引的所有数据都给查出来了。
13:07
对,但是呢,那我有可能我不想要咱们这个里边数据都全部数据,我可能只要这里边部分数据,比如说我把豆瓣评分在咱们的九分以上的,呃,这个数据查出来,然或者ID等于多少的给查出来,那么你每次有这样需求的时候,那你是不是都得去写一个这样的操作,然后你要干什么呢?你要做query,然后接下来你在这里要什么match,什么做匹配,你每次在这个完成这序的时候,你是不是都得这么写呀,那就比较麻烦,那可以怎么办呢?那就可以这样,比如说啊,咱们现在在我们这个里边对吧?给谁呢?给我们这个一对加了个别名对吧?那么加别名完了之后大家看,那么在这里又做了一个filter filter干什么?他把咱们演员他的一个ad等于四的给它加上,对吧,我现在呢,把这个东西拿过来啊。拿过来,呃,那么咱们现在在这里有没有演员等于四的。
14:05
他呗,是吧,来,那么咱现在呢,来在这里给看啊朋学们,那我现在呢,在咱们这里我创建个别名,给谁创建的呢?给咱们这个木Chinese的一对,然后接下来那别名叫什么?别名是我们现在这个对叫做子查询,然后接下来那么咱们在这里做了一个什么呢?做了一个过滤,也就是说啊,我从咱现在三条记录里边把谁呢,把我们现在act list里边ad等于四的这个人的这这部电影给你查出来,那你想咱们现在是不是就这部电影,它的ID是四呀,那整个是不是相当于我现在这里是不是一条记录匹配呀,对吧?那么你这样的话,咱们现在创建别名的时候,同学们他稍微麻烦一点,但以后你要再想去查询咱们现在的这个电影的时候,你还需要像咱上次在这里写这么多什么快式查询吗?不需要了,你只需要从他别名里边查,是不是就OK了,有点类似于什么呢?有点类似于视图。
15:03
对吧,有点类似于势头吧,同学们。想一想,在咱们这个这个搜Q里边是不是有一个视图的这概念,视图是干什么,我现在这个视图它本身是不是,其实就是数据,它视图里面本身存数据吧,同学们不存是不是,其实里边就是一些我们的查询语句啊,对吧,那咱们现在来查询一下呗,比如说get咱谁呢?咱们现在这里边有一个咱们这个木,然后呢,咱们现在是子查询,然后接下来来search一下。来测试一下,大家看这里是不是只有一个对吧,只有一条数据对吧,那相当于把咱们这个子集呢,给我过滤出来了啊,把这子集给我拿出来了,然后接下来再往下走啊,再往下走,那么再往下走看一看还有别的使用场景吗?对吧?干什么呢?说在运行的集群中,可以无缝的从一个索引切换到另一个索引。这什么意思吧,注意看啊,咱们现在呢,在这里说我现在呢,这个集群呢,在运行着,对吧,在运行着,然后本来呢,一开始我是有一个别名的啊,本来我现在呢,哎,我我我我这里边我这个啊more China啊Chinese query它里边呢是有我们现在这个索引的,比如说有一和二的,有一二,但是后来呢,我才发现这个运营的过程中,我这个这个项目在进行过程中,我发现呢,我不需要从我们的一和二就获取数据了,导致我现在我这个不想要一和二的数据了。
16:30
对吧?那么如果不想要一和二的数据,大家想一想,如果这个代码写在你的程序里边,假如说你现在是Java程序对吧,你是扎va程序,然后呢,你现在扎实一开始怎么写的,你一开始对吧?那么你要从我们这个一里边来获取数据对吧?要从一里边来获取数据,然后呢,同时呢,要从咱们这二里边来获取数据,假如说啊,你的代码是写在账va里边了,后来业务发生变化了啊,后来咱们这个用一段时间之后,这个业务呢发生变化,你现在呢,不想从我这里获数去了,要干什么呢?要从3D获取数据,如果你写的账号代码的话,那你这会代码你是不是得改一改,同学们对吧?你怎么改呢?那你肯定得把咱们现在这个代码给它干掉,然后呢,把这个代码给改一下,我现在从三里获取数据,但是Java代码你改完之后就完事了吗?你是不是得对他做一个重新编译,是不是得重新打包再部署啊,那这个事比较麻烦对吧?但是我完全可以这样啊,同学们,我现在数据从哪来,我现在这个数据啊。
17:31
我并不是直接指向某一个索引,我当前数据呢,我是从我们当前这个别名里边来的,你在抓va代码里边就写别名,然后接下来咱们在我们这个客户端,我是怎么创建的呢?那么当前别名数据来于哪呢?来源于我们现在这个一和二这两个索引,等后来你的业务发生变化了,说啊,我现在不需要从一和二里获取数据了,我要从三里获取数据,我问大家这个时候咱们需要去改咱们的账号代码了,因为你账号代码你这里是不是本身就是咱们的query,咱们是不是没改别名啊,咱们只需要在我客户端把这个操作执行一下是不是就OK了?对,我现在干什么?我现在把咱们一和二从咱边名就干掉,就说这个东西啊,一和二这两索引没有这个边名了,那当年谁是这个边名呢?就咱们三是边名,那你说我现在查询的时候,是不是相当于只从咱们三个索里面来查询数据了,对吧?所以说这个呀,是我们现在的它的第三个使用场景对吧,一个是对可以无缝的来进行我们这个。
18:31
切换索引切换,那么另外一个呢,是给索引创建一个子集对吧,相当于一个视图这块对吧,有点类似于我们的视图对吧?然后接下来还有一个呢,是给咱们多个索引呢来进行分组对吧?给多个索进行分组对吧?这块呢,是关于我们现在别名对吧,它的一个使用场景啊,以及我们的创建一些语法对吧,这个停一下啊。
我来说两句