00:00
好,呃,再往后啊,我们来看一下这个吧,这个是一个交易分析啊,交易分析里面的一个什么,就是明细的统计啊,呃,这个的话我们上午也看到了啊,它会发送这么一个请求,把它拿过来。呃,我们直接写到我们这个代码中,然后呢,去分析它啊,找到我们的controller,然后再去写一个方法吧。这也是交易分析的啊,交易分析的一个这个明细啊。好放到这你看了哈,呃,我们将来发送的首首先啊,你有一个日期,然后呢,有一个还是你搜索的关键词,还有就是你的这个叫什么呀,叫这个分页的操作。对吧,就是这个里面就没有统计了啊,同学们就没有这个聚合了,就直接什么查明细就可以了,所以这个查询应该是更简单了。OK吧,那最后给他返回什么东西呢?最后返回的是这个东西哈,呃,它是一套这个就是明细的数据啊,我们把它这个拿出来。好拿出来以后呢,你可以放到这里面去看一下啊,就是我们找一个那个Jason格式化,你看一下啊BJA。
01:06
好呃,点过来放到这,你看一下啊,格式化一下,整体来看啊,就是两个字段,一个是你的total,就说白了我们总共有多少条数据,再一个是你的detail detail里面就是你的一个一个的对象啊,你看每一个都是一个明细数据,每一个都是一个明细数据。对吧,所以最后的话,我们给大家返回的结果应该是这么一个,应该这么一个格式啊,就整个加生里面有两个,一个是total,一个是detail。Total呢,对应的是一个数字,Detail的话呢,它是一个数组,数组里面我们放的又是什么呀,又是一个一个的对象,能看明白吧,同学们哎,又是一个的对象啊好了,那接下来我们就可以把这个事情呢跟他去做一做了啊首先。我们把这个明白以后呢,先把这个整个流程还是先给它什么搭起来啊,写个方法,呃,那我们最终返回什么结果呀,返回的结果的话,你看一下啊,它是一个,呃,这是一个什么对象啊。这是一个摘绳对吧,嗯,稍等啊。
02:01
诶,跑哪了,在这。你看啊,这个还是一个整个看的话,还是一个战胜对象,对不对,这个战胜对象中的话呢,我们包含一个KV,应该是两个KV吧,这两个KV的话,我觉得我可以拿这个map去做封装是不是?对吧。就这个可以拿map做封装,或者说拿什么拿你的那个什么内value做封装,但是它整个来看,它是一个摘对象啊,所以说我把整个给它封装成一个map吧,那些吧,然后map里面的话呢,嗯。Map里面啊,那那map里面我再放一个,这个是一个普通的一个K,然后这个又是一个又是一个map,这是一个什么?这是一个集合对吧,集合中放的又是一个map对不对?那这个结构好像比较复杂哈,比较复杂的话,那我就简单一点吧,直接这么写了。这么写啊,就是直接返回一个map map里面的key就是字符串value object,你想放啥放啥我不管。对吧,这不就好了吗,是不是。啊,或者说你可以这么去设计一下啊,看看怎么去返回都可以啊好来,上面是一个get mapping啊好get mapping的话,我们这里面写的就是detail by item啊把它拿过来。
03:10
好,这里面是你的参数,挨个写吧,Data,然后呢,Item name,好,然后后面是这个的一个配置number,然后呢,In的一个配置size。好,呃,我们分别通过这个注解给它标识一下啊,这是一个at request,好,写一个data at request,然后这个写上一个item name,好,呃,这个一个request prime的一个叫page number,好,这个是一个叫配置side。能看到吧,好,这样就可以了啊呃,但这个地方需要给他多说两句啊,多说两句你看一下啊呃,我们正常去访问这个页面的时候,我们访问过来以后,这里面你说我们正常啊,我第一次进到这个页面中的时候,我显示第几页数据啊,同学们,我肯定显示的是你的第一页数据吧,对吧,那如果说诶你有多页的话,那我可以点第二页,第三页,第四页就说白了,你每次要给我传一个页码过去,是不是以及你的每一页呢,显示多少的数据啊,你看像我们当前这个设计的话呢,我的每一页显示多少条数据,其实是没有这个功能的,那就说白了,我们的这个配置赛呢,应该是写死的。
04:26
你能听懂我的意思吧,这个配size应该它这个每次传递的时候,就从你这个页面中传的时候应该是写死的,就像这个纸的啊,它写死的就是呃,就是这个20条数据吧。对吧?啊,但是呢,我们在设计方法的时候呢,你就要考虑到这个值呢,它有可能会给你传,有可能不传,比如说这个我显示第几页,我不不给你传的时候。那你应该怎么办,我这个不给你传的时候,那你应该怎么办。对吧,你要去想到这个事情啊,好,那给大家说一下,如果不传的话呢,但是我们是写了,我要去获取,那就会有问题,所以说我们可以这么去做啊,其实这个注解还能这么玩,你看了哈,我把它复制给一个value,然后后面的话,我写个这个东西,我叫什么叫做require等于false,这个表示什么意思,这个表示就是这个参数呢,是可有可无的。
05:10
啊,我不是必须有的,你看这个require是必须的意思,但是force就是什么不是必须有的,好,那如果不是必须有的话,我就得考虑,你有的时候我就给你获取,如果你没有的时候,我可以给你一个默认值,比如说呢,就显示第一页啊,给成一个组串。就说白了,你不给我传页码的时候,就是你这个请求中哈,你没有传这个页码的时候,那我就默认给你显示,第一如果你传了页码了,比如说我传了二,OK,那我就这个地方就会获取到二,我就不用这个默认值了,同样啊,它也是一个道理啊,我们把这个处理一下,就是大家要知道一下,呃,它这个分页的时候呢,它有时候会给你传,有时候不给你传啊好,然后呢,这个default value,比如说他默认就给他个20页吧。对吧,啊,这么写就会什么更保险一点啊行,把这个说明白,说明白以后呢,接下来我们再来说。
06:01
呃,那接下来我们就调用我们的这个publisher,这个service,然后呢,去做一个查询,比如说do啊,还是这个方法吧,好吧,Detail by item行吧,那我就挨个传了啊,Data传过去,Item name传过去,然后这个配置number传过去,嗯,错了啊,好,然后配置size传过去,好吧,最后给我返回一个结果啊,这个返回的结果的话呢,呃,就这个结果呗。对吧,就这个结果啊,这是我的这个results,好,那我最后把这个返回一下。啊,错了啊对吧,这就可以了呀。然后了吧,来接下来把这个方法创建出来啊呃,这是我们的接口,接口的话呢,再到这个实像类中创建一下啊,实像类中来把方法创建出来。好呃,那这个创建出来以后,呃,我看一下啊,方法呢,放到这在这啊行,我把它放到最上面啊,放到最上面。
07:07
可以吧?这不对啊。啊,对着的啊,对着的看错了啊来这是呃,这是个注释啊,这是这个明细查询啊,这是那个交易分析的这个明细啊,交易分析的这个明细查询啊。好把这个去掉啊,这个我们不用解释了啊,大家都知道什么意思啊,好,那这里面写的话,我们正常还是一样的啊,就是直接什么publish这个map。讲什么呀,我们就叫什么search,呃,Detail吧,对吧,查询明细啊,BY什么BY这个item啊,这样就可以了啊,好,还是把这个data呀,把这个什么item name传过去,把这个什么配置number传过去,然后把这个配置size传过去,对吧?啊,你把它传过去啊好了,呃,那我们就最后返回一个结果啊,返回一个什么结果呢?嗯。就这个结果呗。对吧,你把结果给我封装好啊,封装好以后我给你返还回去啊,好,这是一个search的吧,查询的一个结果。
08:05
好,那我最后把这个结果给他返回回去,这不就可以了吗?对吧?好,那接下来呢,把这个方法创建出来,那就这个套路啊,你这个现在应该都知道怎么写了吧,来到这个map里面啊,把它这个实现出来。好实现出来啊,行这个方法我们拿到上面啊,还是拿到最上面去写啊。呃,放到放到放到这。可以吧,放在这啊行呃,那我们这个就搭好了啊,搭好以后我们接下来就来去写一写啊,这个怎么写啊。啊。注意啊,还是从这个service这个角度来说起啊,从这个service来说起,呃,这个地方我们是要去查,然后呢,你的日期,你的这个关键字都传过去,但这两个东西啊,我觉得你就别直接去传了,这两个东西你干嘛呢?你帮我先做一个换算,因为我们在这个DSL这个层面啊,我们查分页的话,我们要用的是一个from,然后用的是一个size。
09:06
对吧,我用是这两个东西,那你就把这两个东西给我传到后面,你就别让我到后面还要自己去算了,算的东西你最好就放到你的这个什么业务处理中,我后面我就什么直接去拿你的这个传过来,值直接去查的,对吧,这样的话,你这个分工更加的明确啊,所以说呢,我们尽可能这样去做啊,就是我们先什么先计算,计算这个就是分页啊,开始位置啊,啊这个怎么算呢?很简单呀,我们讲过啊,就是配置,就是什么你这个配置number。对吧,减一,然后呢,括起来。对吧,括起来,然后什么乘以什么呀,乘以这个配置size,好,这是我们的。叫什么叫这个,诶写了个啥呀,这个是。好,这是什么呀,这是我们的这个叫做from对吧,那我先把你这个from给你算出来,那我算出来以后,这地方我就什么传一个from过去就可以了。
10:00
对不对,好,那size的话呢,就是直接你就是你的配置size就可以了,对不对啊,所以这样写是比较合适的。OK吧,行,那我们再来去改啊,这里我就写写一个叫做from啊,从哪查,那这里面也是一个from啊,能理解吧,啊就是你尽可能不要让你的这个就是map层呢,去做过多的计算啊,它就是帮你查数据的。OK吧,好,那把这个写好以后,那下面我们就可以去查了啊,那这个查数据的话,还是先写DSL呗,对吧,看看这个DSL怎么写啊,呃,这个查的是明细,但是呢,你看啊,他虽然说是明细,但是他也没有要所有的这个字段哈,他要了这么几个字段。呃,他要了这么几个字段,你看啊。截个图啊,同学们截个图。对吧,我就要这么几个字段,别的字段我不要,那不要的情况下的话,我们在查的时候就不必要都写出来啊,那我就什么可以去写一下,你看看哈,来查询明细啊,Get一下怎么样,然后还是这个order哈,嗯,Order。
11:01
呃,就29吧。好行,如果你这么查的话呢,那我确实是什么都把这个查出来,但是我不要这么多哈,不要这么多,那我要的是什么呀,同学们。我要的是具体的字段,那我就写一个什么,写一个叫做呃下划线S啊对吧,这里面写什么呀,这里面你就可以写了啊,这里面应该要写很多,写很多的话呢,应该是一个数组对吧?嗯,它里面再去写吧。我看看啊,不能这么写是吗?这么写啊,对吧,这样来去写啊,比如说我要什么,要这个time,好吧,你要什么就写什么啊,第二个是这个叫order price。好,再一个是这个叫做pro name。好,再来写啊呃,然后呢,是这个SQ,好,再一个是这个SQ number。好,下一个是这个叫什么,Total amount total amount,好,再来写,然后下一个是这个叫user age,好,下一个是这个user g行。
12:08
对吧,你看你这么写的话,你再去查这里面是不是只给你返回你想要的东西了呀。就没有那么多了哈。然后了吧,好来,这是我们要查的字段啊,当然你说你查的时候,你你这些东西你都得用上吧,你的这个item name得用上吧,同学们好来用一下啊,怎么写啊,那不就还是一个query吗?对吧?Query query里面的话写什么呀?还是一个match吧,同学们,诶,我们做的是这个分词查询啊match match里面的话你写的是什么写的你的字段,字段是SQ name,好,这里面怎么写呢?我们把它干掉,干掉以后写个大括号,然后呢,现在再写个query,这里面写的就是你的,比如说小米手机对吧?然后呢,注意啊,再写一个什么呀,Operator啊,你不写他就不对了。对吧,来再找你看吧,总共七条数据,你看这里面就是你的全能小米手机的什么明细。是不是?然后了吧,这都是明细。
13:02
O,不OK啊,这个是明细啊,行,那这个明细我们拿到手了,然后下面是分页,分页怎么做呢?分页这么去做,那你就写呗,这个from对吧,从哪查。然后呢,这个size差多少,这不搞定了吗?呃,我们这个数据比较少,我们这个才几条数据啊,这个才七条数据是吧,总共才七条数据啊,所以说我们这个呃,它这个页面中是写死的啊,他这个每次都查这个20条数据,所以说我们最后我们是呃看不到那个分页效果啊,除非说你再去多跑一点数据啊,多跑一点数据才可以啊,一会儿我们可以呃这个这个试着多去跑一些数据啊。好吧,一会我们这个多跑一些数据试试啊行嗯,来吧,那你看这样来查的话呢,比如说我们就假设吧,没显示两条,你看你查一下。这不明显是两条吗?对吧,第二页的话从第二条开始来走一下,你看就不一样了吧。是不是啊行,那你这个有了以后,那就拿过来呗,那还等啥呀。
14:00
拿过来写代码。好吧,写代码来,呃,代码怎么写呢?代码也很简单啊,直接什么还是先去拼你的index name。啊,先拼这个index name好等于什么呀,等于这个叫做order的加上一个data。对吧。这就可以了啊,然后呢,下面就是查呗,呃,client.search好,那search的时候呢,这里面我们需要一个search request,嗯,这我都想去复制一下啊,每次都写写了多少次了呀。把这拿过来放进去好,这里面的话search request。然后呢,Request default,这是我们的结果,好有异常处理异常啊。好,异常的处理跟下面一样啊,我还是再复制一下。好吧,行吧,那接下来就什么接着往后写呗,来,我们需要一个呃,Request里面需要有个什么source source里面需要一个search source build,对吧,用上一个search source build。
15:08
好,把它拿过来放进去,那放进去了以后呢,接下来such source build就开始写啊,首先呃,我们先写这个S吧,好吧,它叫什么?它叫这个fetch s,那你看啊,Fetch的时候是不是可以给上一个字符串的数组啊,排除什么对吧,包含什么啊,那我就什么fetch fetch s啊,那我用上一个字符串的数组。呃,字符串的一个数轴啊,这么来去用啊,后面不排除,那就是不排除他写个空就可以了啊行,这里面写什么东西,这里面就是你要查哪些字段啊,那这些字段的话,肯定我不可能再给你写一遍了啊,刚刚刚写了一遍,那我直接复制过来不就搞定了吗?对吧。这时候查的字段啊,OK,行,然后接下来啊,这是我们要查的字段啊,这个明细的字段啊,明细字段OK,然后接下来呢,是什么呀。
16:01
接下来是你的query哈,那我们就写个such house build,这这个query啊,Query的话,我们需要一个query builders啊,然后呢,去构建一个叫做什么query啊,这是一个啥query啊,这是一个match query对吧。来query好,这里面名字叫什么呀?名字就是你的SQ name,好这个具体的值呢,值就是你的这个item name对吧,然后后面是你的这个operator,再来个什么operator的一个什么and操作,这不就搞定了吗。对不对啊,应该都写的很熟了啊。好放进去行,那就搞定啊,搞定以后这个query有了,有了以后下面就是分页啊,这是我们的这个叫什么,这个叫做query啊。下面是你的分页,分页的话就是from,然后呢。对吧,好,这个from的话就是such.from from怎么写呀,那你都计算好了,直接写呗,From。是不是size呢?Such build2size,然后呢,直接把这个什么配置size传过去,搞定分也搞定了。
17:06
对吧。好,那你把这个查完以后,来接下来我们下面就可以处理结果了啊,结果怎么处理啊,拿过来结果这边的结果吗?结果的话我们是要一个总数对吧?要一个总数,要一个明细哈,把这个拿过来。好,你看了哈,呃,要一个总数,总数的话,我们就直接这样来处理了啊,这个such response,总数是在你的hit里面对吧,在这个里面啊,Hit里面,然后呢,再去get一个total total hit,然后它里面的一个value就是我的总数对吧?这就是我的total能听懂啊,这是的total啊,然后下面是明细,明细的话就是research response,要get hit,然后再去get hit。这里面就是我的明细了,对吧,这叫search hit,好,那我去迭代一下,迭代一下这个什么,呃,Search hits加for。好,那我的每一个什么,Search hit。
18:02
Get什么呀?点它应该什么get source了,Get source,那你看啊,呃,我们既然要封装这些东西,如果你自己封装的话,也是把它封装成一个map或者什么,封装成一个具体的对象,那你看它里面既然有这个什么get source直接s map了,那我就直接用map得了呗,还省得你去封装。对吧,这是我的每一个map。理解吧,那我就拿到每个明细了呀,好,那么这个东西我们需要干嘛的啊,这个是我们需要把它完整的封装到一个集合中的啊,你看这个最后的结果啊,同学们,最后的结果你也要能够看得懂啊,最后我们要的是这个结果。对吧,放大到一个什么map中,然后呢,再把它放到一个什么集合中,这是一个数组啊,是不是,所以我要这么去做啊,来怎么做呢。我们最后呢,给他一个我想想啊,嗯,那我在处理结果的时候吧,在这个循环之前啊,我们用上一个a list,好,这个list里面我放什么东西呢?我放的是一个map map里面放的是一个字符串,放的是一个object对吧。
19:07
好,这是我的,叫做SS麦斯,OK,那我每拿出来一个,我就S麦斯。麦斯,爱的。呃。把这个s map给他艾特进去搞定,行,那我整个这个循环结束以后,来我去处理什么最终结果,最终结果的话,我们要的是这个结构是吧,那这个结构我提前定义出来,用上一个哈希map好字符串,然后呢这个object。OK,然后呢,点VR接收回来,好,这是我们的叫呃,叫这个result吧,Su写错了啊,好,这是result啊,然后呢,你拿上它。注意最终结果怎么封装的,那不就是我们等下去put put啥东西啊,你看啊,人家最终结果中我们要什么东西啊,有一个total对吧,那我就写个total total是我上面算出来的,就在这个位置,那我把total拿过来,这就可以了,对吧?还有一个什么,还有一个叫做。
20:17
好叫什么呀,它叫做detail,那我写个detail后面写什么呀,后面不就是一个集合嘛,集合就是我刚刚准备好的这个集合啊,把这个source maps给大家拿过来放到这,这不就搞定了吗?对吧。好,那这个整个处理完成以后呢,来一下这个results搞定,好,那这个下面的话也是一样的啊,Return一下results搞定。这就写好了呀。好来,写好以后测试呗。停一下,直接撤啊。好,提起来了啊,来我们测一下,呃,测的话我们需要把这个请求拿过来啊,请求是这个请求啊。
21:06
好,那我放到这,呃,放到这以后我们来看一下啊,这个改一下2022年的,嗯,0203吧,零三杠二九啊对吧,没三个二九啊,然后呢,呃,诶多了一个回车了,怎么。好零三杠二九,然后呢,呃,小米手机啊,这个是显示第一页,然后每页显示多少条呢,我们就少一点吧,比如说每页显示这个三条好来走。诶,结果还行啊,都回来了,你看啊,总条数是七条,没毛病啊,然后呢,三条数据你看啊,这是一条对吧,这是一条,这是一条就三条。对不对啊,这样这样就可以了啊行,那我们就测通了啊,测通以后的话呢,这个结果呢,其实就可以直接对接到我的页面中了啊,你看一下直接回到这里面,回到你的页面中,好,那我们把这个写好来刷新。不报错了吧,看结果。就有了。
22:01
对吧,这是你的商品的什么SQ,这是你的年龄啊,你的性别,你的价格,你的购买个数等等一些,这都都都有了。好吧,这样,那这个效果其实就已经呃很不错了啊呃,那么它总共七条数据,这也有啊,只不过我们现在只有一页啊,因为什么呢?因为它这个默认这个每一页显示20条数据,那我就只有七条,那就只能是显示到一页里面。对不对。好吧,这就把它做好了啊,行呃。停一下吧。
我来说两句