00:00
来吧,继续说吧啊呃,然后再往后的话呢,呃,还是这个查询啊,我们就接着往后说啊,下面是这个分词的这个子属性,做这个查询啊,这个啥叫子属性呢?呃。简单啊,你看我们的数据啊。啊,就看这个就行了啊,你看我的数据啊,我的数据里面,比如说这个演员列表啊,这个属性应该就是我整个dock里面的一个属性,但是呢,很明显我这个属性下面的话呢,我存的是不是还是一个对象啊,那我这个对象中不是还会有这个属性啊,那这个属性你就可以理解为是一个子属性,就是它的一个子属性。理解吧,那比如说我们再来查一个啊。再来查一个就是分词的这个子属性啊,分词的这个子属性啊,比如说呢,我现在搜索什么呀,搜索叫什么呀,搜索嗯,诶我看看啊。搜索什么,搜索这个张毅啊。
01:00
好张译张译这个就是参演过的电影啊,诶好来参演过的,参演过的电影,OK,那你你你这个会怎么搜索呀。那你肯定会这么去写了啊,就get叫什么movie index,然后下划线search。对吧,然后这里面写什么呀,那我就写了啊,还是一个query query的话,这里面写什么呀。还是match呗,我要去匹配吧,匹配谁的匹配你一定要注意啊,这地方写就有讲究了啊,你直接写name呢,你看你直接写这个name行吗?不行,如果你直接写name,注意啊,你直接写name它表示什么呀?它表示的是你的电影的名字啊,那你要写的是。电影的这个演员列表中的这个name应该怎么写的?是act的一个name?首先你要写的是act list的name,这就是一个子属性。听到了吧,就是这个属性下面有一个子属性叫name,就是这个值啊,那你后面写个什么,写个什么呀,写个张译好了,那我问你啊,这个。
02:06
能搜索出来什么结果?你看了啊,再来看数据,第一条数据中包含张翼,第二条数据中,呃,这个这个三号文档中不包含啊,二号文档中呢,呃,也不包含张译。那正常情况下的话,我们应该出现的是不是就是它呀。对吧,应该就是出现个一号文档啊,但实际上的话呢,这个会有两条数据。是不是哪两个数据呢,注意啊,张译的是不是出来了呀。好,那我告诉你,张涵予的也出来了。你看吧,这个东西你就感觉不合理了吧。是不合理的呀,好,那首先先说一下为什么会出现这种结果啊,这种结果很简单,还是因为。我们的这个名字啊,大家注意还是来看这个东西啊。Get movie index,然后呢,下滑下map走好,你看一下我们的这个演员列表的这个名字,因为它是字符串的,所以说呢,它默认推算出来,也会给你做一个倒排,也会做一个列式存储。
03:09
看到了吧,那如果说你是做了这个倒排的,好,那我就告诉你,你将来再去做搜索的时候,他就会通过倒排的方式帮你去匹配,那你倒排匹配的话,你看一下,我就会做分词,分词的话你看一下啊张翼我就分成了张和E,这个时候你在做匹配的时候,你看一下啊,我们的结果中。你看像这个里面张译肯定有的,这个肯定都匹配上的,再一个这个为什么会出来呢?因为我匹配到了张了。然后呢,把这个和它匹配上,所以这个结果就出来了。好,那这个时候你就你就觉得说这个东西太不科学了。对吧,太不科学了。我想找的是张译演过的电影,你把这个张涵予演过的电影也给我调出来了。对吧,不科学好,那你的问题在哪呢?问题就在于你说这个字段就这个词条啊,或者什么这个这个什么字段这个属性,我需要做倒牌吗。
04:03
同学们,我需要做大牌吗?需不需要做大牌?注意,不需要做大牌。你就想吧,名字我需要做倒牌吗?不需要吧,比如说你这个平常啊,你在这个百度中啊,来看一下,你说你在百度中我搜索一个搜索个人啊,搜索过谁呢?搜索一个就叫张译吧,对吧,就叫张毅,你说我搜索张译。对吧,然后呢,你给我出现了什么各种别的东西,比如说什么呃这个这个呃这个这这是有包含张译的啊,比如你出现了别的,比如说什么张绍峰对吧,给你搜索出来了啊,什么张无忌啊,给你搜了出来了。张翠山也给你搜索出来了,你这个东西你就不太科学了,对不对。啊,说这个名字,这个肯定是不需要你去做倒牌的,因为我将来收手的时候,我就找这个人,你何必要把它拆开给我去找呢。对吧,啊,那么也就意味着啊,将来我们在真正去在这个生产环境中去使用的时候,你这个你这个索引啊,我们一定不能让他什么按照你的数据去做这个推算,就是你里面有什么字段,字段的类型是什么,一定不能按照数据推算,因为它推算出来其实不合理的。
05:12
那很明显,我像这个这个东西就不需要你做倒牌,那我将来这索引的时候呢,我就不需要你把我的这个什么名字呢,存一个什么tax。对吧,我不需要你倒牌,你就什么做一个劣势存储就可以了。理解了吧,啊,所以将来我们是可以什么自己去指定的啊,行,那这个地方如果说我想能够查到正确的结果,应该怎么做呢。我们可以这么去做啊,我把它复制下来,你看啊,我的名字它存了一个倒排,但是呢,我说过它还会存一个列式存储,这个列式存储的话呢,它用的是一个keyword,这也是一个子属性啊,它是属于我name的一个子属性,就如果说我直接这么写,你看了actist name the keyword,这什么意思啊,这个就表示我要拿你的name的。
06:00
列式存储去找数据了,我就不再做倒牌了,听懂了吧?来这个时候你再去查。就一条数据了,就只有什么完全匹配张译的数据才能够出来。你看那个张涵宇还有吗?就没有了啊,这是我一条数据中的啊,那这个肯定会查出来的啊,因为他们是一起的嘛。对吧,说这个keyword啊,它就表示它是一个什么列式存储啊,我要什么通过你的列存的方式去找了,我就什么不再什么通过什么倒排的方式,不再通过什么分词的方式去找了。理解吧,啊,所以说你看像我们这种数字段的话呢,将来你在建表的时候呢,我们肯定要什么具体指定啊,这个name就存一个keyword就完事了啊,你的类型就是keyword类型的,你就不要再去存这种类型了,没有用。能明白吧,那么同样呢,像我们这个电影的名字啊,这个电影名字还好啊,比如说像这个其他的这个名字,比如说我们的商品的ID啊SK。对吧,你想想啊,我们在这里面,这是我的SQ name对不对,那你说我的SQ name,我将来一定是要做这个分次匹配的吧,比如说你要匹配手机,那我就要匹配上。
07:04
那你说我将来会拿它做整体匹配吗?就是必须得什么直等啊,只等判断必须得一模一样的情况下,我才能把它查出来,你觉得这个我们会这么做吗?不会的,如果你要这么做的话,就相当于你将来在这个京东里面搜索的时候,你就得把这一堆都给它写上,对吧,就是我要搜索一个什么呀,我要搜索一个这个数据对吧,拿过来,然后呢,放到你这个京东里面去做搜索,你觉得你会这么收吗?这个都不要了啊啊,你觉得你会这么说吗?不会的对吧,所以说你要发现啊,有的字段呢,它是一定会做什么分词的。而且呢,他也一定不会做什么,做劣势存储,一定不会做只等判断,那么这种情况下。我们将来在写的时候呢,我就什么直接告诉你,像你这个电影的名字哈,电影的名字你就不用做劣势存储了,你就直接倒牌就完事了。听懂了吧?啊,这个事情给大家去说一下啊,这个后面我会去告诉你怎么去写啊,就是怎么去指定它啊,那么现在我想表达的意思就是字段,你得看它的使用场景,然后决定我到底要给你存什么类型,你是要存大牌还是要存列存还是两个我都要。
08:10
对吧,你得看你将来的使用使用场景啊,那像我目前的名字,我是不需要做倒牌的,我是不需要做分词的,对吧,像那个电影的名字。那你是一定要去做什么分词的,而且的话,你一般是不会做,只等判断,就是不用去做什么,做这个列式存储的。好吧,啊,这个要知道一下啊,这是分词的一个什么子属性啊,OK,行,再看吧,呃,它还有一个什么叫这个短语匹配啊,这个短语的话呢,也是啊,它不再利用这个分词的技术啊,直接什么直接在这个短语中啊,做这个数据的匹配,你比如说啊,给大家去演示一个短语啊,短语匹配啊,他就说不基于分词了啊,它是不基于分词的啊呃。啊就就直接写吧,短语匹配啊,你看了啊,我现在搜索这么一个东西啊,Get还是moving index好,Movie index,然后呢,下滑下search,呃,还是写query啊,那这里面我写个match match的时候,比如说还写电影的名字啊,还写个name,好,那我写一个name,后面我写什么呀,我后面写个这个东西叫嗯叫什么叫operation。
09:16
Op operation。好来先看我们这个所有的数据啊,先看所有的数据。好,来先看所有的数据啊,你看一下我现在所有的数据啊,一个还是这个operation red c,一个是这个operation me river,一个是这个,呃,这个indexed red c,对不吧?好,那我现在有三条数据,你说我现在我做这样的一个查询。他会查到几条数据啊,同学们。几条数据?你看啊,如果说你这么查的话,它还是做一个分词的啊,那就operation和red匹配,这个能匹配上,这个能匹配上operation,这个能匹配上operation,那么结果还是三条数据。
10:00
但是我现在有个要求,什么要求呢?就是我要求你这两个是完整匹配的,啥叫完整匹配呢?你不要把它拆开匹配,我要求你的匹配的词条中必须得完整的包含operation。那么至于前面有什么,后面有什么我不管,但是呢,这两个是必须得完整。按照顺序出现的。这种情况下你怎么写?你要这么去写,你不要去使用match了,你使用这个match。这个P啊。这叫短语匹配。能看到吧,这种情况下我们再去查,那我就只查到一条数据,为什么呢?因为只有它是能够完整的匹配到我的这个值的。对吧,像其他的这个三条数据你看啊。这个是可以匹配的啊,你就这个东西能匹配吗?你能匹配operation,但是你有red吗?你没有那就不行,那这个数据的话你能匹配,但是你的red前面有operation吗?你没有那也不行。对吧,这是所谓的一个短语,什么叫短语呢?这是一个短语,这是一个什么整体啊,这个不能再拆了啊,我在匹配的时候呢,我要什么完整去匹配它。
11:02
理解我的意思了吧,啊,这个你要知道的啊,行,这是我们的这个短语匹配。OK吧,行。呃,停一下。
我来说两句