00:01
呃,那么咱们呢,首先来看一看这个mapping这个单词本身什么意思,映射是吧?映射,呃,那么咱们现在这里的映射指的是什么呢?其实在这里可以再给大家扩展点东西啊,其实最早的时候呀,同学们就是咱们这个map,其实如果接这个接触的话,那其实应该有一个什么呀,有个叫orm对吧这样的内容,这个什么叫OM呢?它其实指的是我的对象,还有咱们这关系它之间的一个这个映射对吧?那么对象关系,这个对象指的是什么对吧?这个东西对象指的object是吧?那到底是object,然后代表是哪个对象的,是不是这个object没问题,然后关系的relation啊,然后呢,这个M呢,其实就我们mapping对吧,这个呢,MT是mapping对吧?那么这里到底映射的什么东西,映射嘛,是不是应该是两头啊,这边一个这边一个,然后他们两个,然后这这这还能称为映射嘛。
01:01
对吧,那么我现在呢,这个M本身呢,其这个框架,那么最早的其实框架呢,呃,有没有听说过的。Haberightt啊,好古老是吧,对吧?这个东西呢,最早的时候啊,那其实有一个haberight,这个haline它主要做是干什么呢?对吧,大家想一想啊,就是我们假如说我这个JA啊,要操作我们这个买搜狗数据库对吧,要操作买搜数据库,那么如果这样操作买S数据库的话,那么你们现在使用的什么技术,是不是使用的是JDBC呀,对吧,GDBC,那么GDBC呢,编程那肯定有得哒哒哒哒对吧,那么几个步骤几步六步是吧?那么注册驱动啊对吧,什么创建连接呀,创建咱们预操作对象啊,这些思后语句啊,处理结果集呀,释放资源呀,到大体的东些步骤是吧,那么咱们现在假如说啊,我从咱们这个做DTVC,从MY搜数据库里边来做一个我们的查询,他查出一些内容来,对吧,那么查出内容大家想一想,它封装到哪了,是不是封装到我们叫result side里边。
02:10
呀,这是我们的结果集吧,那么你现在要干什么呢?你是不是得对结果集进行处理啊,对吧?假如说你现在使用GDBC,那么你现在呢,在咱们数据库里面对吧?有一张表,这张表叫什么呢?叫student,但当年STEM表里边有ID,有name,有age,对吧?比如说有咱们现在这几字段,你现在呢,从咱们这里边把ID为一的,名字呢,为大三的,年龄呢,20岁的,ID为二的啊,这个名字呢,李四,然后呢,年龄比如说是25到你给查出来了,那么查完之后呢,你是不是把咱现在这两条数据给放到瑞达赛的里去量,那你是不是得想办法对这两个数据进行处理,怎么处理呢?怎么处理,你是不是得想办法把这个数据找一个地方给它放起来,找一个东西给存起来呀,对吧,怎么存,那么这个时候咱们肯定是比较常见处理方式,你们肯定啊,是在咱们cover里边第一个类,这个类呢叫student,然后接下来在当前类里边呢,那应该有这么几个属性啊,Stringd,然后呢,String类型的name,以及我们这个string类型的一个age啊,或者是in类,对吧,In类型的age对吧?那但是呢,大家注意啊,那我现在这里我查出这个set,它里面是个集合,集合里边是不是咱们一条一条的记录啊,对吧?那么你现在这一条的记录,你是不是得想办法和我们现在这个类里边的这个对象建立起关系啊,对吧?那你怎么做的也肯定是RS点什么N,是把咱们这条数据这条记录给它取出来,对吧,那么取。
03:56
完之后呢,那你肯定对吧,可以什么对吧?给它RS next取出条记录,对,然后接下来对吧,那么咱们呢,可以从这里边来获取什么ID名字以及年龄的值吧,然后接下来要把它封装成什么呢?是不是要封装成一个我们这个对象了,所以说你肯定你有一个组求证的对象去接收它,对吧,把咱们当前我们现在查询出的这个结果集的数据是不是封装为我们现在student的对象的属性啊,对吧,这个操作呢,其实就是我们对象啊,这个对象指的是它以及呢咱们的个关系对吧,关系指的是关系数据库,然后它们之间的一个映射对吧?那么如果映射的话,他们其实怎么映射呢?大家想一想这个东西,Student这张表它对应的应该是谁,是不是对应的我们现在这个实体类啊,然后表中的每一个字段是不是对应的我Z中的每一个属性啊,表的一条记录。
04:56
对应的是不是咱们现在一个对象啊,对吧,那么只不过呢,那么在没有框架之前,这个NRM操作是你自己做的。
05:07
啊,是你自己做的,你得一个个把它查出来对吧,后来有一哥们啊,对吧,他这个数据库不熟对吧,甚至传说他不会对,说这东西我再去查,然后再处理你太麻烦了,怎么办呢?写个框架吧,对吧,这个框架可以帮你干什么呢?可以帮助你到自动的完成对象,还有咱这关系之间的映射对吧?Haberight,其实现在啊,别看它很古老的技术,如果这个Java的话,那么有些同学出去有可能还要用har。有用的,对吧,这个东西尤其是在做一些我们这个Miss类系统的时候,对吧?在做一些Miss类系统时候,对吧?这个timelet其实呢还不错,什么叫MIS系统,叫manager in for system,就是信息管理系统,对,就这种东西用Le还是比较不错的,就在这里面你可以看到基本上没有什么搜狗语句,对,假如说我现在想去查询一个什么插入数据,直接调用对象,点inser,对,我想去什么?呃,这个查询slide的,想什么更新MD的,想删除点什delete的,直接调咱们这个方法就行,对吧,你想查询的话,比如说我现在在咱们这里带的直接给你返回的结果,不是什么结果集,直接就是咱们对象,直接就是object。
06:24
对吧,直接就封装好的对吧,那你想其实操作起来是不是还是比较方便的对吧,所以说呢,这个映射呢,它指的对象关系对吧,然后呢,咱们说have red,它是一个全啊我们的or画家,然后后来呢,这个随着我们现在啊这个业务的越来越复杂,后来发现啊,就是这这这个东西你的搜狗不用写。全靠的后台帮你自动生成对吧,它生成的东西你肯定是得给他一条模板啊,对吧,给了一套架子,那么这个东西呢,虽然说有些内容简单的业务方便了,但是呢,在涉及到一些复杂逻辑的时候,这个东西就显得有点力不从心了,如果业务特别复杂啊,然后呢,你让模板帮你把这个业务这个思我给你生出来对吧,那么这个就比较难了,对吧,所以说呢,对吧,后来发现有的时候呀,这个circle还得circle Bo上对吧,所以说呢,那么咱们后来又有了一个东西,对吧,叫什么叫my balance啊,叫my balance啊,这个my balance呢,那么这里边一般咱们都管它叫做半or好家是吧,它会帮你完成对象关理映射,但是你在这里可以干什么,可以写SQL语句,这个SQL语句到底是什么业务是吧,到底怎么样去查询,怎么去关联,那么这个时候呢,你可以自己去写啊,你自己写,但是返回出来结果集啊,什么这些东西对吧,还是我们买麦进行处理对吧,这个呢是麦映射。
07:48
然后接下来,那么咱们像这里的映射指的什么呢?其实它没这么麻烦对吧?它这里的映射啊,其实指的是这个同学们,我们现在啊,在这里我们说这个index呢,它相当于我们一个的这个table的make table,那么如果相当于table的话,那你想一想,在咱们创建index的时候,对吧?比如说我现在呢,这里我要往index里边来放数据,对吧?我现在要往咱们的index里边来放数据,对吧?那你放数据的时候,那这里是不是有什么ID name,然后还是豆瓣评分啊这些内容对吧?那你说既然它是一个表,你把说index列成一个表,那么咱们现在这些东西是不是应该是表中的属性啊,对吧?那么既然属性的话,它肯定用来存放数据嘛,对吧?那么咱们当前表述数据的,它是什么类型的呢?
08:41
它到底表示什么类型的数据呢?对吧?那么咱们现在这里是不是好像没有体现出来说ID是什么类型的,那边什么类型的,说没有啊,因为以前在创建文档的时候,直接一铺的,它自动会帮你把索引创建出来,但是所以你们都有哪些属性,每一个属性都是什么类型呢?对吧,咱们并没有显示指定,那么是因为什么呢?是因为啊,默认情况下,它会帮你进行自动推断什么意思,当你去执行我们这库的操作的时候,你本身执行创建文档的操作,那么在创建文档的时候,这个文档它里边本身是不是有文档的一些属性啊,对,有文档的一些值啊,它根据你的值注意啊,它会根据你当前这个文档里的值来推断出来我这个属性啊,应该是什么类型的?
09:29
比如说咱们现在在这里,我呢往我们这个默音代这个缩引里边添加了一些文档,那默的情况下呢,它这里啊,那么会给我们这个模S自动做一个推断,那么这个类型都是什么呢?那你看到对吧个ID短层认为是long类型,然后呢,咱们这个豆瓣评分认为是flow的类型,然后呢,咱们这name短字符串还有一个什么呢?At list短这个at list它本身这里是不是又是一个我们现在的一个对吧,又又是一个接对象对吧?所以说在这里边它也有属性对吧?ID是什么类型呢?内什么类型的对吧?这个呢是在自动推断对吧?那那么其实这个东西呢。
10:11
就是我们这个mapping定义了对吧,只不过呢,刚才它是默认推断的一个对吧,这个mapping对吧,就是说实际上每一个我们这个索引,其实每一个tag什么类型对吧?那么这个时候呢,由我们现在这个mapping来进行定义对吧?那么只不过咱们这里没有显示指定,那么系统呢,它会默认的根据我们当前你放到我们inex这条数据的格式对吧来推断出来,那么这个数据它所对应的属性什么类型的,那默认情况下它的推断那是按照什么来的呢?如果说你给我传的个数或者false,那推断成不尔类型,如果说传的是我们现在这个整数的话,默认推断出我们这个long类型,如果说是浮点数的话,给我推断成float的,如果是这种形式的话,推断日期如果是纵串的话,它底层会有两种处理方式,一个呢是K,另外一个是keywboard的区别是什么?
11:04
咱们这个test呀,一个test test是不是咱们这分词呀,那么另外一个keyboard什么呀,不分词啊,是不分词的对吧?好了,那我现在呢,注意啊同学们,那么这个东西呢,它其实呢,对吧,除了我们现在这个自动定义之外,对那有的时候呢,对吧,那我不想自动定义,那怎么办呢?我还可以手动定义对吧?那么可以手动定义对吧?但是注意啊,那么如果说我现在呢,要手动定义的话,那么它只能对新加的没有数据的字段鉴定,比如说你你现在已经有什么了,你已经有一个索引了,这个索引里面呢,已经有ID和name了啊已经有ID和name,然后接下来我现在put的时候呢,哎,我又加了一个,比如说我又加了一个我们的age,那它是什么类型的,那这没问题,这可以,但你不能说,哎,我现在啊,我手动定义的时候,我把原来的name值给改了,原来name是字串,现在呢,我给改成咱们那个it了,这这不行啊,你给改成这不行,对只能对什么呀,只能对。
12:04
咱们没有数据的字段来进行定义,那么具体怎么来定义呢?那么咱们现在就来看一看对吧,那先来看一看它自动定义呢,自动定义的,比如说这个时候呢,咱们在这里。去执行一下我们现在的这个操作,我都拿过来对吧。这个呢是我们这个自动定义我们这个mapping啊,自动定义mapping是吧?来来家看咱们现在这里是不是要创建文档啊对吧?那么这个文档放在哪了呢?我放在咱们这个波,只不过这个时候呢是Chinese了对吧?这里边这个都是用中文的,不是用我们这个英文表示了,对吧?然后呢,也是往这里边呢放三条数据对吧?这是第一个,然后接来这个呢,是我第二个,然后这个呢是我第三个对吧?然后接下来那我现在想查看一下当前的咱们这个缩引里的内容,对吧?那应该是末尾,然后呢填的一对吧,然后接下来做一个search,对search那么一共呢有三条数据啊,一共三条数据,然后接下来咱们要看一看啊,在这里可以直接通过咱们现在呢,这个末尾channel查询,可以查询一下当前这个索引的所有信息,那么你也可以查询什么呢?你也可以查询这个内容,查询咱们索引它的一个map品啊,查询咱们的索引。
13:27
它的一个mapping,那么如果查mapping的话,这块显示就比较纯粹了,它就不会把别的信息给展出来,对吧?当前我现在自动定义的这个mapping是什么样对吧?怎么做定义呢?它可根据咱们当前这个文档它里面的值对吧?来推断我现在属性是什么类型的对吧?那么咱们现在看到啊,这里这个是索引的名称,然后具体这个呢,是自动的一个麦,然后这个末尾应该是我的tag,对吧?那么其中这里面有些属性对吧?ID啊,这个属性long类型,大家看这个ID是不是咱们现在看是整数,它给以推断出什么呀,是不是long类型啊对,然后接下来除了咱们这个ID之外啊,除了咱们的ID之外,那么这里还有什么呢?还有一个name啊,这个呢两个,一个是test,一个呢是keywboard,还有一个豆瓣评分,这个呢是我们这个float,那么其中这个东西act list它本身是什么,它本身是一个我们这个杰森,那杰森的话,那么杰森咱们其实主要指定就。
14:27
映射的是不是应该是这个阶子里边这两子属性啊,对吧?所以说你看practice里边呢,它有一个at,那么at里边它这里边又一个practice,对指定的是我们现在X list里边这两个属性,对它映射的内容对这个呢是自动定义,那么除了自动定义之外呢,那咱们现在呢,去查询一下,对注意下同学们,我现在呢想查询对吧,那查询谁呢?那这个东西一看M,那应该是分子匹配嘛,对吧?分子匹配什么意思呢?你现在这里有三个事件,那就三个电影,分别是红海行动,湄公河行动,还有什么呢?还有咱们这个红海事件,那接下来我现在呢,来做个查询,怎么查询呢?来接下来在这里查询query嘛,然后接下来我现在呢,要分次匹配,按照哪个字段呢?按照名字,我们想把名字中含有谁呢,含有咱们这个海行呢啊给拆别出来。
15:25
起他记录三条,因为咱们现在这个match默认是不是咱分子品类了,对吧,那么这个时候呢,那应该是我们这个三条啊,那应该是三条对吧,那我希望什么呀,注意啊,我希望我在查询的时候,我就按照别查询,不要给我进行分次。啊,不用进行分词,之所以进行分词,同学们是因为什么呢?是因为咱们现在自动定义的时候,我现在这个名字呀,它本身是不是就给你定义两个类型啊,一个是test,另外一个是keyword,我现在我不想让单词,我就想keyword。对吧,我不想用当分子了,那你可以自己去指定,那么怎么来仔细指定呢?对吧?那么咱们现在呢,来再往下走对吧,那我就得手动去进行mapping对吧?那么如果手动mapping的话呢,那么咱们现在在这里完了,这个东西这个操作是干什么,是不是创建一个我们的索引呀,注意啊,创建文档后边是不是还得有我们这个type以及我们的ID呢?这个东西就是创建索引,然后在创建索引的时候呢,那么这块你来指定我们这个map,就这个索引里边有哪些字段,每一个字段类型呢,是什么样的,对吧?那么应该呢,你来创建对吧?来咱们现在把这个东西拿过来啊,把这拿过来,来我来看一看我当前啊这个索引什么样的是吧。
16:43
这个是,这是我们这个自定义mapping啊,这个呢是我自定义mapping,那么如果自定义mapping的话,同学们在咱们这里边对吧,那来看一看,那么你现在怎么定义呢?Mapping,然后接下来咱们呢,这里是我当前的type,然后这里practice,然后接下来这里边是不是有什么ID,然后name对大家注意看这个name和咱们原来啊,它不太一样了。
17:15
对吧,你看咱们现在在这里,我当前这个name,它在这里是不是有一个什么T的类型啊,但是我在使用分子器的时候,我是不是指定了,对你用哪个分子器,不用默认的分子器了,默认分子器是不是要分子呀,现在用哪个,我指定用咱们IK分子器,用我自己的分子器了,对吧,那这个时候再查询的时候,它呢,对吧,就指定按照什么,按照我们现在这个分子器指定来查询,如果说啊,你现在不想让它分词,那怎么办呢?这个type你看也可以直接给指定什么呀,Keyword。啊,你可以直接给指定keyword对吧,那么有同学说老师,那我现在这个东西一般咱们在如果说啊同学们,呃,你们在成长环境里,真正你们在工作的时候要用的这些东西的话,这个东西肯定需要你自己写。
18:04
我现在是不是把这个东西直接给你拷贝完了对吧,那如果自己写的话,那这个东西怎么写,没办法写的吧,对吧,有问题的同学们对吧,就假如说你们现在啊,你们这个业务,你们不熟这个业务对吧,我帮不了你们对吧,这业务帮不了你们,像以前有学生出去老师,老师你看一看,今天项目经理跟我聊了一上午对吧,你说说他个业务啥意思呀,包括直接就问懵了,是不是我跟你聊一上午,我你都不知道,然后我没跟他聊过,我怎么知道业务是啥对吧?那么咱们现在的同学们,那么你们再去自己定义的时候,对吧,那么你可以这样随便找一个已经存在的。对吧,已经存在的,咱们现在是不是看一看对它的面怎么定义的,然后把这个东西看出C对吧,拷贝过来,拷过来之后,你在自己定义的时候,大家家咱们现在这里你看一看,发现这里边是不是这个是什么,这个是不是我们现在当前它的一个我们这个索引名称啊,对吧?然后接下来这块其实是不是就是我们麦啊,那其实你要拷贝的时候,你完全可以从这拷贝对吧,从这来拷贝对吧,拷贝一个,那是不是就是我现在麦的定义,然后接下来假如说让你自己定义对吧,不的,然后叉叉叉,然后这个索引,然后接来索引里面的这个me是什么样的,对吧?那你自己来把这个东西写一下呗,把这个东西往这一放,对吧,然后接下来据你们的实际情况对吧,比如说我说里边可能有哪些东西对吧,哪些字段,那这个呢,你得自己来写,对,你可以从原有的拷贝对把这个东西啊跑过去,但是这里边具体的这个瓤对吧,具体内容你得自己往里填啊,你得自己往里填啊吧,好了,那我现在呢,在。
19:38
这里我指定了我们这个自己的一个分支器了,对吧,那么如果说我要指定自己分子器的话,那么这个时候呢,我往这里边呢,再放点东西对吧,再放点东西来,咱们往下走,我当前呢,往我们这个啊,这个末尾前段里边来放些内容,把这几个文档呢给放进去啊,把这几个文档给放进去,来到这儿吧。
20:04
往这里放来第一个咱们现在呢,还是是吧,这个第一条数据,这个呢,第二条数据对吧,这个呢,第三条数据,注意啊,咱们现在操作的是我们这个部位前二它里面的map是不是它自定义的呀,对自定义的,然后接下来我要查询了,查询什么呢?来查询我们当前呢,在咱们这个末尾拆二里边,短末拆里边,然后接下来那我现在呢,做一个我的search啊,来做一个我们这个查询。那么具体啥条件什么呢?Query对,然后接下来咱们这里at一下对吧,分词匹配对吧,那么在分词匹配的时候,哪个字段呢?名字的名字,然后接下来这个test什么的还行啊还行。然后接下来咱们现在在这里查询大家觉得多少数据。如果说现在直接查询的话,来看,咱们现在这里边三条数据围空和行动,然后呢红海行动,然后还有咱们这个红海实件,现在呢,我加查询条件对吧,现在呢还行,对,然后接下来咱们现在去执行。
21:12
几条数据?几条数据,咱们在执行查询的时候,大家看咱们现在呢,在咱们这里对吧,我呢去执行的时候,其实这个东西按照什么呀,是不是还是按照我们当前指定的一个这个分子器来进行分词量,对吧?那么如果说啊同学们,那么咱们现在呢,在这里,我现在想办法这个东西怎么样把它不查出来。啊,就我想海行这个海行这这个这没有这个这个电影了,对吧,我现在怎么样把它布查出来对吧?那么咱们现在呢,来看一看,如果说啊,那么你现在呢,在他指定的时候,如果要是想把它不查出来的话,那这个时候呢,咱们其实呢,你指定我们现在的这个key,对当前呢,咱们现在这个key,那为什么呢,Keyboard其实就可以啊,其实呢,我们现在指定keyor是不让分词是不是就行了的,指定咱们现在呢不让分词就行,那么如果让分词的话,那咱们现在呢,在这对来看一看,对match对。
22:20
呃,不分词来咱看一看啊这里get,然后接下来我现在呢一个木尾,然后前到对吧,那接下来咱们现在呢,要看一看它的一个mapping对吧?来看一看它的一个我们的一个mapping啊mapping来查询看一看当前啊咱们现在这里的东西。这个地方咱们现在这个name是不是还是分词来呀,对吧,那如果不分词的话,咱们再创建它的时候,对吧,那我就把这个东西改一改呗,对吧,怎么改呢?对吧?Delete,然后呢,如果填到二删除一下,删完之后在咱们这里是吧?那Q2是吧,一个是我现在这这个这个这个东西啊可以改对吧,把这改成什么呢?改成keyword对吧,改成keyword,然后接下来去执行对吧,创建完了,创建完之后呢,咱们现在去查询同学们在这对吧,咱们呢去查询一下,那么这个时候查询大家看咱们当前这个内容是不是就是我们keyword呀。
23:24
然后接下来咱们现在呢,往里面放数据到第一个,然后这个呢,第二个,这个呢第三个,然后接下来咱们现在呢,去执行我们的查询,来看这里边是不是就咱们这部分资量对吧?就你可以自己来定义啊,对这个东西你可以自己对吧来定义对吧?呃,那么或者说你按照我指定的一个的分词规则来对它进行分词,对,比如说我现在啊X smart进行分词,对这个呢是你自己来随意指定,对就是你这是自定义我们这个对吧,Mapping对吧?呃,然后接下来注意啊,那么我们现在呢,再往下走,其实还有一个内容就是什么呢?拷贝这个所引数据拷贝这块大家知道一下就可以了,对吧,就是我们现在呢这个AI search呀,对吧,这个有一个这个什么呢,就不太灵活的地方啊,就你不能随便去改的类型,就这个东西也不应该随便改,所就我现在这个东西已经创建好了,对吧,这个mapping对吧,这个类型已经指定好了,对吧,那你不能说今天,哎这个东西是我们这个。
24:25
Q了,明天呢,我给改成test,对这个呢,其实不太好啊,这个其实不太好,对吧,就是你不应该随便改的,但其实咱们有的时候呢,可能啊会有这样的需求什么呢?一个是我现在想把这个类型啊给改一改,原来我呢可能是硬的,到后来这个是数据量太大了,到底浪了,对原来是float,后来那是float的精度不够了,可能得改成我的这个大洞。对吧,那这个时候呢,我就涉及到需要对他做一些修改,对吧,那这个时候怎么办呢?对吧,那后边呢会有专门的办法,那这里呢,其实也可以啊,对吧,考虑什么呢?搬家。
25:01
原来那个不够的,你可以考虑搬个家,怎么搬家呢?对吧?这里有一个叫re啊index对吧,就是我现在呢,可以把当前这个索引的数据,然后放到另外一个索引里面来啊,比如说啊,咱们现在这个是posts请求,对posts请求,然后接下来这里呢,有一个叫做我们这个re index,对,那么这里呢,你需要去传两个参数,一个呢是我们的source对吧,那么另外一个呢,是我们的Dis对吧,另外一个是我们这个Dis对吧?那你要搬家的话,那你得告诉我原来那个索引是什么,然后目标索引是什么,他把原来索引的数据呢,给搬到咱们的目标所据里边去,对吧,其实是这样对吧,就这样这块呢,稍微了解一下对吧,这个稍微了解一下这个就行,对吧,然后呃,那么具体关于我们的索引别名模板,还有我们的idea操作呢,咱们今天呢,不往下讲了,对吧,这个明天再说这些东西对吧?呃,今。
26:01
今天呢,当然主要东西啊,其实全是命令啊吧,全是命令,那我讲的时候呢,大概写了不到500行代码啊,其实还好对吧,我不知你们练需要练多少啊,Ctrl a ctrl c,明天咱比一比对吧?来在这里ctrl a ctrl v对吧,我呢是这么多是吧?别忘了保存啊,你们别别复制粘贴是不是对吧?你们班选一个最多的说咱们现在看班下自习的时候看谁最多对吧?完了考一份共享一下是不是啊,别这样啊呃,行吧,那咱们呢,剩点时间,然后看一看,你们练一练,然后这个命令呢,大家注意啊,这个东西就是你操作一遍,然后呢熟练一下对吧,别着急,千万别着急赶我的进度对吧?然后呢,呃,如果说你做的快的话,可以往下走啊,可以往下先看着,往下看看,明天呢,咱们就开始正式进入我们这个日活的功能,这个这个时间啊。
27:01
啊,好了,老师现。
我来说两句