00:00
OK啊呃,接下来我们再讲几个我们在平常这个查询中啊,用的比较多的排序,然后这个分页聚合,还有这个高亮,对吧?来先讲排序啊,排序这个比较简单啊。呃,排序的话,呃,直接写吧,排序啊,呃,那我看有没有,呃,他这也没有那个啥啊,那我直接写吧,就是。嗯,查询啊,查询这个所有电影啊,所有这个数据,然后呢,按照呃,豆瓣评分啊,豆瓣死扣啊这个倒序排序,倒序排啊行,那我需要把我的数据给他这个。还原一下啊,还原一下数据啊,我这个都删了没了是吧。还原一下数据啊。嗯,来,先把这个索引给它删了吧,啊,这里面数据我都不要了啊。好,重新建出来啊,建出来以后呢,我们把数据插进去啊,8.5这好像正好是倒叙的是吧,正好是倒叙的,呃,行吧,那我就改成升序吧。
01:03
对吧,来查一下啊。好,就现在我们正常查数据啊,Movie index,好,然后呢,这个下划线search啊,OK,就现在你正常查的话呢,你正好好像看了这个豆瓣评分8.5,然后呢8.0,然后呢5.0正好是倒序的是吧,那我改成升序吧,对吧,升序排序啊。行,这个怎么写呢啊,非常简单啊。非常简单,如果你要排序的话,就是直接shot就可以了,Shot shot就是排序啊同学们好,那你排的话,你按照谁排呢?比如说我们就按照这个豆瓣评分啊,豆瓣SK。然后了吧,按照豆瓣词扣排啊,然后呢,Order,就是你要升序还是降序,如果你是DC,那还是一个降序,降序的话,你看的还是8.5,然后呢,这个这个8.0,还有这个5.0对吧,那如果说你要升序,升序就是asc啊来走一下对吧,你看这个5.0,然后呢,这个8.0,然后这个8.5。
02:04
对吧,所以这个排序很简单啊,就是一个short的操作啊,啊,当然这是我们呃查所有数据,然后呢,做了一个short,那当然你也可能带上条件啊,比如说再来写一个啊。就是查询演员列表中啊,包含什么呀,包含还是这个包含这个张涵予吧,好吧,张涵宇的数据啊好,然后呢,按照什么,按照这个豆瓣评分啊,豆瓣四扣,然后呃,升序排序啊。对吧,那你这个怎么写呢?这就是get,然后呢还是这个movie index,然后呢,下划线search这里面进来以后呢,先写query啊query的话,这个是包含这个张涵宇,那我们就是直接,呃,其实可以什么直接去做这个match。对吧,因为你现在只是一个普通的一个匹配啊,那你可以直接写match也可以啊,或者说呢,直接写特也可以,如果说你有多个条件的情况下,那你可以去写这个布尔,对吧,布尔里面再去写这个feature。
03:08
能听懂吧啊,那我们还这么写吧啊,这个大家同意一点啊,好,这里面写的就是term,就只等判断啊,我要判断你这个包含这个张涵予的啊,那我们就什么写一下一个。找act list。的name的keyword啊,这个写张涵宇对吧?来先查啊,这个查到的是两条数据,你看都是包含这个张涵宇的啊,张涵宇,然后呢,这个也是张涵宇,但是呢,这个是8.0,然后这个是8.5啊,但我希望你是一个升序牌的,那你就什么在这个query啊,跟query评级的,然后写个shot对吧,Shout里面就写呗,写谁呀。就写这个叫做豆瓣扣啊,然后呢,写个asc这就可以,就你可以什么。跟这个调价过滤啊,综合去使用啊找一下。8.0,然后呢,8.5。对吧,啊,这个效果就出来了啊行,这是我们的排序啊。
04:02
理解吧,这个比较简单啊,好再往后啊呃,排序完了以后,再往后是这个分页啊,说一下这个分页查询。呃,什么叫这个分页查询呢?啊,这个先把这个概念给大家去说一下啊,这个分页查询其实我们这个平常在上网的过程中啊,你几乎天天都在用啊,你比如说我搜索一个张译,那它会给我列出来很多数据,那这个数据里面它在一页中的显示不全,它就会有这个效果。对吧,你可以翻到第二页,第三页,第四页,第五页第六页你可以去翻啊,同样比如说我们在这个电商里面也是一样的啊,比如说我搜索一个手机。对吧,手机然后呢,这个数据很多,那我一页呢也显示不全,那我在最后呢,会给你有一个分页的效果啊,往下往下往下往下。好在这有一个分页的效果,就说白了啊,我在一个页面中呢,诶,我能给你显示多少条数据,这个是会有会固定的啊,比如说我给你显示20条啊,30条啊,或者50条啊啊,但是可能我总结果的话是这个200条对吧,那你一页中你就显示不全,显示不全的话,我就什么给你做分页的显示,我多给你显示个几个页面。
05:10
你可以自自己去做这个翻页。理解吧,好,那也就意味着如果你要你要做这个效果的话,你就得什么按照,你就得按照我当前所要显示的这个页面去把这个对应的数据查出来,比如说你的第一个页面显示的是钱,就是零到50条数据啊,零到49吧啊,零到49条数据。对吧,然后呢,第二个页面,那应该就是50到什么50到这个99对不对。是不是,那你第三个页面应该就是什么,这个100到到149。是这样的吧,就你要什么,按照我前面给你的什么页面,然后呢,你给我去查对应的数据,那就说白了,如果我要做分页效果,我是不会一次性把你的数据都给你查出来的,我是按照你的页面呢。告诉我要查哪些数据的。听懂我的意思了吧,来,那我们就回来啊,所以说这个分页啊,我们就得有这么几个信息了啊,第一个就是你当前的页码。
06:06
对吧,当前页码你得告诉我你当前是第几页,比如说我们叫什么配置number。对吧,这是你要告诉我的,因为你不告诉我这个指标,不告诉我这个信息,我是没法给你查数据的,我哪知道给你查查什么数据啊,查第几页的数据啊。对吧,再一个。你不仅要知道当前页码,你还得知道每页显示的条数。每页的这个条数,就是我每一页给你显示多少条,你看啊,像这个像我刚刚看了啊,这个京东的话,它这个每一页应该是多少个呀。这个差不多50个吧,这个123444,然后乘以多少行啊多少列多少行,你自己去数数吧,好吧,反正这个好几十个吧。是不是40个啊,或者是几十个啊,你可以自己数一下啊,然后呢,百度的话,你也可以自己数一下,它每页给你显示多少个对吧,一个,然后呢,什么两个三个的,你可以自己数一下,就是它这个每页显示多少条呢?这也是有固定起来的,你要不固定,那我就不知道给你查多少条数据。
07:02
对吧,说这个每页条数你要固定起来,我们叫配。这两个就是我们在做分页的时候呢,需要诶拿到手的这个信息,你拿到这个信息以后,我才能够正常给你去查数据。好吧,这个大家应该在之前讲买S的时候应该有有讲过吧。啊来我们再来说一下啊,那我拿到这两个信息以后,那你说我怎么去查数据啊,对吧,我查哪些数据,查的数据是应该是多少呀。查的数据应该是多少啊同学们。这个怎么算呢?啊,这个我们是有一个公式的啊同学们,这个公式的话就是配置number减一乘以配置S,这是我这个分页的公式啊,比如说给你举个例子啊,假设啊,例如啊,我们每页啊,每页显示什么,显示两条数据啊,显示两条数据好,那我的第一页啊第一页。
08:04
第一页我要查的数据应该就是零一这两条数据对吧,我的第二页。第二页我要给你显示的数据应该就是二三对吧,然后呢,再举个例子啊,你的第三页。那我要给你显示出应该就是四五。对吧,那你算一下啊,你看啊,按照我们这个每页显示两条数据来讲的话呢,那你看看啊,我查的时候我怎么查呢,是不是就是我的二减一。二减一对吧,括起来括起来啊。好,然后呢,乘以什么呀,乘以。配置三乘以二,那这个二减一,呃,那啥第一页第一页是一减一是吧,来一减一,然后呢,乘以二,那这就是零呗,这个结果等于零,那等于零呢,我就算出来了,我要从你的。数据库里面从第零一条开始去调数据,调几条数据呢?调两条数据啊,因为你告诉我每一显示两条数据,那我就给你调两条数据,那不就是零和一吗?对吧,你看这个啊,这个算出来以后就是。
09:06
你的第二页减去一个一,然后呢,乘以一个二,好,那算出来就等于什么呀,是不是等于这个二了呀?二减一乘以二等于二嘛,那就说白了,我的第二页的数据是从你数据库的第二条数据去调的,调几条呢?调两条那不就是二和三吗?对吧,你是可以找出规律来的,你找出规律来以后呢,我们总结的结论就是我每一页从你数据库的哪个位置开始调数据,诶我是可以算得出来的,那我能够算得出来的话呢,你看啊,我们像这个买SOHO怎么写啊,你能买so后对吧?你买soq的分也不就是limit,然后呢,问号逗号问号吗。对吧,前面这个就是你要从哪条数据开始去调,后面就是你要调多少的数据。那你看一下,我们知道你的页码,知道你每页显示多少条,那我前面这个问号呢,我就通过这个公式给它算出来,后面这个问号呢,就是你的配置在。理解了吧,好,这是你的买,So,那我们的ES怎么做呢?啊,它也非常简单,你看了哈,Get还是这个movie index,然后呢,下划线search他怎么写的,它是两个,一个是from,一个是size。
10:15
啊,两个这个from就表示我要从第几条数据开始去调,然后这个是我要调多少数据。啊,那比如说现在我们总共就三条数据是吧,那我就什么调,每一页我调两条数据。好,那如果说我现在想看你的第一页,第一页我们算出来以后就是从零开始掉的,OK,那我就看它来走一下,你看一下就是。两条数据啊呃。这总共是三条数据啊,但是我调出来两条你看了哈,第一个是这个operation red sea,然后下面一个是operation美工river,好,那我想看第二页,第二页的话呢,我是从第二条数据开始调的,OK,那我就写个二。对吧,也是显示两条啊,但是呢,我的第二页的话呢,它就只有一条数据了,因为我总共三条数据嘛,你的呃,第一条和第二条是你的第一页,那我的第三条数据就是我的第二页的数据。
11:04
对吧,这就是我们这个分页的一个操作。好吧,啊,其实很简单啊,就是你将来啊,你在这个浏览器端,比如说我点个二,这个二呢,是我们用户去点的,我点一个二。这个呢,会给你的后台呢,去发送一个请求,就是告诉这个后台来,我要看第二页的数据了,那么后台呢,就会按照你传过去的这个页码二,然后呢,再按照我们每页显示多少条数据,这是固定的,比如说显示这个30条,那我就能够算出来,我这一次要从库里面给你调哪些数据出来,那就最后给你返还回来了。对吧,所以说以后我们在写分页的时候呢,前端一定会告诉你我要看第几页,然后这个至于这个每页显示多少条,这个你可以固定死,也可以什么支持这个前端去传,比如说有的页面中啊,有了这个网页中,它是支持这个效果的。就是在这个位置可能会显示一个什么呀,下拉列表让你去选哈,显示十条,显示20条,显示30条,显示40条,你可自己去选,那你选了十就表示我的每一页要看十条数据,你选了20,我就表示每页要显示20条数据,这个也会传到你的后台,就把你的页码,把你每页显示多少条都给你传到后台。
12:09
那如果说诶不让你去选,那就说明说明他就固定死了,我每页就显示30条,就显示四四十条,我是固定死的。对吧,那你固定死的话,你在后台算的时候,你就知道用哪个了呗。反正这个页码是一定要有你这个前端传到后台的,你要不传到后台,我哪知道你要看第几条数据啊。对吧,你不管京东里面也好,你点三的时候就告诉他我要看第三页,你淘宝里面也是一样的啊,我点点七的时候告诉他我要看第七页。明白我的意思了吧,啊,就这样的啊,OK。行,这是我们的分页操作。OK吧,啊呃。停一下啊。
我来说两句