00:01
好,那接下来我们不就可以去写了吗?那你要写的话,你就得什么真正的从你的ES中去查数据了啊,首你要保证你的这个ES啥都得启动起来啊,我这还没起是吧,那我这个先启一下吧,呃,启一下一会要用啊,我把这个都起起来啊。每次都忘了起是吧。好,ES起一下啊呃,这个大家可能会感觉稍微有点卡哈,因为我这个同事起这么多东西,它会有一点点卡啊,然后red-serve买red,然后呢,1018啊,然后呢,这com好我都记起来啊,O BT module Maxwell,然后呢b Maxwell pro。嗯。呃。
01:03
忘写个东西哈,忘写那个刚刚DEMO了是吧。停下他啊,停下塔。呃,这个是起来了吗?我看一下啊。K掉啊。嗯,还杀不掉他了。这个应该是没启动过,我中途给停掉了哈,我把它跳一下啊。好,现在没了啊,我重新起一下啊,刚刚忘了写那个DEMO了啊,好行吧,现在我们该起的都起来了啊,起来以后接下来我们就可以去写了啊来这段我就放心大家去写吧,那你看啊,现在我们要去查你的ES,查ES的话,我们会有这个需要有ES的客户端工具,对不对?好,那个客户端工具,客户端的这个对象叫什么来着,同学们记不记得。记不记得我们叫rest high client?
02:00
对吧,好,以前我们怎么出去创建这个对象的呀。我们需要什么呀,自己去创建对象对不对,然后自己指定什么ES的地址等等一些,你需要什么自己去做,但是我告诉你现在呢,不需要了。因为我的spring boot,它已经能够正常的去整合你的什么呀,整合你的这个ES了啊,看一下我是不是已经把这个ES的这个什么start给他加进来了吧,所以说你客户端的对象,我的spoon也帮你去做了,因此这个地方我们只需要这么去做啊,同学们怎么做呢?你不是想要一个这个对象吗?好,那我在上面把这个声明好,声明好以后呢,直接一个表的就搞定了。理解吧。就是他能够帮助你创建这个对象,然后给你注入进来,但现在还差一个事儿,差什么事呢?那你说人家帮你创建这个对象,毕竟是一个客户端对象,他得连你的什么ES,那他知道你的ES在哪吗?他现在不知道,所以说我们需要回到你的配置文件中啊,来找到你的配置文件,这个关一下啊,太多了啊。
03:04
好,来我们呃,找到你的这个配置文件啊,在这个配置文件中我们加一个东西就是ES的啊,你找一下吧,叫呃,Elastic search,然后呢,它有一个嗯。它有一个那个那个链接哈。找一下在哪啊。呃,Data,哎。我看看是哪个来着啊呃,是这个吗。Ending point。那个配置我得找一下,我忘了叫什么名字了啊,应该是这个我看一下吧啊,这个别写错了啊,我我看一下啊,别写错啊呃,看一下啊,不要写错啊,嗯,后端代码啊。往下往下啊往下。嗯。叫UI对吧。
04:00
SP uris啊这个啊这个对吧,就这个啊看一下啊,这个就是指定什么,指定你这个ES的那个什么连接啊,那我们怎么指定呢?你看啊,它这个提示的啊,讲这个什么U,你看是不是就是写的HTP,然后你的呃地址,然后你的端口号啊,对吧,说什么通过什么command可以什么去写多个啊那我们就写一下吧。这个uri啊来等于什么呀,我们就写个HTP冒号双斜线,我们是哈杜102,然后呢9200,你可以再写一个啊。对吧,比如说这个哈图103啊9200这样就可以了,对吧,你把这个地址往这一写,它会自动去读啊,那么他读到这个地址以后呢,它就能够正常的把这个客户端工具给你,客户端对象给你创建出来了,我们就不需要再自己去创建了。理解吧,那我把这个写的简单一点啊E好吧,你看这个多多好用啊,都不需要你自己去创建。OK啊行,那这个有了以后呢,接下来我们就可以去查了啊,比如说我们想去查这个查好的东西,首先我们第一个我们要查这个,查这个日活总数啊,那我把这个方法呢,写成一个,把这个查询写成一个方法好吧。
05:03
我写到这个,写到下面吧,好,那你给我返回一个总数,总数的话我也是浪类型的啊,我们叫做search DA total。OK,呃,那你需要把什么呀,把这个东西给我传过来,把这TD传过来,因为我得知道你的日期啊,T传过来啊,TD传过来啊。好,那你说我们查的话呢,你要查ES了,那你不得什么先去写你的DSL嘛,把你的DSL写出来以后,你再去查,对吧,再去写代码啊来说是接下来我们回到这个这里面写这个DSL啊,那我们先访问一下你的K班的啊,嗯,这个访问个啥呀,这个。不要他了啊。来给班的啊。好,来过来过来以后呢,我们去写了啊,你说查日活总数,日活总数不就是从你的这个索引中把这个数据给它调出来嘛,那我们要这个dau,那我肯定查的是这个对吧?查哪天呢?这个日期不也给你传过来了嘛,这TD不就是我要查的那个天数嘛,对吧?比如说我们就拿这个来举例子吧,你看这里面是有的吧,是不是,那我拿它来举例子啊,拿它来举例子。
06:09
好,那你看一下啊,这个我想查啥呀,同学们。这个我查的话,不就是把你这个所有的数据给你调出来了吗?但是我不要数据,我是不是只要这个东西啊。对吧,所以说我可以这么去写啊,我在它里面呢,写上写写一个什么东西啊,写一个size。零就OK了,我不要明细对吧,走你看一下,我就要这个东西,我不要明细。是不是很简单啊,同学们啊,这就可以这么把它查出来了啊,说来我们把它拿过来,这就是查我们的这个叫做。好,拿过来啊,定到这,定到这以后我们来去写一下啊,这就是查什么呀,查我们的这个总数啊,好,那这个总数怎么写呢?这里面你得知道你的索引是什么吧,好,那我的索引的话,我们前面都一样,只有后面这个日期不一样啊,所以我可以这么去写啊,你看一下我在上面定义一个叫字符串类型的叫index name的一个就是前缀啊等于什么呀,我就把这个拿过来,我们是叫这个gmail dau。
07:12
Info,然后呢,下划线1018。对吧,然后呢,再来个下划线吧,好,这是我的一个前缀,OK,那我们每次查的时候,你给我传过来一个日期,那我就可以定义了啊,我的index的name就等于你的index加上我的TD。这个索引迷就有了吧,索引名有了以后,接下来我们就去查了,就是ES我要去什么去做search操作了。好,那我search的时候,这里面我们需要一个search request,那我用上一个search request。好,呃,这一次我们写的是Java代码啊,同学们。因为我们接口发布嘛,你写的Java代码啊,然后这里面我们要一个request加default啊,都是一样的。好吧,然后你看Java代码就比较麻烦,它会有这个异常哈,那么把这个异常给他这个拆开去一下啊。
08:01
呃,拆开的话,我想想啊,这么写吧,嗯,就是。我单独去catch一个异常啊,这个是一个Le异常,如果你是一个Le常的话呢,那我就直接,呃,Le异常的话直接去搜出来啊exception啊,就告诉他这个查询ES这个失败啊,失败的原因我就不管了,好吧,好,那么其实这里面还有另外一个异常啊,这个异常我需要什么单独去处理一下。Catch一个啊。好,这个开除个谁呢啊,我们开出个这个异常,它叫做呃,Such status exception。啊,叫ESE啊,呃,这是个什么异常,这是你的E状态的一个异常啊,这里面我们单独去处理一个异常,这个异常叫做ESE.get status,嗯,Get这个status。诶。它叫做什么呀,呃。
09:05
啊,叫这个status啊,来叫这个好,如果说我们判断一下啊,如果说这个东西是等于,等于它叫做rest status里面有一个not found啊,这是什么异常啊,如果说你抛的是这个异常,并且呢,它里面一个状态是等于这个的,这个是表示你的索引不存在,你能听懂吧?那你说我索引不存在的话,比如说啊,我在你的页面中啊,你看啊我们那个效果,我这里面我会写一个日期,比如说我查的这个日期,你是没有这个索引的,那你说我需要给你报错吗?我就不需要给你报错,我只要不显示东西不就好了吗?对吧,那如果不显示东西的话呢,我就给你返回一个空的东西,说这地方你就不能把异常给他抛出去了,对吧?如果是这种情况的话,那我就什么给他什么打印一个东西吧,比如说我们打个日志好吧,那打日志的话,咱们打日志呢,非常简单,我们在上面直接来上一个slf fourg就可以了。看到了吧,这个是SP对你日志的一个整合啊,那这样我们就可以什么直接在它里面用一个东西叫这个叫log。
10:07
看到了吧,这就是给你带过来的东西啊,Log点,比如说我们叫警告一下,警告什么呢?就是你的当前的索引名字啊,就是index name,好加上什么呀,加上这个不存在。就OK了,对吧,我就不给你把异常抛出去了,那如果你是别的异常,那我就不管了,我就什么查询一下是失败了。OK吧,行,就这么去写啊,好,然后接下来往后写,那么这里面我们需要一个search request里面我们需要一个这个source source里面我们要一个search source build,对吧?来,我们再去用好用上一个search source build。OK,然后呢,Search build。呃,把它拿过来放进去好呃,我们的这个index name的话,我就还是放到这吧,好吧,Index name放到这就可以了啊行,这里面的话呢,我们写什么呀,我们是直接写一个size就行了呀,Such build.size我就是零就完事了,就说白了,我不要明细哈,对不对。
11:07
就是我不要明细啊,不要明细这不就完了吗。能记得吧,我是不要明细的啊行,那这就查好了,查好以后的话,你看一下我们就返回一个结果来,把这个结果呢给他接收回来在这啊好,这是我的那个结果,好,这个结果里面的话呢,我们拿一下这个结果哈,结果不就这个效果吗。对吧,把它拿过来来放到这,放到这以后我们接着去写啊,那这个结果里面我们怎么处理呢?那不就search response,点你直接get你的hit hit里面是不是有一个total啊,同学们对吧?点什么呀,Get total,它叫total hits,然后呢,再去直接点value不就出来了吗?对吧,这就是我的叫做呃,DA total。Toss。然后了吧。好,那我调出来以后呢,最后什么直接DA total就完事了,好,那如果说你这个你看了哈,如果说你这个抛异常了。
12:04
对吧,如果说你是这个异常,你看了啊,我是catch到什么这个异常的,那我最后就什么给你成一个零,就是没有数据好吧,这个浪浪里面的话,我就成一个零就行了啊呃,诶。我看看啊,这是写到哪了呀,嗯。成个空塔,他是不是,呃,我看看啊,这什么错呀。呃,Unreachable statement哪里写错了,看看啊。嗯。呃,不让我吗,一个浪。来我看一下啊。呃,如果我正常去查的话,那我就什么直接把他这个return回去了啊,如果说这个,呃,他这个开始这个异常开始了这个异常,那我就什么打一个警告,警告的话呢,这里面还得return一个啊,Return一个0L对吧,就是没有任何东西,然后这地方我就什么直接return一个,呃,Return now吧。
13:07
诶不行吗?这个为什么不让。不让我写呢,这个东西catch。嗯,Catch catch异常,我把这个异常给他打出去。啊,这个不用打了是吧,我都入了我还打啥呀,对吧,直接什么重击就完事了啊嗯,对吧,这样就好了啊,就是不用你都你都了,你就什么别打了,你要打的话,现在你要打的话在上面先打对吧?在上面先打啊,我刚刚这个没看到啊,在上面先打,然后再去是一个。好吧,行,呃,那也别闹了吧,还是个零吧,好吧,还是个零吧。还是个零吧,好吧,还是个零啊,那这个地方我其实呃,其实不写也行啊,反正他开迟到以后我都会往下走,对吧,这样就可以了啊行就是如果你这个没有这个查询不到,或者什么查询失败,我都给你个零就完事了,好吧,OK。
14:01
呃,那这样的话,我们就得到这个结果了,得到这个结果以后呢,我们把这个改一改啊,那这个地方的话,我就什么不用再去写它了哈,我就什么直接这样啊,我就search什么呀,叫DA total,把TD传过去,这就是我的DA total。明白了吧,然后这里面我就是直接把这个DA total呢给它拿过来放到这OK吧,这就写好了啊来写好以后呢,我们来做一个测试啊,我们把这个重新启动一下,就是写一步,你撤一步,写一步撤一步啊走一下。好,呃,这个启动起来以后呢,接下来我们来看一下,比如说我们现在就查这个东西,嗯。查谁呢,你看了哈,呃,这个3月30号的应该是没有啊,我们三月29的是有的,对吧,三月29。好,来走。行,你看175查到了吧。我们刚刚查的是不是也是175啊,对吧,这个没毛病的啊,那比如说呢,我们查一个不存在的啊,比如说查一个3月30号的,对吧,3月30号的走。
15:04
你看这就是个零了,而且的话,你看后台啊,后台是给你什么打了一个警告的吧,应该你看这不是一个警告嘛,这是我自己打的啊,自己打的,你看是不是谁谁谁不存在啊。对吧,这样的话你的代码就会报就不会报错啊行,那我们下面这个数据呢,现在还是死的啊,那我们稍后把这个改成活的不就好了吗。对吧,就相当于我们这个,诶总数已经什么会查了,好吧,行来听一下。
我来说两句