四个模块:一、即时通讯场景搜索,包括聊天记录检索、公众号文章搜索、好友推荐;二、分词支持粤语和闽南语拼音输入容错;三、搜索结果按社交关系排序,好友内容优先;四、响应时间不超过两百毫秒。"
刘芳翻开功能清单逐条对照:"第一个模块没问题。第二个模块需要输入法映射层,把方言拼音转成标准汉字,工期加两周。"
戴眼镜的工程师插话:"腾信用户里大量广东和福建用户,打字的拼音是方言发音。如果识别不了,体验很差。"
"理解。"炜杰说,"南方方言声韵差异大,需要重建映射表。"
陈琳记了一笔:"第三个需求,社交排序,千度有现成方案吗?"
炜杰打开演示系统,输入"北京饭店"。屏幕左栏显示分词结果"北京/饭店",右栏显示搜索结果。
"千度现在的排序基于网页权重和内容相关度。"炜杰指着屏幕,"社交排序需要引入用户关系图谱——谁是好友、谁互动多、谁被点赞过。这不在通用搜索架构里,要单独开发排序插件。"
"工作量?"
"一个月。前提是你方提供用户关系数据的接口规范。"
寸头工程师开口:"接口可以给,但排序算法核心逻辑必须跑在腾信服务器上,千度只提供模型文件。用户数据不能出腾信机房。"
炜杰点头:"合理,接受。"
会议室的门被推开,马化斌走进来。他穿深灰色西装,没打领带,手里拿着牛皮纸文件夹。
"继续,不用站起来。"他在尽头位置坐下,"我听着。"
陈琳继续:"第四个模块,响应时间。"
马化斌直接问炜杰:"两百毫秒,能做到吗?"
"能。"炜杰说,"千度现在平均一百二十毫秒。定制引擎加一层社交排序,多花五十到八十毫秒,总体控制在一百八十毫秒以内,留百分之十余量。"
"怎么保证?"
"三层缓存。"炜杰打开后台监控界面,"第一层热查询缓存,覆盖四成请求,直接命中不经过分词。第二层分词结果缓存,同一查询词第二次不需要重新切分。第三层索引缓存,最常用的索引块常驻内存。三层叠加,九成请求不碰磁盘。"
马化斌身体前倾:"通用搜索能做到这个速度,定制引擎凭什么保证?"
"定制引擎跟通用搜索共享核心模块,区别只在排序层和映射层。代码写得够紧凑,速度不会有明
本章未完,请点击下一页继续阅读!