00:02
来下面我们再把这个修改这个简单说一下啊呃,这个修改数据的话呢,我们也是分两种啊,一种是做这个整体的替换啊,那其实这个就是还是一个写入的过程啊,就是这个密得写,然后呢,把你这个之前的数据呢,给它做一个替换了啊好还有一种就是这个我们只修改这个指定的字段,其他字段的这个保留原样啊,一起来看一下啊。好,修改。然后这是一个什么整体替换啊OK,那比如说呢,还是拿一条数据过来吧。把这个拿过来。大家注意啊,这个修改之前的话,我还是先查一下哈,嗯,还是get一下我们的这个movie index。好,然后呢,啊。行,大家来看一下。现在我们这个整个索引中的话,有六条数据,我们找到这个ID唯一的这个数据啊。
01:03
ID为一就在这。好大家看一下啊呃,现在我这条数据呢,它存的就是我们之前这个写物的数据啊。叫什么呀,叫这个red CC,然后什么张翰雨对不对,好,那比如说现在呢,我想着说,哎哟,我要把这个东西呢,给他做一个修改了。啊,做一个修改了,比如说我想把这个red CC改成这个redc。对吧,好这么去做。那如果说你还是使用这个put操作。啊,还是使用这个po的操作,那么其实呢,这个呀,就相当于是一个什么整体的替换,就相当于我这段数据呢,进来以后呢,发现诶你已经有一个这个ID唯一的数据了,对吧?好,那这个时候干嘛呢?我就把我这一次所指定的这个值呢,整体替换到你这个文档中。所以说啊,我们想的说只改它,但其实呢,你发现啊,下面这个呢,也会被做一个这个更改啊,就比如说我们。
02:01
呃,把这个我想想啊,我不要他了啊,我不要他了,这个随便改一下啊,我不要他了。对吧?我笑着说,你就两个演员吧。对吧,你就两个演员啊呃,这样好像也不太不太好啊,这样也演示不出来这个效果啊,我想想啊,嗯。这样吧。这个都不要了。呃,ID。这些不要了。想我是这么想的啊,就是呃,我现在呢,只想什么对它做一个修改。对吧,那我想的说,那我对它做修改的话呢,是不是只需要把这个名字啊指定到这就告诉他啊,我要拿这个值呢,对它什么做一个什么覆盖操作。对不对啊,但其实啊,大家注意,如果你这么写的话,它是不行的。啊,那我们看这个最后的效果啊,我来咨询一下。他也成功了啊,成功以后呢,我们再把数据查出来,查出来以后你去找那个ID唯一的啊。好在这个位置,呃,ID为。
03:00
嗯。破产。ID为一对没问题啊。我看一下啊,六条数据。呃,ID为一。嗯。啊,不是这个数据是吧,看错了我就说我不对劲啊在这啊看一下啊,这是那个ID唯一的数据啊。是吧,同学们你看啊,刚才我们看的时候,你这个ID唯一的数据里面什么什么都有是不是,但现在你看一下啊,这个ID唯一的数据,它里面只只剩了一个。对吧,就剩了一个啊,就是这个operation operation red c就说白了啊,你在这一次做修改的时候呢,你用的是这个po操作,然后呢,你指定的这个ID,那么这个效效果呢,就相当于我们刚刚讲的那个密等写啊,它就是把你本次所指定的这个字段呢,整体对它什么做一个替换,就说白了,把这个东西呢整体做一个替换,那么最后呢,只保留你指定好的这个字段。
04:00
那其实这个并不是我们想要的一个修改的效果。对吧,并不是我们想要的啊好,那我们想要的效果是什么呢?来,我把这个数据给它还原一下啊,拿过来。好放到这儿你看啊,我再次做一个操作,这样的话呢,我是不是相当于把这个又整体对它做了一个替换吧,来你再查出来。好,查出来以后看啊,ID为一的ID为一,嗯。在哪呀?在这对吧,ID为一啊看一下现在我这个索引中,我的数据是不是又都回去了呀,对吧,那如果说我现在呢,就想啊对它做一个修改,其他的的话,你就什么原样保持不变。这个需要怎么做呢?同学们听好了啊,如果你要这么,如果你想什么,只对这个某一个字段啊,比如说对它吧,只对某一个字段做这个修改的话,那我们就不能使用这个破的操作了啊,我们应该用这种操作。用post,而且的话呢,我们后面需要指定一下,我要做update,我要做修改。
05:02
能听懂吧,来把它这个呃嗯写一下也行,或者是你这个直接拿过来也行啊post movie index,然后后面指定一下,我要做修改,你要改谁呢?你要把字段把这个do ID指定上,我要改一。能听懂吧,你要改谁要把它写上啊,OK,写上以后呢,后面就写你要改的字段了啊,这里面它要求你写一个do啊,写一个do,然后呢,在这个do下面的话,就指定一下你要改哪个字段,比如说我要改的是它,那你就把它拿过来。放进去,比如说我要把它,它不是叫什么red CC吗?那我改成这个redc哈。能没看明白,来这个时候我们再来去执行一下啊,走好执行成功以后呢,你再去查数据,查数据在这啊好再查一下。行,你在查到以后,还是找到这个ID为一的,ID为一的在。在这对吧,这个时候你看一下吧,我们其他的字段保持是不变的啊,就还是这些数据。
06:00
但是你看一下我这个名字是不是已经被改了呀,名字就改成我这个最后要去改的这个数据了。看到了吧,啊,这是一个修改啊,其实我们应该用什么用这个update啊,如果说你还是使用这种方式的话呢,呃,它就相当于什么是一个整体的替换啊,这个跟这个密灯写入是一个道理的。本质上就是一个密。能写入。好吧,诶,这个东西你要知道一下啊,行呃,不过这个修改的话,我们这个平常用的也比较少啊,就给你简单演示一下啊好,再往后吧,呃,再往后这个删除一个文档啊,那我需要讲一下这个就是呃,先讲一下查询一个文档吧,查询一个dog对吧,再说一下这个删除一个do啊,我们刚才查的话都是什么?查你这个整体的数据,那如果说我们想我们就想查一个dock,怎么查呢?也是get啊,Get的时候呢。你写个movie index。要查哪个对吧,后面写什么呀,就写你的这个,呃,下划线dock,然后呢,写你的这个ID就可以了啊,比如说我们要查一号文档,找一下,就是把这个一号文档查出来了。
07:04
看到了吧,就只有一个哈,就只有一个。是吧,比如说想查二号文档的,你就写个二啊,就是你查单条数据也可以啊。对吧,这是二号文档的就查出来了。对吧,像呃,那这个删除的话呢,就是怎么写呢,就是delete啊delete,然后呢,Movie in Du后面写什么呀,还是一样的写这个下dog。好下划线dock,然后呢写一个一,比如说我想把E闪了。啊,不删一了吧,我们删这个吧,嗯。把它删掉啊。把这个删掉,叫什么JN7的啊,把这个复制过来。好,放到这儿。然后呢吧,把它删掉啊来我们走一下。好,成功了啊,成功以后呢,你再去查数据啊。插回来,你看这一次应该是五条数据了啊,你找一下吧,那个JN7的肯定被删掉了啊,你看这个是K叉七的,K37的对吧,没有那个什么JN7的了吧。
08:01
对不对啊,这就被删掉了啊,这是这个删除一个do啊OK行呃,然后再往后啊。呃,再往后就是。它还有这个叫按照什么条件做修改,按照条件做删除啊呃,这个我们讲了这个条件以后再来说吧,好吧,接下来我们就要什么开始做这个查询了啊,就是它这个删除和修改呢,也是基于这个查询的。OK吧,这个一会再来说了啊行,那刚才我们演示的话就是基本的这个真删改。啊,真删改查啊基本的,然后接下来我们重点去讲这个就是查询啊,因为这个查询我们用的是比较多的啊,那这个查询里面的话,我们就包含。查一个查所有啊,这刚刚讲过了,然后呢,还有什么分词查询,还有什么这个过滤查询,还有就是我们的排序。这个聚合。对吧,还有什么高亮什么的啊,我们就挨个来说一下啊,行,那我们先来说这个。按照这个分值查询吧,对吧,按照分值查询啊,这个是比较重要的一块内容啊。
09:01
行,比如说现在我想去搜索这个东西了啊,就搜索它。嗯,分值查询啊好,那我的需求是什么?搜索这个词啊,OK,那我这样吧,嗯,为了好去演示这个效果啊,我们把这个数据呢,给它重置一下啊同学们,我先把这个索引给它删掉。好,删了收银以后呢,我重新把这个收银建出来,建出来以后呢,我们就把这三条数据给他干进去啊呃,那我这个数据呢,都改成改成最原始的数据啊。好来这是我的第一条数据,走第二条走第三条走OK,完事以后呢,我们回到这啊,我们搜索之前的话,我先查一下整体的数据啊,你先看一下这查询所有啊来走一下好看看吧,总共有三条数据啊。看看了吧,总共三条数据啊,一个是这个电影名字叫红海行动,一个是湄公河行动,一个是红海事件。OK吧,好,那现在的话,我让你去搜索这个operation red c就说白了啊,现在我要去做一个什么全文检索了啊,我检索的是operation red c啊,那这个怎么写呢。
10:12
这么去写啊,Get还是movie index,然后呢,后面还是一个search,但是这一次我不是设计所有的啊,我要去写条件的。明白吧,那我要作为什么做检索,检索我们用的是这个叫做呃匹配对吧,叫匹配啊,那如果你要写匹配的话呢,你就要去写你的query,就是我要去查什么东西。能不能听明白我要去查什么东西,那我在查的时候,我就需要用到一个什么query,这就算是一个条件了啊,那我的条件就是你的什么呀,就电影的名字叫operation red,那我就要学习匹配了啊,我就要写match match的时候呢,注意啊,这里面写什么呢?这里面写的就是你的匹配的字段,比如说匹配的是你的电影的名字,你看啊,它这个字段都是有提示的啊同学们。这叫什么电影的名字啊,那我就写个name好,那后面写什么呀,后面就是你要匹配的值,那我就把它拿过来。
11:05
好,放到这儿。对吧,这就是我写好的一个什么,按照分词。啊,搜索什么,搜索这个operation。好行,那这个选好以后,大家这个想想啊,这个会查到几条数据。来吧,大家这个投个票吧,啊,总共有这个三条数据啊,那么他会查到几条数据啊。投个票啊,看一下几条数据。呃,有同学说三条数据,哎。还有别的答案吗?三条吧。这个都觉得是三点数据啊,你们是这个之前提前看答案了是吧?啊。
12:02
行来,那就分析一下吧,啊,就是按照我们的理解哈,你正常搜索,你要去匹配这个什么operation,那你看一下我的数据中。一个是这个对吧,一个是这个。好,还有一个是我们的叫做这个。对吧,这是我的数据啊,同学们你看啊,我的三条数据,它的这个名字分别叫什么,叫这个operation梅工什么river对吧,Operation什么R什么什么red。那我要去搜索这个opera c的话,它应该只跟这个东西是匹配的,那应该是查到一条数据才对,这是我们正常的一个理解对吧,但其实大家注意啊,现在我们是在ES中,而且这个ES中我们目前这个match,这个match操作它是一个分词匹配。啊,它是一个分词匹配,啥玩意叫分词匹配呢?啊,注意它是不会拿上这个整体去做匹配,它是先会什么,先会做分词的。
13:03
所以说啊,如果你要做分词的话,那最后的结果呢,就不再是一条了啊,就是大家所说的三条,来我们查一下,你看最后是不是查到三条数据啊。对吧,哪三条了,那就你表中总共总共就三条数据,那我就都查出来了。好,但是我要明白了,它为什么会查到三条啊,这个事情话就要给大家去解析一下了啊,怎么解析呢?我们首先说一下啊,它的存储,它的什么倒排存储啊,倒牌就是这个ES帮我们做了倒排索引是什么样子的啊,首先你的这三条数据你在存到我的这个ES中的时候呢,因为我的这个name字段。哦,它是需要做倒牌索引的,你能听懂吧,为因为它是字符串,它默认推出来,它是什么需要去做盗牌索引的,如果你想看的话,你可以这么去看啊,就是get,还是我们的movie index。然后呢,后面就是这个下划线mapping对吧,刚刚让你们看过啊,Mapping这里面你是能够看得到我的name字段,它是有一个text,这个text就表示它是需要做倒牌的。
14:02
好,那这个时候我们要去分析一下它怎么去存的了啊,它是这么去存的,首先你的第一个,比如说这个,这是我的第一个应该是啊。对吧,这是这是那个第二个啊,这是第三个。好,那我的这个第一个过来以后呢,他一看,诶你要去做倒牌对不对,那我就会对他怎么做一个什么分词的一个什么拆分,那我就拆分成了。什么东西啊,拆分成这个东西了,叫op对吧,拆分成了,拆分成了SE。不仅要做一个拆分,他还要去记录一下,诶我的这几个单词呢,在哪个文档中出现过,那你看一下啊,这是我的一号文档对吧,是一号文档吧,来确认一下啊。这是我的一号文档对不对,那么他就会记录了啊,一号文档,一号文档,一号文档出现过了,对吧?那接下来你的第二条数据来了以后,你看他知道什么叫湄公河行动是不是,那我同样拆啊,拆分成什么,拆分成operation,诶那我一看operation已经有了,那我就记录一下,它在我的二号文档出现过,那我拆分成二号。
15:03
对吧,记录一下二号文档,然后呢,没工没有,那我就再去写没工。对吧,这个顺序我就不再给你调了哈,梅工在二号文档出现过,然后呢,River好在二号文档出现过。对吧,那接着你的这个来了以后呢,他才分什么红款事件,OK,那我一看啊,这个没有好,那我写出来。事件对吧,在这个三号文档出现过,好,那同样你的right c我已经有了吧,在三号文档出现过,在三号文档出现过,这个是他存好的这个什么。倒排索引。好,那你把这个倒牌存好以后,接下来我们要去查了啊,那我在查的时候,你查的关键字啊,就是我们这个搜索关键字。搜索关键字是什么呀?是这个东西。对吧?那么它其实是什么?按照这个分词搜索,它会把这个拆分成operation,拆分成read,拆分成C。
16:02
理解吧,就说白了,他会拿上诶你的operation,拿上你的red,拿上你的C,然后到你的倒牌中去做匹配,那我一看我的operation,我会匹配到你的一号和二号文档,对不对,那我就把你的,诶把你的什么一号和二号匹配到了。能理解吧,把你的一号和二号匹配到,然后呢,我的red,我把你的一号和三号匹配到好,我的这个C呢,把你的一号和三号匹配到好,一号和三号匹配到。对吧,那既然我都是能够匹配到的,那最后你看一下你的一号二号三号文档是不是都出来了呀,所以说我们的结果哈,我们的结果是这样子的,我总共这个一号文档,主要一号文档我匹配到了几次啊同学们。一次两次三次,我匹配到了三次对吧,然后呢,我的呃三号文档我匹配到了两次,然后呢,我的这个这个二号文档,嗯,应该这样的啊,我的二号文档我匹配到了一次。
17:05
知道了吧。这个能看住了吧,同学们好,那么这个时候大家注意哈,首先你既然这个一号三号和二号呢都匹配到了,那我的结果中呢,就一定会有啊,看一下结果呢,是一定会有的,你看总共三条记录啊,这不是我的一号文档吗?对吧?这是我的三号文档吗?这是我的二号文档,是不是都匹配到了呀,但是你会发现哈,我们的数据我们的在索引中存的时候,我的顺序是一号。二号三号,但是我这一次我查出来以后的结果,你发现它顺序变了,它变成了一号。然后呢,三号二号了。对吧,这个为什么顺序会变呢?啊,其实这里面的话呢,它会有一些这个因素,什么因素呢?现在的因素是一个评分啊,或者什么打分,他会对你的结果呢进行打分。能理解吧,他会对你的结果进行打分,怎么打分的呢?这个打分的这个,呃,打分的这个这个这个计算公式呢,还是很复杂的啊,一会儿我可以带你去看一看啊,但是我们可以简单理解啊,我现在就按照你的匹配次数,如果说你的文档的匹配次数越多,那相应的我的分就会越高,而且这个分呢,其实有体现的啊,你看一下我的一号文档的这个评分是这么多。
18:18
啊,这是我的一号文档的评分是这么多。对吧,这是我的一号文档好,然后呢,我的三号文档的评分呢,是这么多。好,这是我的三号文档,我放到这儿。对吧,然后呢,我的二号文档的评分呢,相应的就什么会低一点,因为你匹配的次数少啊。对吧,你匹配的次数上它就会相应的会低一点。能看明白吧,所以说啊,最后我们再去做这个结果呈现的时候,那我肯定是要优先把匹配度越高的啊,或者是匹配度最高的数据呢,往上面去放。对不对,就比如说你在这个,呃,京东里面搜索东西,或者说这个百度里面搜索东西的时候,你是不是希望我匹配度越高的数据给我放到最上面,就是最显眼的位置,我一下就能看得到。
19:02
你越往后就是什么,它也是能够匹配上的,但是呢,匹配度可能没有那么高,跟你所搜索的那个东西呢,可能呃,这个这个。不太,这个就是挂钩的一个不太好对吧,就是可能是诶看的好像是有点关系的,但实际上你看的时候呢,发现并不是你想要的那个东西啊,但因为你是做了一个分次匹配嘛,那我只能是把它这个拿出来,因为我是能够匹配上的。对吧,所以说我们的每条数据啊,最后是有一个什么打分的啊,这个打分的话呢,就会决定你这个数据的一个排序。啊,当然哈,这只是我们目前所能看到的一个什么因素啊,其实我们追踪数据的呈现呢,它除了这个打分之外呢,还有很多其他因素啊,还有很多什么其他这个加权的这个因素啊,这个的话,这个的话就不太好说了啊,因为你在每个平台里面,它这个加权的方式不一样。对吧,你看像有的。你到这个淘宝中啊,别淘宝,你到这个百度里面。对吧,你随便搜索一个,比如说就是大数据。对吧,我就收水一个大数据,那你说凭什么这些东西就能往前排呢。
20:05
对吧,那你看我这不也是能够匹配到大数据大数据的吗?对吧,或者下面这个,这不也能匹配大数据吗。那凭什么你们就排到前面去了呢?是不是啊,它会有很多加权的因素,你看像这个东西对吧,你能看出来的吧。是不是?啊,正经是能够看出来的,它是什么呀,广告。对不对,那你既然你是打过广告的,那你肯定是什么需要这个花点钱什么的是不是啊,或者是你京东里面也是一个道理啊,同学们,京东里面也是也是一个道理啊,就是它会也会有广告啊,比如说我们搜索这个手机,那你说我收个手机,那我这个手机太多了呀。对吧,凭什么你就显示到第一个最显眼的位置了呀,你看这个东西。对吧,啊,说他会有这种其他这种各种什么加权的东西啊,说这个东西,呃,你就不太好说啊,到底是这个谁在前谁在后啊,但是呢,对于我们现在这个不考虑其他加权因素的话,那我就什么直接什么综合考虑你的这个评分就完事了,就是你的匹配次数,你匹配的次数越多啊,相应的分也会什么越高。
21:11
理解了吧,啊,所以这就是我们分子匹配的时候啊,它最后匹配到结果。首先啊,最终的三条结果你应要能够知道啊,为什么会匹配到三条结果,而且而且而且的话呢,最后的这个顺序你要什么能够理解,它是怎么去来的啊,其实跟你的这个打分呢,是有一定的这个关系的。好吧,行,那既然说到这个打分了,我们把这个打分的这个简单去给大家去说一下啊。这是那个打分。它这个打分的公式的话呢,很复杂啊,这个公式你完全不必要去记哈,你就知道它底层是有一个计算公式的,就完事了。啊,但是呢,你不知道,你你不记吧,嗯,你还得什么知道,另外一个事儿,就是这个公式你可以不记啊,但是你需要知道一下,影响打分的这个因素有什么啊,影响这个评分的因素有什么。对吧,这个简单说一下啊,它有正向因素,也有什么负向负面因素,这个正面因素或者什么正向因素就是你的命中次数,你的命中长度比例,比如说啊,我搜索了一个这么长的一个什么这个关键字,如果说我的这个关键字啊,在你的某一个文档中命中的次数呢,特别特别多的命中了很多次,而且的话呢,我每次命中的基本上都是能够全部命中的。
22:21
就说白了,我的匹配度跟你是很高的,那么这种情况下,他的打分肯定就会很高,理解吧,啊打分肯定就会很高,那如果说我的命中次数呢,不是很多,而且的话呢,我每次命中的时候呢,只命中了你其中的某一些字字段并不是什么完整去命中的,那这个打分的话可能就没有那么高。对吧,这个大家应该都是能够理解的啊,你的命中次数,你的命中长度的一个比例。啊,但其实呢,有些时候呢,这个也不一定是你的正常因素,有可能是你的负面因素。啊,比如说你所搜索的那个关键词,就是你所命中的那个关键词啊,在其他的词条中出现的次数。会成为一一个负面因素。
23:03
比如说啊,我们有一些这个词条,它是不值钱的啊,比如说什么中文中的什么的。啊,什么是你,什么我啊,什么他。对吧,一些什么什么代词形容词。对吧,啊什么英英文里面,比如说什么什么呃什么什么U对不对啊V啊me。是不是什么and什么什么啊,就这种词,一般它是不值钱的。对吧,比如说给大家举个例子啊,假如说呢,现在我有两个词条啊。一个是叫做。我我我我什么呀,我的呃。我想想啊,啊,我的主播。对吧,诶一个叫我的祖国啊,然后还有一个词条叫做嗯。叫什么叫这个叫猫与狗对吧?诶猫与狗我想想不出来了啊,猫与狗好,这是我这个ES中两个词条,两个什么两条这个文档啊好,那现在我去搜索,我搜索一个什么,我搜索一个我的猫对吧,我搜索一个我的猫。
24:07
能理解吧,那你看啊,如果说就按照我们这个命中的次数和这个命中长度比例来讲的话呢,我能命中我的,在它里面我只能命中一个猫。对不对?那你说我最后的打分就一定是他高吗?这个是不一定的,因为你看啊,对于你的这种词条来讲,什么我啊什么的,对吧,这种词条其实在别的这个文档中啊,它出现的频率也是非常非常高的,那如果说有一个词条在每一个文档中都有可能会出现,而且出现的次数呢,都很多很多的情况下,它就不值钱了。能理解吧,它就不值钱了,因为你拿它去做过滤,没有太大的一个意义,因为我身里面都有。对吧,谁里面都有他,他就没有什么意义了。所以说啊,像这种情况下,其实最后打分高的话应该是他。因为这种词条它的这个价值还是比较高的。理解吧,啊,所以这个东西你要知道一下,就是呃,一般情况下,我们的正常因素呢,就是我命中的次数,或者命中的这个长度比例啊,这是正常的因素,但如果说呢,你搜索的那个关键词呢,在这个其他的这个词条中呢,也是出现过的,而且呢,出现的次数也比较多,那么它的就是一个负面因素了,它就不会什么这个增加你的这个评分了。
25:19
啊,还有可能会影响你的评分。好吧,啊,就说这个大家这个知道一下就行了啊,它这个整个计算的这个公式呢,还是很复杂很复杂的啊,这个你不用去管,而且的话呢,你在不同的版本中呢,还还会有什么有有这个差异的啊,它并不是一个什么固定的。好吧,这个知道就行了啊,同学们行,那这就是我们这个分词的一个查询啊,这里面我主要说到的就是它怎么去按照我们的这个分词做了查询啊,再一个就是我们最后有一个什么打分这个事儿啊,行吧。
我来说两句