00:00
好呃,那我们这个安装就结束了啊,然后这里面有个小东西需要说一下啊,就是呃,这个界面啊,这个界面刚刚我没有没有演示出来啊,那是因为我这个之前,呃,应该是我没有删干净啊。就如果说你是第一次第一次这个装好这个K啊,然后呢,去做访问的话呢,呃,就是你在浏览器里面输好这个地址啊,你在做访问的时候呢,应该会见到这样一个界面啊,那这个界面里面你就选它就可以了啊。能听到吧,选它就可以了啊,点一下它,然后接下来就什么正常进入到我们的这个界面了啊,那这个后面的这个操作我就给大家说过了。OK吧,大家把这个注意一下啊,刚刚我没有演示出来啊,因为我这个并不是第一次装了啊好。行,那我们的安装呢,就到此结束啊,接下来我们就进入到。第四章的这个学习啊,来现在给大家去介绍啊。呃,这一章我们讲的是elastic search的一个什么DSL啊,这个DSL是一个缩写啊,它的全称是这个。啊,全称是他啊,呃,什么意思呢?它是特定领域的专用语言。
01:06
这个啥玩意叫特定领域的这个专用语言呢,就说白了啊,就是我自己特有的一种语法,特有的一种语言啊,或者说呢,这种语言呢,它并不是通用的啊,它不是通用的,你不像那个sole啊,它是通用的,你放到这个什么my circlele里面,或者什么放到这个Oracle里面啊,它都是这个通用的。啊,但是像这个DSL呢,它是特定领域使用的啊,就说白了,在我的ES中你可以用,但是你放到别的地方,你能不能用呢?呃,基本上是不能用的。那明白了吧,啊,就是他自己能够用啊,叫什么叫DSL啊,那么将来这个大家在学别的技术的时候呢,可能还会在听到什么什么DSL。对吧,你还会再听到这个概念啊,但是呢,你听到这个概念的时候呢,你也不用开心啊说诶我以前学过DSL,是不是我就可以照搬过来用了呢,肯定不行啊,既然人家都叫这个DSL了。那肯定什么是他这个独有的语言了,或者什么自己什么特定使用的语言,跟你以前学的那个DSL肯定是不一样的。
02:04
对吧,你以前学这个DSL是你这个ES中的,那你比如说将来你学某个某个某个技术的时候呢,它里面有这个DSL,你觉得它能跟这个一样吗。啊,99%是不一样的啊好吧,说这个事你就知道一下啊,就是它这个叫法啊,为什么叫这个DSL啊,其实就是这这么几个单词给他这个呃简写的啊OK,好,那我们再看看吧,他这个操作啊,应该怎么操作。呃,这里面进来以后呢,我们先去给大家去解释一下这个名词啊,解释一下这个名词。这个名词啊,是我们在整个这个学习ES过程中呢,我们会反复见到的啊,所以说呢,你从一开始就要把这几个名词呢,给他先理解对了。OK吧,来一起来看,首先第一个叫closed,哎,这个简单哈,这个就是表示集群呗。对吧,这个单词的含义就是表示集群啊,呃,那么它的含义是我们的整个这个EES,这个ES啊,它默认的就是一个集群状态,那么整个集群呢,是一份这个完整互备的一个数据。
03:05
对吧,啊,这个应该不用解释啊,你就知道它是一个集群就完事了啊好再往下node。呃,Node呢?我们指的是集群中的一个节点。那一般的话就是什么一个进程啊,就指定就是一个node什么进程呢?就是你的这个ES那个进程对吧,比如说啊。来这里面诶不是很大啊好,现在我们,呃,刚刚我把它停掉了,对吧,那我再把它提起来,就比如说呢,我们在这个102里面,103里面,104里面,我们都会有一个ES的那个进程,那你的每一个进程呢,呃,它就是一个note。对吧,所以这个node你要知道啊,它指的是你集群中的一个节点啊,集群中的一个节点啊,一定要把它记住了好吧,行呃,这个起来了,起来以后你可以看一下啊。就这玩意儿啊。就这个东西好吧,啊,这就是一个节点啊好行,那我们再往后啊,再往后是这个Sha的,嗯,这个Sha的话,我们上午也这个简单提到过啊,它叫做这个分片啊,分片啥玩意叫分片呢?就是一个节点中的数据呢,呃,它为什么通过这个哈希算法,然后呢,分成什么多个片进行存放。
04:16
比如说呢,我现在有一个完整的数据啊,然后现在我说了啊,你给我什么分成这个三个片啊,首先这个分几片啊,这个是你要自己去指定的啊,比如说来你给我分成这个三个片。OK,那么他怎么去分这个三个票呢?是把这个数据有什么直接给你切成三份了吗。并不是啊,并不是他会什么呀,把你这个整个数据里面啊,每一条这个数据呢,经过一个哈希算法来去算。你要分三片的话,那那那我的第零片就是个零,第一片就是个,呃,这个第一片就是零,第二片就是一,第三片就是二,它是从零开始的啊,那我把你的每条数据呢,经过一个哈希计算,然后算出来你是要存到这个分片,还是这个分片,还是这个分片。他是这么去分的啊,他不是说这个直接把数据给你什么切成这个三份啊,不是的,它是有一个计算的。
05:03
好吧啊,它有计算啊呃,然后这个分片数量的话呢。我们目前讲的这个版本呢,它默认是一片啊,就是如果说你不指定的话,它默认就给你分一片。就说说白了,你的数据是没有什么没有做这个切分的啊,没有做拆分的啊,这个以前的版本是默认是五片。啊,那可能有同学想问了啊,那为什么到了这个版本以后给改了呢?啊,给大家这个简单说一下啊,其实这个分片哈,大家可能觉得说,诶,那我这个分片多一点。我的这个负载不就更好一点吗?对吧,应该是这个分片越多啊,应该这个性能越性能会越好啊呃,其实大伙儿呢都这么想的,ES也是这么想的。但是其实呢,在这个长时间这个使用下来以后呢,发现好像并不是这么个道理。啊,他得去找一个平衡点。说这个分片啊,它并不是越多越好,那当然了,也不是越少越好。他得按照你的数据,然后呢,按照你这个整个集群的一个什么资源,然后呢,做一个找一个平衡点,你能听懂吧,那至于这个平衡点,你平衡点你到底是分五片还是分三片对吧,还是分多少片啊,这个就不一定了,这个后面我会教你怎么去算。
06:11
理解吧,总归就是分片数越多呢不好,越少呢也不好啊,我们就找一个折中的啊,比较合适的一个数字啊,所以说呢,到了这个七里面以后呢,它默认就不再给你分那么多了啊,我就给你一片,然后呢,如果说你想这个分多片,那你需要什么自己去指定。自己去设置。好吧,把这个事情大家知道一下啊。好,再往后,呃,Index。这个东西在我们这个ES中,我们叫索引啊,我们就叫索引。呃,这个索引啊,它指的其实是一张表。这是一个存储的一个表啊,存储数据的一个表啊,就是因为不好理解嘛,我就类比一下,你就把它类比成一个表就完事了,比如说我们这个买生活中我们有一张表,这个表里面我会什么存很多条数据对吧?那在我的ES中的话,我将来会有一个索引啊,这个索引中我会存很多数据。
07:07
明白我的意思吧,所以说这个index呀,一定要把它理解对了啊,它是一个table啊,相当于是一个表。听清楚了吧,啊,就这个概念啊,这个概念它相当于是一个表啊,相当于是一个表啊,那我后面呃,我在讲课的时候呢,有时候我可能说的是一个index啊,有时候可能说的是一个什么表啊,其实指都是一回事啊。好吧,指的是一回事啊。行来再往后啊,这个PI。呃,Type这个东西的话呢,在我们目前这个版本中呢,已经把它废除掉了。但是。废除的没有那么干净啊,就废除的不彻底啊,斩草没有除根。啊呃,那先解释一下它是干嘛的啊,这个type呢?嗯,顾名思义它叫做类型是吧,它其实是一种逻辑分区啊,逻辑分区比如说我们有一个索引哈。那在我这个索引中,你正常的数据你过来以后就一条一条往里面去存,对吧,就完事了啊,但其实我们是可以做一个逻辑分区的,比如说我假设啊,我这个表里,我这个索引中的我存的是呃地区的数据。
08:13
啊,就纯粹是纯粹是订单数据吧,啊订单数据OK,呃,那我想就想什么呀,想通过这个地区呢,对你这个订单数据呢,做一个逻辑划分。就比如说我希望哈,所有这个北京的啊,然后呢,这个逻辑上是一一份,然后呢,所有这个天津的逻辑上是一份,上海的逻辑上是一份,好那么你再往里面去存数据的时候,如果说你的本条数据是属于北京地区的,好,那你在存的时候,你可以什么通过这个type指定一下我的type等于北京。啊,那同样,如果你是天津的,那你在存数据的时候,你可以指定一下type等于什么天津。啊,如果你上海的,那你存数据的时候,你指定下type等于什么呀,上海。明白了吧?但是啊,他的数据呢,还是存到我这个索引中的,只不过是在逻辑上,我给你又做了一个,呃,数据的一个什么规划。
09:02
听懂了吧,啊,这个是以前我们用的啊,但其实这个东西吧,很鸡肋。很鸡肋啊,基本上你没有人这么会会会会这么去用啊。听懂了吧,同学们,所以到了这个七点差中的话,就已经把它废除掉了啊,这个东西就是你不用再去用它了,没有啥用的啊,没有啥这个意义的。啊,但是这个废除的不是很干净啊,就是这个type的话,我们在这个很多操作的时候呢,他还把那个什么以前需要写type的那个什么呀,位置给你保留下来了。就比如说你写个什么上海对吧,写个什么天津,写个什么什么这个北京啊,这个位置还给你保留着。但关键是现在我们已经没有这个东西了,那我就不知道这个地方要写啥。他说你使用一个什么固定的值去代替叫什么叫下划线do。啊,所以说我们在以后学习的过程中啊,只要你遇到这个写下划线do的位置,其实都是以前写type的地方。现在什么不写type的,我们什么统一使用一个固定的一个什么呃值,然后呢,去代替它就可以了。
10:02
明白吧,同学们啊,这要知道的啊,行啊,这个到其次啊,不是很重要啊,然后接下来这个document。翻译过来叫文档啊,文档啊,呃,这个你就类比成是我们这个表里面的一条数据啊,表里面的一条数据就类似于我们这个RDBMS啊,这是我们这个表里面的什么一条数据。啊,因为我们表中的话,你看啊,我们的表中我们就叫一条数据,诶,两条数据,三条数据,四条数据。对吧,但是呢,放到我们这个ES中呢,它其实不叫表,它叫索引。能理解吧,而且我们是,呃,这个ES,你可以把它理解为是面向什么呀,这个文档型的这个数据库啊,面向文档进行存储的,所以说呢,它里面将来存的每条数据呢,我们就可以把它称之为是一个文档。啊,一个do啊,两个do对吧,诶三个do,说它是这么个意思啊,其实说白了就是一条数据而已。明白了吧,就是一条数据啊好了,然后这个field啊,Field的话比较好理解啊,它是我们的这个字段啊,或者说这个属性啊,比如说我现在有一条数据啊,有一条这个文档啊,就有有一个dock,那你这个dock里面,你最起码你得有很多信息,是不是,那你的每一个信息,你的属性名叫什么,比如说我的姓名,那我就叫name。
11:18
对吧,我的年龄我就叫age。能听懂,然后比如说我的性别,我就要真的啊一个道理,就跟你的,呃,数据库里面一条数据啊,也是一样的,你的每条数据它都得有什么,有字段的值,字段的什么呀,名字有什么字段的值,有字段的名字有字段的值,那这个地方也是一样的,你有字段的值,字段的名字有字段的值。对吧,这个东西我们叫什么叫felt。好吧,行OK啊,这就是我们这个相应的一些这个名词的一些解释啊,就是大家这个需要先把它们有一个,呃,整体的一个认识啊,就后面我们再去说的时候,比如说诶,我们建一个索引了。那你要知道,其实我相当于建了个表。啊,在ES中啊,听到了吧,好,那比如说诶,我们要去查一条文档了,或者查一个文档了,啊说白了就是要查一条数据了。
12:05
好吧,啊,然后再说到什么诶啥的你就知道啊,这就是你这个数据的一个分片啊,你把这个数据呢,分成了很多个片。听懂了吧,啊,把这个常用的常见的一些什么这个呃名词啊先理解了。OK啊。
我来说两句