00:00
OK啊,呃,那到现在的话,我们就把这个对数据的这个操作啊,就是这个DSL的一个什么使用,我们就给大家这个说完了啊,呃,当然啊,需要给大家去说一下,我们并没有把它里面所有的这个操作呢,都给你拿出来讲一遍啊,我们讲的就是呃,基本的一些操作啊,就是我们后面会用到的。能听懂吧,啊或者说呢,目前来讲这些东西呢,就已经足够我们去用了。理解吧啊呃,那么因为大家是这个第一次接触这种语法啊,说你这个写起来吧,你觉得也这个很很麻烦啊,或者说什么也不知道该怎么去写啊,但其实它不难。啊,其实不难,你多写几次,然后呢,呃,慢慢的就有感觉了啊,你就知道怎么去写了。好,然后再一个就是,呃,我们现在只是什么完整的去给大家讲了一遍啊,然后呢,等我们这个后面。再去把它用一用,比如说我们这个项目中啊,我们再把它用一用,比如说我要怎么去查对吧,再把它用一用,然后呢,基本上也就掌握的差不多了。好吧,所以这个大家下去以后呢,一定要自己多去写一写啊。OK啊,那我们就自己继续往后讲了啊。
01:01
呃,下面的话我们讲一个话题,这个话题叫这个so的使用。啊,这个我们在一开始介绍ES的时候呢,呃,也给大家提过哈,其实人家这个ES呢,从这个6.3这个版本以后呢。他就已经什么开始逐步的支持这个so口了,就是说白了你可以什么写SQL语句,然后呢,作为这个ES的一个查询语句。啊写搜,然后呢去查询数据。啊,但是目前的情况是。呃,它的这个搜吧只支持这个查询操作,对于什么insert呀,Update呀,什么delete呀,暂时呢,还是不做支持的啊,就是还没有支持的。能听懂吧,还没有支持到,就说白了啊,他还没有这个全面支持啊,只是有一部分功能呢,可以什么支持,你写so考了理解吧,好,这是一个情况,还有一个情况就是,呃,这个so的话呢,它还少一些,这个功能就是它并没有说实现出来跟这个DSL这个同等的功能啊,有些功能DSL能做,但你这个so还做不了。
02:00
啊,所以说这个现在的情况就是呃,搜狗也能用啊,但是呢,现在比较主流的还是使用这个DSL啊,那什么时候等它的这个搜狗的功能呢,这个呃优化的比较多了,对吧,就是很丰富了。那么这个时候应该就会使用这个烧烤了。好吧,啊,所以大家这个理解一下啊先。行,呃,那这个地方我们讲Soo的话,就是给你做一个简单的演示哈,你就知道一下它也是支持Soo的就完事了啊行,那比如说呢,我们就把我们刚刚写的这个每个演员参演电影的平均分是多少,然后呢,并按照这个评分排序。那写吧,并按照这个评分排序啊,我们把这个通过烧烤的方式呢去呃,写一写啊来我们找一下。这是这个烧烤啊,行,这是我们要做的,还是这个事情啊,把它拿过来。呃,那我把这个整个都拿过来吧。好,大家来看一下啊呃,你不管写搜狗也好,还是写这个DSL也好啊,其实你拿到这个需求以后呢,你就能够分析明白,你要做的事情,不就是分组主内求平均值,然后呢,再去该做排序做排序吗?
03:06
对吧,那我们就可以写一下了啊,你看so怎么写呢?So,我们用的是get get以后呢,你就不再去写什么呢,就不再去写这个什么什么movie index了啊,你要写的是这个烧。然后来吧,你写的是个烧烤。好吧,行呃,然后呢,后面的话呢,我们可以什么写这个format啊,这个format的话呢,呃,你现在不写也行啊,就是一会你看到结果以后,你想格式化再去格式化啊来正常就什么写个什么get下方下烧考,然后后面就可以写你的烧烤了。理解吧,那这里面写circle口的话,我们需要用到一个东西,还是这个query,就你要把这个整个搜狗呢写到这个query中,OK吧,这个怎么写啊,直接写query就行了啊,Query里面你看一下啊,他给你提供的东西特别好用,这个是什么东西啊?它是这个三个双引号,三个双引号啊,你看这个东西是不是有点类似于我们在这个SKY中啊,学的那个什么多行字符串呀,对吧,当时我们讲这个的,讲这个SKY这个多行字符串的时候就说过啊,它其实呢,特别适合让我们去写一些比较复杂的这个字符串,比如说你要去拼接so呀啊,拼接什么加项数据啊啊,你都可以去用它啊,那这个地方我们写S狗,你的SQL的结构都会很复杂。
04:14
所以说呢,我们可以什么直接使用这个。呃,多行字符串来去写,那你就完整的把so口写到它这个中间就可以了啊,那我把它去掉啊,那我们写我们自己的circle口了啊,你看一下我们要从哪个地方去查呢。你写后怎么写啊?不就是select,你要查什么?From从哪查will给条件。对吧,该分组就给我半。Group。对吧,分完组以后你要什么写什么呀,写这个叫做呃欧拜吧。对吧,写order order不就是你的排序吗?是不是啊,大概是这么一个结构啊,那就写一写吧,比如说啊,每个演员参演电影的平均分是多少,那我将来查的东西肯定是要查什么呀,查你的演员呗,对吧,查演员名字啊,我们正常写色文应该是先从这个from写起。对吧,先从from写起啊来,那我先from写起吧,从哪里去查呢?就从你的movie index呀,这还用想啊,对吧。
05:08
呃,这里面就没有提示了啊,同学们,这里面没有提示啊,从你的这个movie index去查好,那现在我们有will吗?我们现在好像没有V,那我可以把V给它去掉啊,现在暂时还没有will啊,那我们要求你的平均分的话呢,我们要去做分组,分组怎么分组呢?那你不就是按照act list的name的keyword。对吧,就是你之前是怎么写的,你现在还怎么写啊,就按照谁去分组,你还是按照谁去分组好,那我这个分好组以后的话,我就可以查了,查什么东西呢?我可以查你的,呃,演员的名字啊,Actor。Act list的name的keyword对吧,我把你这个演员呢都给它查出来,然后呢,还有一个就是什么呀,我要去做一个什么平均分啊,平均值那就是avg啊,后面写什么,写这个多半扣啊,这个没有提示,你就最好是复制一下啊,别写错了。
06:00
对吧,这不就是分好组以后,然后呢,按照你的这个多半扣,然后呢,我们去求一个什么平均值啊,那最后的话,你这个order order by,什么order by,那你写一下你要按照谁去做这个排序,排序的话呢,我们就给它取个别名好吗?这是我们的呃叫。DBS的avg,好吧,这不是豆瓣评分的一个什么平均值嘛,那我就什么auto瓣,然后呢豆瓣和平均值,然后呢,后面写个DC。这就把它写好了。对吧,其实你看一下整个整个这个so口跟我们之前写的Soo是一样子的,只不过它里面再去体现这个什么字段啊,或者什么的时候,你要去注意一下啊好来,那我们知情一下吧,看看行不行啊查一下。好看一下吧,是不是也是一样的呀,这个海清。08:05张译08:05张涵宇8.25分爱05:00。也能查出来吧?对吧?啊,但既然你这个使用了这个sole了,听完了同学们你用了这个sole了,那我们就是还是习惯于你给我返回的结果呢,是一个表格的一个形式,是不是,所以说呢,这个时候你可以这么去做啊问号format等于什么呀?T,我告诉你,你给我什么按照表格的形式返回来找一下。
07:11
对吧,你看这个东西是不是看起来就很直观了呀。你是哪一个演员对吧?然后你的评分是平均值是多少,你看这个海清8.5,张译8.5,张涵艺8.25,艾特硅谷5.0。跟我们以前写的是不是很像?对吧,啊说这个so呢,因为它呃,毕竟是有这个相应的标准的啊,说他你怎么做啊,或者是你这个做出来东西呢,长得都差不多。OK啊,所以说我们就呃,希望他以后也能够什么提供这个烧烤的支持啊,就是把这个烧烤的这个功能的丰富的什么更好一点啊,优化的更多一点,那我们就可以什么使用这个烧烤。OK吧啊来这是我们的这个写的啊,行呃,那么从这个目前的这个情况来看啊,就是跟我们这个平常写的这个SOHO没区别啊,但其实呢,它里面有一个比我们平常写的搜口呢,功能更强大的地方,什么呢?就是做分词匹配啊,就做这个分词匹配。
08:07
这是做的更好的地方啊,分子匹配,比如说啊,我们在这个正常写so的时候,我想查一下,就是呃,查一下你这个参演的这个电影,就是我想求每个。演员的什么这个平均参与的电影的什么平均平均平均分对吧,但是我要求啊,你的电影名字呢,必须得什么包含什么什么red c对吧,哎,包含什么red c,那你正常写so,你就写个like对吧,Like,然后前面是百分号,中间是什么red c,后面是百分号。对吧,你只能这么去写,但是在我们这个ES中的话呢,我是可以什么支持你把这个red和这个C呢拆开去做匹配的,就是我可以怎么做这个分词匹配,这个怎么写呢?啊,我们可以写一下,你看啊这么去写就是from它,然后我加个VV什么呢?你要做分词匹配,我们用到的是一个match这个函数啊,这个函数的功能就是来去实现这个分词匹配的。好卖是谁呢?你看一下,就是你的name。
09:00
对吧,Name就是你的这个电影的名字,对吧,然后呢。看明白了吧,啊来这个时候你再去查结果就不一样了,嗯,搞错了是吧,看看不错了啊呃,那这个这个不能有双引号了啊,诶是双引号问题,我看看啊,应该双引号问题啊,用单引号啊。对吧,这个查出来了,你看一下啊,这个8.58.58.55.0就没有8.25了,你发现没有,为什么没有8.25了呢?你看一下啊,因为8.25那个的电影叫湄公河行动,它里面是不包含的。所以说呢,我的结果里面就没有去统计他,那你看一下你的张译那部电影是张涵予演的对不对,那你看他的评分也是8.5了,说明什么,说明那个8.0的那部电影就没有被统计进来,因为他是不满足我的这个条件的。看到了吧,就这个功能是目前来讲,比你这个搜口中的那个什么like的功能更强大的,你like它只能是做模糊匹配,而我这个呢,是做的是分词匹配。
10:00
这不是一个量级的东西。好吧,啊,把这个简单给大家去介绍一下啊,你知道一下就行了啊,行,这是我们对搜的一个介绍啊。
我来说两句