00:00
我们首先来看一下电影推荐系统设计这一部分主要内容有哪些?呃,我们这个PPT里边大家会看到啊,就是长的样子大概大概就是这个样子啊,呃,是比较简单的一个整个一个系统,那我们要要做的就是网站本身的代码都已经实现了,都已经写好了,到时候也会给大家,那我们要做的是跟推荐相关的内容对不对?那我们其实就是把推荐这一部分算法程序都做完之后,对应的推荐结果是不是应该写到相应的数据库里边啊。哎,写进去之后,我们的业务这个电影网站是不是可以从数据库里面读出来,推荐列表可以展示出来了,所以我们最后可能要的是这样的一个效果,呃,当然了,我们在在这个一开始给大家介绍呢,就首先给大家介绍一下项目框架,然后给大家分析一下数据源,我们到底有哪些数据,对吧?然后接下来就给大家分模块去讲解了,大家看我们分了哪几个模块呢?呃,主要其实是这样的四个模块,就一个是统计,基于统计的推荐,那它其实也是一个离线推荐对不对?呃,然后第二部分也是离线的,这部分离线推荐模块其实主要就是基于盈运模型其同过率的推荐了,对吧?啊,这个就是我们真正的个性化推荐,大家会想到我们是不是要分解成两个特征矩阵,然后做一个预测分啊,因为我们已经有评分,对不对,我们就做这件事情,然后下面还有一个实时推荐,实时推荐这个相对来讲就可能会复杂一点。
01:38
大家会想到实时推荐是做什么的,就是一个用户,他相当于有一个行为,比方说他给一个电影,我们这里都是评分嘛,给一个电影做了一个评分,新看了一部电影做了一个新的评分,我们是要根据他这个行为,要给他推出,实时的给他推出你现在有可能对什么东西感兴趣,对吧?因为大家想到用户的这个兴趣有可能是随时变化的,呃,电商也是一样,你不同的时间段可能感兴趣的事东西不一样,对吧?你不可能就是说我以前买了一个电脑,我就永远都对电脑感兴趣,这不可能是这样的事情,所以我们这里的实时推荐更多的就是要处理这样的一个问题,最后还有一部分是基于内容的推荐,那这一部分呢,就相对我们实现会比较简单一些,我们就从已有的电影的内容信息里边去用t fidf做一个处理,提取出来一个特征,然后基于它去做推荐就可以了。好,那接下。
02:38
下来我们就挨个去讲啊,呃,我们先讲一下整个项目的框架,在讲这个项目框架之前呢,先给大家简单回忆一下,就是大数据的数据处理流程,大家可能知道这个应该之前也讲过类似的内容,对不对?呃,就是整个数据来讲,它其实是有这个生命周期的,什么样的一个生命周期呢?我们应该知道,首先大数据我们应该从各种各样的数据源里边得到原始数据,这个原始数据有可能是非结构化的,有可能是半结构化的,有可能是结构化的,那结构化的就是大家最熟悉的这个关系型数据啊,直接可以存在这个数据库里边的内容,对不对啊,这些内容是非常简单,非常容易去分析的。另外我们还可以见见到半结构化和非结构化的数据,那非结构化数据就是像图片视频这种数据,这个分析就会更复杂对吧?啊更加复杂一点,我们更多见到的是什么呢?
03:38
是不是日志数据啊,啊,这一部分可能是我们在做大数据处理里边啊,常见的内容啊,它我们一般把它叫做半结构化数据,就是经过处理之后就可以变成结构化数据,对不对?那么接下来我们当然就是要从数据源里面去采集数据,这就涉及了啊,比方说啊SC啊,啊卡夫卡,包括卡夫卡ETL工具什么的,大家都讲过,对不对?这些内容我们把数据采集来之后,还要做一些清洗处理啊,做一些预处理的工作,然后就会把它存到相应的存储介值里边去,或者说数据库里面去,对不对?那这一部分存储介质啊,大家可能比较熟悉的关系性数据库的话,Oracle mysq,那另外我们现在还接触到了越来越多的非关系型数据库,比如说接下来我们要给大家讲这个mongo对吧?啊,大家还讲过red对不对,另外。
04:38
哎,就是可能还有一些比方说基于图的存储的数据库啊,还有大家比较熟悉的h base对吧,HDFS,那么HP这样的列存储的数据库,当然它也是大,大家认为它跟我们熟悉的my Oracle这样的关系性数据库还是很类似的,对吧?它的表结构也是非常严谨的,那所以各种各样的数据库,我们在这里其实大家都把它当成数据存储的介质就可以了,我们尽管已经讲了那么多,大家可能现在,呃,或许是觉得了解已经很多,或许是还有点糊,但是没关系,我们只要知道数据采集回来,经过预处理之后,要存到的就是这些东西就可以了。
05:26
那所以大家如果想到这一点的话,那我们是不是在这一步做数据存储的话,就可以用不同的工具去做替代啊,比方说我们之前的项目有可能是存在s h base里边的,对吧?那大家会想到我如果要是这个把它换成Oracle可以吗?其实也是可以的,只不过就是说你如果要是数据量特别大的话,或许这个效果就不太好,对不对,对吧,从性能上或者说其他的一些呃角度去考量的话,可能效果就不太好,或者放到我们给大家讲的这个mango里边可不可以呢?也可以对不对,放到MYSQL里边是不是也可以啊?诶所以大家到现在的话,我们就要有一个整体的这种架构,架构师的这种思维了,框架性的思维了,就是哪一部分他并不一定是就一定这么死板啊,我们当时讲的老师讲的这个项目里面,他用的是什么,他就一定得是什么,不见得是这样的。
06:27
呃,所以呃,我们接下来拿到这个存储之后,那下一步是不是就要做计算了,我们就会应用到一些大数据的计算框架,我们比较熟悉的那应该是这个,呃,哈杜op,这个web web对吧,然后还有这个Spark,这是大家比较熟悉的,当然别的像这个storm flink mahat这这些都是。都是大数据计算框架,那大家可能就会想到,如果说我们的项目里边,现在给大家讲的都是Spark,如果说我们以后接触到新的框架,我们到公司里边,大家的应用不是Spark,那怎么办呢?用的是flink怎么办呢?其实这个思维也是一样,都可以迁移过去的,对吧?当然具体的一些,比方说哎,你这个环境的搭建呀,一些具体里边的一些API的调用,一些操作,那肯定会不同,你会去重新去学习,但是我们的思维应该还是一样的,对吧?知道他做的事情是不是跟Spark类似啊,呃,大家有这个概念,这就可以了,然后我们做了这个数据计算,数据处理之后,最后是不是还要放到这个应用层面去啊,啊,给到我们业务系统去做应用,最后可能还要做这个BI分析可视化,大家会想到最后给用户要有一个图,图形页面呈现出来啊,这就是整个这个数据生命的一个周期,好,那么接下来大家在啊,当然这个图可能有点看不清楚啊,但是。
07:52
因为大家对这个处理流程已经比较熟悉了,我们就过一遍就可以了,大家看这两个,这算是两个图对不对?这两个图分别表示什么呢?其实是表示我们大数据处理流程里边的实时处理和离线处理的过程啊,大家之前学过,应该这个就看一眼就知道对不对?比方说左边这个是什么呢?对,左边这个就是实时的,大家看不清楚,可以把那个PPT里边图放大一点啊,它这个本身是因为缩小之后看不清楚了,大家会看到我们这个实时处理流程是怎么样的呢?首先呃,用户那里他有接口,他会去在我们网站页面上做一些操作对不对,这些操作就会啊,以这个服务请求的这种形式传到我们的业务后台,后台是不是对他就会有一个记录啊,啊,要不是直接记到数据库里边,更多的情况,是不是要把它存到这个日志文件里面去啊,写到日志文件里面。
08:52
去接下来我们是不是就可以用这个flu之类的工具,从日志文件里边做日志采集,采集到了之后是不是一般情况我们就后边会用卡夫卡之类的这种工具,诶,把它做一个处理,然后就相当于建立一个数据总线这样的一个管道,就可以把它传入到实时计算框架里面去啊啊,那么这里我们一般就是像这个卡卡streaming对吧?呃,我们用这个streaming程序就可以把它做一个实时的计算,得到的结果存到相对应的存储介质数据库里面去,然后是不是就可以数据可视化展示出来了,返回来给用户看了对不对?哎,所以这就是我们实时处理的一个流程,呃,那另外大家可能之前的项目里边更熟悉的是这个,呃,离线这一部分的处理对不对,离线这一部分经典的一个流程应该怎么样呢?那前面的过程还是一样,我们还是用户的行为。
09:52
通过发发给后台,后台记录下来,写到日志文件里边,助把它采集出来之后,大家会想到接下来是不是我们应该先把它存储起来,然后去做清洗对不对啊,ETL工具这就上了对吧?然后之后是不是应该把它加载放到这个数仓里面去啊啊,我们常见的这个标准流程应该是这样啊,那么在书仓里边,大家用haveve这样的一些呃,一些工具把它做一些管理,然后接下来给到我们的计算框架里边来啊,Spark或者是flink对吧?这里边做完计算之后,最后再存到相应的数据库里面去,最后给用户可视化展示出来啊,这是大家比较熟悉的这些过程啊。呃,那接下来我们要做什么事情呢?那我们要做的是一个推荐系统对吧?啊,我们可能不会涉及到之前那么多的工具。
10:52
那么多的这个框架性复杂的框架性的东西,那我们这里边关键是要看我们得到的东西是不是应该是推推荐列表啊,我们主要是想要得到这样的推荐列表对不对?所以这里边我们主要是要哪些呢?比方说我们要一个实时的推荐,这是不是应用的,应该就是我们大数据实时处理的那个流程,然后我们可能还需要一个离线的推荐,对吧?那另外我们可能还。
11:19
这也是离线的,就是跟统计相关的一些推荐对不对,比方说一个热门的推荐,这是不是基于统计推出来的呀?啊,所以我们这些这里的离线推荐,我们主要指的是基于盈余模型做预测评分的那个推荐,结合我们后边做的这个统计推荐,这是不是都应该应用我们的离线推荐框架啊,呃,离线大数据离线处理框架对不对啊,这这都是这样的一个过程,然后我们可能会想到点每一个电影,点进去之后是不是还应该有一个详情页啊,这个详情页大家会看到,我们可能还会有一些用户行为的收集,比方说这里可以去点一个评分,收集这个评分数据,那么然后下面我们可能会想到还应该去记录它的一些标签对不对,然后我们根据这个评分,是不是还应该有一些相似推荐啊,呃,基于内容的推荐对不对,这些内容是我们想要去实现的,好,那接下来就给大家看看我们整体。
12:19
的这个模块需要哪些模块,整体来讲,其实我们需要的就是这些功能,我们需要一个实时推荐,这是一个个性化的推荐,对不对?然后另外我们还需要一个离线的个性化推荐,这是基于盈余模型去做的一个预测评分,对吧?另外我们还需要啊,非个性化的统计相关的一些推荐,这也是我们想要的,对不对?那最后还有这个相似性推荐,这个就我们根据这个,呃,用户的点击行为,或者说根据物品本身的内容信息去做一些推荐,是这样的一些考量,然后另外大家会想到我们还应该有一些用户行为,在业务系统里面应该去实现,对不对,那就是用户应该可以去给评分,对吧?可以去给电影打标签,还可以用一些啊,还可以去做搜索,做模糊查询,那大家会想到这些内容,其实在业务系统里边都应该实现,对吧,只不过实现完了之后会跟我们后。
13:19
边的,呃,就是数据库,还有我们的推荐系统会有一些交互,所以这些也是我们需要去了解的,那这些内容如果我们把它抽象一下的话,就可以抽象出这么几种服务,比方说实时推荐,离线推荐,离线统计,另外还有内容检索,对吧?这是我们的几大服务的类别,然后接下来如果再去看的话,根据我们之前推荐方式或者说推荐方法的划分,可以把它提炼成我们要用到哪些呢?基于模型的推荐,大家会想到我们离线推荐这里是不是要用到盈余一模型啊?另外多给大家说一句,实时推荐这里我们也要用到自定义的一个模型,所以我们基于模型的推荐这里还是很重要的一部分。另外就是协同过滤,大家会想到盈余模型LFM是不是基于评分数据啊,这是不是也是一个?
14:19
协同过滤的推荐,另外大家会想到,如果我们利用这个协同过滤评分数据去求它电影之间的相似度的话,这是不是也是基于协同过滤要有一个item CF的推荐啊,啊,所以大家看到这个协同过滤推荐也是很重要的一部分,另外就是我们还可以基于内容去做推荐啊,大家会想到我们从电影的信息里边可以去提取他们的内容特征,对不对,得到特征之后就可以做它的相似推荐了,好,那么当然他最后是不是还要基于我们整个的这个电影电影网站,最后得到的结果再写回去,是不是就变成了一个推荐网站啊啊,这是我们想实现的一个目标,好,接下来我们看一看这个整项目整个的这种系统架构,呃,大家会看到首先。
15:14
用户看到的应该是一个可视化的界面,这是我们的网站前前端对吧?网站的前台啊,那这个项目里边是用angular JS来写的,这一部分代码也会到时候直接给到大家,大家不用去管前端,有前端的当然有后台了,对吧?那用户的数据从前端进来是不是会发到我们的综合业务后台啊,啊,这里就是用spring给大家搭建的一个业务后台,大家家会想到后台的业务除了响应我们前端的这些数据处理之外,是不是是不是还应该把数据写入到对应的数据库里面去啊,我们这个项目核心的业务数据库是什么呢?哎,对,大家可能知道了,我们用到的是mongo,这是我们的核心业务数据库,另外还有一些辅助的数据库,比如说什么呢?大家会看到我们用到了ES,那大家想到前面我们不是讲有一个搜索。
16:14
锁的这样的一个业务需求嘛,所以我们肯定把一部分数据会放到这个ES,作为我们的搜索服务器,对吧,放到这个S里面去,另外还有一部分会放到red里面,那这部分很好理解了,就是要做一个缓存对不对,这也都是常见的一种一些系统架构,所以大家看,尽管我们这个项目不是特别的大,但是其实是想要把之前大家讲到的一些东西给大家综合起来做一个应用的,好这是这是我们基本的这个电影网站的业务系统,对不对?那我们要做的是什么呢?其实是基于这样的一个电影网站,我们是不是要做出推荐的模块啊,当然跟他会有交互,那大家会想到跟他的交互主要应该在哪里呢?是不是主要就应该在数据库这一部分去做对应的交互啊,原先的这个业务数据我们是不是应该都存在了业务数据库里边,然后我们从里边要读数据。
17:14
读完数据做分析,做计算,得到的推荐结果是不是还应该写到对应的数据库里边,让我们的后台业务能把它读取出来,然后展示给用户啊,哎,所以我们最后得到推荐结果也是准备要写入到芒果里面去的啊,这是我们整体的这个业务框框架,大家看一下我们整个的这个推荐模块。大的范围可以分为哪两类呢?一类是大家会想到是不是有离线的推荐啊,所以首先我们有一个离线统计服务,既然是统计服务,大家会想到我们到时候是不是写Spark CQ啊啊对吧,用Spark CQ去做一些处理,然后把数据呃里边的一些统计信息然后找出来,那么大家大家习惯读是读circleq是吧?啊,我是习惯读CQ啊,大家这个习惯怎么读都可以按照自己的习惯来就可以啊好,那么我们把这一部分离线统计。
18:17
做完之后大家会想到我们的核心这部分还是非个性化的,每个人看到的都一样,对不对?我们的个性化如果要去做一个统计推荐的话,呃,如果要去做一个推荐的话,是不是就要用到之前说过的啊英语模型去做一个预测评分啊,所以我们还应该有一个离线推荐服务,专门做这样的一个预测评分。那么这一部分要用到什么呢?啊,大家会想到既然是离线推荐服务,要用到盈运翼模型,我们讲是不是要用als啊啊,那这一部分在哪里去找呢?呃,是不是这就涉及到了Spark里边的ML lab对吧?啊,所以我们会简单的给大家说一说MLLA里边的一些一些算法啊,到时候从这里边去调用,那当然我们可以用一个,大家讲过阿卡班对吧,可以用它来做一个工作调度服务,然后把这两部分离线服务调度起来,我们是不是可以定时去跑这个任务啊,跑完了之后结果定时去更新,因为这部部分离线的嘛,所以说我们当然可以这么去做,当然在之后我们实际实践的时候,阿斯卡班这部分因为比较简单,跟我们的本身的业务也没什么关系,对不对,这部分我们就把它忽略掉了,大家想做的话可以把它加进来,然后大家会想到。
19:41
得到的结果是不是,诶最后还写到网购里边去啊,啊,这就是我们的离线整体的这个推荐模块,然后大家会想到除了离线之外,是不是还有实时的推荐啊,实时推荐那怎么去做呢?诶大家会想到首先是不是应该从。
20:01
业务后台,它的日志环境里边,或者说从其他的一些环境里边去收集日志啊,对吧,拿到拿到我们的日志,然后大家会想到是不是给卡夫卡做一个消息队列的缓冲啊,哎,通过这样的一个缓冲通道,构建这样的一个信息渠道,最后是不是把它可以给到。Spark streaming去做一个实时推荐啊,在这里大家会想到实时推荐的时候,我们除了实时收集来的一个一个行为数据,一个比方说一个评分数据之外,我们还需要什么呢?可能还需要一些之前的相关的一些数据,对不对?那大家会想到我们可能要从里面找一些数据,还有可能,呃,从这个ES和mongo里面也有可能会拿一些数据,对不对,最后得到的一个推荐结果是不是还是要写回到mango里边来啊啊,这就是我们整体的一个项目框架。
21:02
好,那么大家可以看到,就是我们大概整体分的话就是这么几大块,那么左边这一部分是一个离线推荐对不对?呃,如果说这一部分是离线的话,大家可以认为我们这一部分这个数据库这一部分是近线,为什么呢?因为它的读写可能实时性要求并不那么的高,但是相对还是比较实时的,对吧?然后另外一部分真正实时的是什么呢?是不是就是我们右边的这一部分实时推荐模块啊,那么它可以认为是在线,对吧?离线、进线、在线三大模块的划分,我们要实现的就是这个离线部分和在线部分的实现了,好,那么这是整体的项目架构,接下来我们再把它具体化一下,当然这个具体化这个图大家可能会想到它就会比较麻烦了,对吧,首先我们看到这个可视化里边,我们可能会给用户做哪些展示呢?可能有推荐结果展示,这是不是我们核心的部分啊,然后后面可能还有电影检索,电影新。
22:03
低展示标签评分,这应该是我们给大家的业务系统里边就实现的,对不对啊,所以尽管看到比较复杂,这些不用我们管,对应到业务后台是不是就有各种各样的服务啊,我们要实现的可能是这个推荐结果查询,这也是业务后台应该已经实现的,我们是不是把对应的那个内容写到数据库里边,它就应该能查询出来啊啊,所以这也是我们不需要管的啊,都已经实现好的。接下来大家会想到我们的数据库是不是有mango,然后有ES,还有red,对不对啊,这里边都是有内容的,大家会想到我们正常的一个业务系统来讲。一开始的时候是不是会有一个会有一个冷启动的问题,对不对,一开始应该数据库里面全是空的对吧?所以我们还得有一个漫长的收集数据,然后这个呃,慢慢的这个数据增增加的一个过程,那我们现在既然是大数据项目,我们当然默认应该是有数据的,对吧?那我们这个项目里边数据从哪里来呢?啊,我们这里就直接用几个文件把它先保存好,然后直接把这个数据加载到我们的业务数据库和对应的这些数据库里面来就可以了,因为大家会想到,如果要是已经运行一段时间的业务系统的话,Mango里边肯定是有数据的,对吧,肯定有大量数据,所以这一部分我们是用了一个专门写了一个数据加载服务,然后做这一部分事情,今天下午我们就就把这部分要实现啊,那当然大家会想到这一部分我们怎么做呢。
23:40
因为可能数据量比较大,所以我们还是用到了Spark CQ,那大家会想到到时候我们可能会用这个,呃,Spark session是不是会有一个这个right方法啊,对吧?我们把它这个对应的数据结构定义好,然后大家会想到跟mongo跟ES都有对应的这种连接方式,对不对?你只要定义好的数据,我直接往里写是不是就可以啊,哎,所以是这样的一个过程啊,这是我们数据加载一开始,那有了数据之后,大家会看到我们就直接把它写到业务数据库里边,另外ES里边可能也要也要写一部分数据,所以今天下午我们的任务就就牵扯到两部分对吧?一部分是往mango里边去写数据,另外一部分往ES里面去写数据,好,那写入数据之后,我们是不是就可以去做离线统计服务了,诶这一部分我们可能会设计几个指标,比方说,比方说每个电影的平均评分是不是可以做一个统计,然后我们是不是可以统计评分的个数,这是不是可以代表。
24:40
把它一个热门程度啊,看的人多是不是评分就会多,诶,这就代表一个热门程度,然后还可以最近电影评分个数,这是不是代表最近的热门程度啊,近期热门对吧?啊,最后还可以这个类别的top ten这个这都是一些常见的统计量,大家如果感兴趣的话,可以把这一部分再好好的拓展一下,自己想什么指标,想一个实际的电商项目里边大家会会用到哪些指标,可以把它写进去对不对啊,那这一部分我们当然它可以用这个阿斯卡喷把它调度起来对不对?那它的数据当然从mango里边读取,读取出来之后我们做处理,最后是不是一个一个都应该对应有一个推荐列表啊呃,最后再写回到log口里边就可以了,除了离线这部分,除了统计服务之外,我们还有一个离线推荐,对不对,这一部分我们当然主要应用的就是英语模型,做一个预测评分,那这一部分大家会想。
25:40
那我们是不是主要就是要用ars啊,对吧?调ars算法得到,呃,当然我们同样也可以用S斯卡班把它这个管理起来,对吧,调动起来,那这里我们得到的主要就是一个呃,用户的推荐电电影列表,对不对,得到这样的一个列表啊,这个列表当然也可以写到这个业务数据库里面去,另外这个离线服务还有一个副产品,什么副产品呢?就是大家会想到我们稍后是不是还要有一个实时推荐啊,实时推荐大家想我们来了一个电影评分,那我来了一个新的电影评分,我根据什么去推呢?
26:23
大家直观的想法,是不是我应该找到诶跟这个电影刚刚评评分过的这个电影相似的电影啊,那这个相似我如果现在现场去算的话,那么多电影对吧,我再统计它的那个特征啊,我再跑一遍as对不对,我再去找它隐藏特征,再去算它相似度是不是就有点来不及啊,你这个实时性是不是就差多了,所以大家会想到,那如果说我电影本身它的特征相对比较比较稳定,电影的变化相对不大的话,我是不是可以提前把它算出来啊。
27:00
我就可以提前把电影的相似度算出来,我到时候来了一个评分的时候,是不是结合他之前算好的相似度,就可以找到跟当前这个电影相似的电影啊,是不是就可以做推荐了?哎,这就是一个基本的想法,所以我们这里边离线推荐服务还应该有一个副产品,算出来电影之间的相似度啊,所以我们把这个也写入到对应的网go数据库里面去,好那这就是我们离线推荐的部分,大家看好像很复杂啊,但是实实际上这么一说的话,呃,也就比较清晰了,比较简单了,对吧?好,那接下来大家会想到就是这部分有可能还要去做缓存对不对,因为如果要想实时推荐很快的话,可能还得去做一个缓存,好,那接下来大家会想到剩下就是里实时的这一部分了,实时它的流程是什么呢?是不是用户在这里有一个电影评分的一个操作做了。
28:00
一个点击对不对,做了一个评分操作,然后就会把这个请求发到我们的业务后台来,后台的电影评分服务做一个响应,是不是对应的,就会首先对应的数据应该写到业务数据库里边,对吧?另外是不是还应该有一个日志记录啊。这个日志是不是就可以用flu去采集,然后是不是就可以给到卡夫卡去做消息消息队列的缓冲了,对吧?呃,那么对应的这里边我们可以定义什么呢?是不是应该定义一个fair source,然后定义一个卡普卡think啊啊,那我们这里就日志来了之后fair s。经过这样的一个管道的通道给到卡夫卡辛克莱,那么卡夫卡这里边是不是可以定义不同的topic,再去做一个过滤处理啊,啊,这个都是大家可以应该是之前讲过的啊,或者可以理解的内容,比方说我们这里边就是刚来的这一个这个topic,我们叫log,然后之后过滤之后,我们另外再定义成一个一个新的topic,对不对,这相当于是我们做了这个日志提取之之后,最后核心算法想要的数据结构了,比方说大家看这里我们的数据结构,就把它中间用竖杠分割的几个几个字段,对不对啊,就是这样的一个模式。
29:23
那么卡夫卡做完这样的处理之后,是不是就可以把内容给到实时推荐算法啊,啊,这个算法我们要去好好的设计一下,考量一下,那有了这个实时推荐算法之后,我们再去做一个啊,大家会想到啊,这里边的内容要过来,是不是red里边数据也得过来啊,啊,也得拿到我们对应的那些想要的东西对吧?那最后是不是再把它写回到猫狗里边去啊,这就是我们整个的实时推荐的一个流程啊,当然了,呃,对应的这个搜索服务,那肯定要从结合mango和ES了,对不对?呃,这个查询推荐结果的查询,我们从这里面去拿数据,最后返回到前台,那电影检索的话主要就是ES对不对啊,模糊查询直接可以返回那对应的信息展示和电影标签,那肯定都是从对应的数据库里边拿内容就可以了啊,这就是我们整个的一个项目流程。
30:19
呃,当然了,就是下一个图还有一个数据流对吧?这就把刚才我讲的这个内容又细化了一下,大家如果想看的话,也可以看一看,直接一眼看上去好像特别的复杂,特别的乱,对不对?但实际上如果我们一部分一部分过下来的话,其实就就那点东西,就是我们之前讲过的那些东西,对不对,就是要给大家用这样一个项目给大家综合起来,大家做一个复习就好了。
我来说两句