[相关推荐交集文档] #videorec #recommend #videosearch
入口解析参数,结果输出 -> action/data/Recommendvideo.php (function executeIt())
将解析好的参数传入业务处理层 -> models/service/page/RecommendVideo.php (function getRecommedVideoFromSC())
2.1. 根据创维开关和对应的抽样逻辑,判断当前请求走创维还是直连REC
2.2. 按照请求下游服务的参数构造请求参数包 -> models/service/page/RecommendVideo.php (function constructReqMegafoilParams() OR constructReqRecParams())
2.3. 构造请求好看相关推荐服务的请求参数包 -> models/service/page/RecommendVideo.php (function constructReqRecommendParams())
2.4. 请求第三方服务参数包构造好之后,则将参数传入下游的推荐数据模块,并获取推荐数据 -> models/service/data/Search.php (function doRec())
2.5. 由于后端直接返回的数据中除了好看兜底数据外,还可能存在多数据源召回情况,而此时会存在重复数据找回的情况,故此处有虑重逻辑(可删除) -> models/service/page/RecommendVideo.php (function filterRepeatData())
2.6. 将推荐结果进行分页输出 -> models/service/page/RecommendVideo.php (function processLimitPage()) 2.6.1. 根据召回结果来源进行区分处理流程(直连REV or 创维召回) 2.6.2. 直连 REC 召回时,需要根据当前召回的结果总条数判断是否不低于10条,若低于10条结果时需要使用好看兜底结果进行兜底,并根据当前请求页码做翻页处理 -> models/service/page/RecommendVideo.php (function processRecLimitPage()) 2.6.3. 创维召回时,由于创维对返回数据包大小有100k限制,而未来推荐会返回更多的数据,故将翻页逻辑下移至REC,在结果数不足十条时会按照好看兜底数据进行补齐,然后返回结果 -> models/service/page/RecommendVideo.php (function processMegafoilLimitPage())
2.7. 将召回结果信息进行相应打点操作 -> models/service/page/RecommendVideo.php (Common_Log::addNotices($noticeArr))
3.1. 执行请求后端服务操作 -> models/data/Search.php (function getSearchResultFromRec()) 3.1.1. 根据召回结果来源进行区分处理流程(直连REV or 创维召回) -> models/dao/Search.php (function getVideoDataByMegafoil() OR getVideoPageMultiRecommend()) 3.1.2. 解析召回数据,同时请求Disp,使用摘要信息进行填充 -> models/dao/Search.php (function processResponseData()) 3.1.3. 格式召回数据,过滤无效字段 -> models/dao/Search.php (function formatRecData()) 3.1.4. 多引擎召回数据的归并操作,此处逻辑可省去 -> models/dao/Search.php (function mergeRecMultiSourceData())
3.2. 执行召回数据统一格式化操作 -> models/data/Search.php (function afterDoSearch()) 3.2.1. 判断资源是否需要进行人工干预操作,然后执行人工干预处理 -> models/data/Search.php (function addInterveneData()) 3.2.2. 判断资源是否需要进行人工屏蔽操作,然后执行人工屏蔽处理 -> models/data/SearchBlock.php (function processXspBlock())
3.3. 页面分页处理逻辑
3.4. 补充熊掌号ID信息 -> models/data/Search.php (function _getCambrianIdinLoop())
3.5. 小视频数据会进行补充熊掌权益信息 -> models/data/Search.php (function _addXspExtraMultiData())
3.6. 输出 NA 特有信息字段 -> library/util/Client.php (function setClientParams())