14年程序员实战:创业搜索架构三重突破
|
文章配图,仅供参考 第九版切图发出去三分钟,前端在群里回:“搜完没结果那页,空态图标又塌了。”我手还悬在键盘上,数位笔的笔尖刚换过,蹭着板子沙沙响——你懂的,那种新笔尖的涩感,像没磨合好的齿轮。我原以为改到第七版就稳了,结果产品把搜索框从右对齐拖到左对齐,顺手把间距从12px调成14px,说是“呼吸感”。呼吸感?呼吸感能扛住每秒三千请求?去年10月份,我们压测搜“充电宝”卡在1.7秒那会儿,谁在旁边刷短视频外放,声音是《科目三》副歌前奏,我都没抬头。真没抬——盯着控制台里那个飘红的ES慢查询日志,手指抖得不敢点刷新。 优胜劣汰,就这四个字。不是玄学,是日志里掉出来的。第一重突破?把Query Rewrite那层砍了,让用户搜“苹果手机”,别自作主张塞进“iPhone 15 Pro”。你猜删掉那段代码后,首屏快了多少?不记得。但空态的加载骨架屏,我记清了——用了37个div,嵌套五层,就为撑住那个该死的圆角阴影渐变。结果上线第一天,安卓机一摸就闪退。后来查出来是Canvas渲染路径里有个未处理的null状态,不是设计问题,是我在空态逻辑里写了个return;忘了加else。就是分号后面那个空行,害得整个搜索入口灰了俩小时。 色板里那个说不清的灰,至今还在。不是#f5f5f5,也不是#f0f0f0,是设计师本地PS里吸出来、发群里截个图、没给HEX值、只说“稍微再暖一点”的灰。我扒过她Sketch文件图层样式,发现她用的是RGB转HEX时四舍五入差了1,导致同一色值在Chrome和Safari渲染偏移0.3像素。就这0.3,让搜索框聚焦态的描边在macOS上虚了一线——前端拿放大镜对着看,我蹲旁边啃干掉的马克杯沿,杯底还粘着上周三的茶渍,一圈浅褐色,边缘起毛。 第二重突破?拆ES。不是加节点,是拆索引。把商品、店铺、内容三个索引合并成一个混排索引,结果搜“耐克”出来两条同款鞋,一条标“自营”,一条标“旗舰店”,价格差8块。运营当场抓狂,非说排序被黑了。我们翻rank log,发现是TF-IDF权重跑偏,因为店铺名里大量出现“官方”“正品”“旗舰店”这种高频词,直接稀释了“耐克”的词频信号。后来干脆加了个词典屏蔽列表,把“官方”“正品”“专营”全拎出来喂进停用词库——不是算法多牛,是人工筛出37个词,每个词后面手动敲了个逗号,最后那个逗号多敲了一次,deploy脚本卡在第36行报错。小王在工位上喊我帮忙看,我正拿绿萝枯枝刮显示器边框积灰,那盆绿萝死了半盆,剩下几片叶子卷边发黄,根都浮在土面上。 第三重突破最荒诞——把搜索建议从服务端渲染挪到客户端做。不是性能考虑,是运维说ES集群账单超了,老板问能不能省两万。我就把query suggest接口砍了,让前端接浏览器history API+本地缓存,输入法候选词也凑合顶上。结果上线那天,用户搜“耳机”,弹出来三条:“耳机 蓝牙”“耳机 红米”“耳机 卫生纸”。卫生纸是我家楼下超市促销海报上印的,被我chrome插件自动同步进本地存储了。没人知道这事,包括我自己。直到客服截图发来,我才翻到自己电脑上那个被遗忘的localStorage key。 切图文件夹里的命名乱七八糟,search-input-focused@2x.png 和 search-input-focus@2x.png 并存三天,没人动。不是没人看见,是看见了也不清——怕清错了影响哪个状态。现在空态、加载态、错误态、无结果态、有结果态,一共六个状态,每个态里图标、文案、间距、交互反馈都不同,但组件库里只挂了四个。剩下两个是临时写在HTML里,用style标签硬怼的inline。你知道最绝的是啥?那两个inline style,其中一个写了两次padding:一次是12px,一次是14px,浏览器最终认了14px——可12px那行,至今没删。 所以你说站得住的地方是“优胜劣汰”,我点头。但淘汰的不是人,是那些没日志、没监控、没case的模糊判断。比如我昨天还跟测试争,说“搜‘退款’应该优先出帮助中心链接”,她说“用户搜这个八成是想取消订单”,我说“那应该进订单列表啊”,她直接把Jira里去年Q3的用户路径热力图甩过来——红色块全堆在“我的订单”页右上角那个问号图标上。我哑火了。不是服数据,是服她连热力图缓存都没清,用的还是旧CDN地址,图上日期显示是2023年9月28号,但坐标轴单位没标清是点击量还是停留时长。她没解释,我也没问。 窗台上的绿萝死了半盆,剩下那半盆我没换。水培瓶里还插着上次剪下来的枝条,泡了十七天,没冒芽,也没烂,就悬着。像我们留着的那个没拆的旧搜索SDK,还在某些埋点上报里偷偷打点,但没人记得它往哪发。产品经理说先挂着,等下个迭代再动。下个迭代是啥时候?不记得了。大概那个数吧。 现在得去帮前端修那个空态图标——他说SVG的viewBox写窄了2像素,导致图标在iOS Safari里压缩变形。我打开devtools,光标悬在那个标签上,还没点开属性面板,就听见隔壁工位有人喊:“哥,切图里search-result-item-active-bg.png少了个‘-’,是activebg还是active-bg?”我答:“按规范写,active-bg。”顿了顿,“……等等,规范在哪?” 找规范的事,下午再说。 (编辑:草根网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


政策合规:数据安全创业的缓存式加速器
内容创业者生死线:3个月重构服务器架构
创业合规避坑指南:14年运维工程师的 tech 安全红线手册
创业公司后端架构生死线:政策、数据、安全缺一不可
iOS创业生死线:流量、合规、运营,三缺一系统即崩
马斯克:互联网创业者该放弃的3个技术执念
创业合规与数据安全双轨协同优化路径
浙公网安备 33038102330473号