00:00
好了啊,呃,那这个中文分词我们讲完以后呢,呃,就是我们看到这个效果以后呢,接下来我们就想着说,那我在建表的时候对吧,你看像我刚刚演示这个效果,我这个index中我是涉及到中文的,但是呢,我最后发现我在查的时候,它这个分词是不对的。那你想想,我们是不是就需要在你这个表中去指定一下你的这个中文分词,你要用什么分词器了吧?对吧,所以这个时候我们就会涉及到一个什么这个键表啊,去指定什么呀,就是这个键索引啊。创建索引啊,创建索引啊,这个手动指定啊,手动指定什么指定这个分词器啊。分词器OK,呃,那你想这个手动指定分词器的话,你就得知道一下我们应该怎么去手动的指定你的每个字段啊,说这个过程中的话,我们会涉及到一个这个mapping,这个啥玩意叫mapping呢?啊,Mapping其实就是你这个表的一个结构啊,那我们需要知道一下我如何自己去建一个索引啊,然后呢,这个索引中的话,我怎么去指定你有哪些个列,列里面的有哪些个啊,列是什么什么名字的对吧?以及你的列的什么呀。
01:09
这个这个类型是什么,这个东西我们应该怎么去写,对吧,所以接下来我们就看一看啊来到这,呃,就是。关于这个mapping看到了吧,这个mapping其实很简单哈,你可以随便去查一下,比如说我们现在有的啊,你可以去随便去查一下,来get一下什么,比如说我们就拿这个movie。然后index,然后下划线,Mapping这个我们上午也看过了哈,Mapping现在你看到就是其实就是你看啊。呃,在这个M下面啊,就这一堆,就是我们当前这个index中所有的字段啊,比如说你的豆瓣评分啊,你的ID啊,你的name呀,还有你的什么演员列表啊,演员列表中的话又包含什么,包含ID啊,包含name呀。对吧,就这个东西我们现在没有指定过,但是我希望是我们将来在建索引的时候呢,我能够自己手动去指定这个东西,那咱们指定呢,其实很简单,你就把它自己手动写出来就可以了。好说下面我们给了一个例子啊,同学们。
02:04
在这儿。给了个例子,我把它拿过来。好,拿过来以后先放到这,你看了哈,就是我们再去,呃,这个不要了啊,好,我们再去建这个索引的时候,比如说put movie index ch sing,对吧,这是我现的说你的名字下面注意啊,呃,我们整体是一个大括号,然后这个setting这个东西呢,其实你可以先,嗯,这个可以先不管也行啊,先不管也行啊,那就放到这也行啊,这个setting其实跟我们现在没有什么关系啊,但是呢,我可以告诉大家,这个setting里面可以指定什么呢?可以指定一些你的,比如说你的Sha的个数,对吧,这就是什么,指定一下你的下的个数是一个。能明白吧,哎,杀了个数一个啊,那我就放到这吧,就反正我们以后也得去用啊,我就把它放到这好,当然现在它不是一个重点啊,我们重点看的是后面的叫这个mapping,这个mapping里面写的什么东西呢?注意啊,Mapping里面写的就是properties,这个pro里面写的就是你的所有的字段名字,比如说我的电影的ID,那么它就是一个浪类型的,我就写好了,对吧,你看类型是浪类型的啊,然后呢,电影的名字。
03:07
注意啊,电影的名字它一定是一个需要什么做全文检索的,那你说我会拿上你电影的名字,或者说拿上你这个什么SQ的名字,商品的名字去做一个什么职能匹配吗?我不会做职能匹配的,所以说我这一次再去建的时候,你看好了啊,我就直接。只写了一个什么tax类型。那么之前他默认推算出来的东西里面,你看电影的名字,除了text之外,他还有一个子属性叫做keyword,这个是他自己推算的,因为我说过啊,你的字符串类型的数据,如果说让你的ES自己去算的话,它会存两种方式,一种是你的text,一种是你的keyword。但很明显,现在我们分析到了,你的电影的名字也好,或者你这个商品的名字也好,我是不会做只等判断的。所以说呢,我就不需要有这个keyword类型,我直接存一个T就完事了。好,那如果说你的这个名字是包含中文的,那你正好分词器指定一下,看一下吧,这就是我指定的分词器,我要用的是I k smart或者什么I k max都可以。
04:12
重点是告诉你怎么去指定它了,好吧,后面你看这个多score double类型的,然后呢,演员列表你看了哈,演员列表中我们的practice,你的ID呢,还是一个浪类型,但是你看演员的名字,这个我们是知道他一定不会做分词匹配,对吧,就我说的那个,你要搜索一个什么,搜索一个张张译。对吧,但是呢,他给你做分词匹配了,给你找出来什么,找出来什么张绍峰了,张无忌的对吧,你这个东西不靠谱,所以说我要搜索人的名字一定是什么呀,只等匹配就必须得等于张译的才靠谱,因此他不会做分词,那我们就直接keyword。就不给你存那个什么text,你看啊,他自己推算出来的是有T的。明白吧,那我就不存text,我就什么直接就是一个keyword就完事了,因为你也不需要做分词。
05:04
明白了吧,同学们啊,这就是我们的mapping啊,就相当于我们自己在去什么呀,建索引的时候呢,我是可以手动的指定你的类型的,之前我们都没有指定过啊,现在我们就要告诉大家,我们是可以手动指定的。OK吧,行,那这个你能看懂以后呢,接下来我们就看一下啊,我基于这个mapping,然后呢去呃建一个什么中文的索引,然后它能够什么正常的支持我们的中文分子啊,那我就先这样啊,先删一下,把我刚刚现在有的这个给他删掉,这个是刚刚写的那个啊,它是不支持的,好吧,我把它干掉,干掉以后把这个建出来。好,那你看啊,我的索引就有了啊,索引有了以后呢,接下来我们回到上面把数据重新来执行一下啊,这个名字都是一样的啊执行。执行。好,再执行,OK,那现在我总共有三条数据了啊,同学们你看啊,总共有三条数据了,我给你查一下是不是三条数据啊,接下来我再给你查,我在查红海故事的时候,还是他能够查到两条数据,这个是没没有问题的,因为什么正常你的红海跟我的红海是能够匹配的。
06:07
对吧。跟红外是能够匹配的,问题是在查上海银行的时候,刚才我们是能够查到三条数据,但是这一次你再来看。没有数据。为什么没有数据呢?因为你的分词是叫什么呀?叫湄公河行动对吧,红海事件,然后呢,红海行动,这是你的分值,然后呢,你拿上这个上海银行去查的时候,它有做分词,它是上海银行,那你看你在上海和你的银行能跟我上面的任何一个词匹配上吗?不能,所以说最后是没有结果的。明白吧,好,这样我们就可以什么呀,正常的对你的中文呢,去做这个分词的一个处理。就需要你什么手动的去指定一下了啊,需要手动指定就告诉他你用哪一个分词器。明白我的意思了吧,同学们啊,这就是我们基于这个。
07:00
中文分词器啊,然后呢,去构建你的索引,当然这个环节中我们就涉及到了一个mapping,大家要知道一下啊,这个mapping以后我们是会要是要求我们自己写的哈。就是我们在建索引的时候,我们要自己去写这个卖品啊,但是呢,你不用每次都写啊,你只要写一次就够了啊,后面我会去说。明白吧,啊这个东西呢,你也不用去背啊,就是这个结构,你把它拿过来,然后自己改改,总会吧,你的字段名叫什么改一下,你的类型叫什么,你改一下。听懂了吧啊,然后至于说到这个类型的话呢,这个文档中也有啊,大家可以自己去看一看。我们常用的类型啊,就是有布尔类型。存你的出false long类型的存你的整数,浮点型的存你的小数,Date的存你的日期,然后呢,Text或者keyword呢,存的是你的字符串,只不过区别就是tax呢会做分词,Keyword是不会分词。理解了吧,啊,这个大家可以自己了解一下啊,这个倒不难啊行。呃,那就是这个中文分子,基于这个。
08:00
基于这个中文分词啊,然后搭建这个手印,我们涉及到一个mapping啊,行说完了啊。
我来说两句