1.业务背景
榜单在经历了供给量迅速增长及C端分发场景多样化等迭代,数据量及峰值流量呈十倍百倍增长,这必然带来数据库的极大存储压力和C端查询性能降低。为满足未来各类复杂定制化规则和亿万级数据甄选,综合引导消费者的购物决策,得物商品榜单生产迁移及B/C端数据存储隔离应运而生。
2.概述
得物榜单作为C端核心导购场景之一,通过建立丰富的规则矩阵,多维度提供用户购买参考建议,帮助用户快速决策并完成商详转化。目前涵盖六种类型包括热销榜、新品榜、趋势榜、种草榜、好评榜及回购榜,主要入口包括商详、品牌主页、分类tab、瀑布流、会场、频道等。
2.1 “圈选”+“排序”是核心:
通过圈品条件圈选出一系列商品,再根据排序规则排名后取TOP20商品入选榜单。**圈品范围包括类目、品牌、系列、标签等,通过【6类模型、N项指标因子】综合计算排序后的总分代表商品的综合竞争力,分值越大,代表该商品表现越好。**得物榜单基于上述算法模型严格把控上榜商品品质,从而帮助用户根据自身诉求快速决策。
2.2 是否存在更优的排序?
通过对榜单排序逻辑优化可针对性提升榜单承接效率,探索一套最佳排序规则公式需要通过不断的尝试,因此整个实验周期较长,在设计上就需要支持实验的快速推进。
来看下目前如何实现榜单的创建及生产。
涉及表
- 基础表:记录榜单基础信息;
- 圈品条件表:记录榜单圈品维度信息包括类目id、品牌id、系列id、标签id、商品ids集合等;
- 商品集合表:记录榜单下关联的top20商品id,当前榜单B/C端流量都是走了这个表的查询;
如何绑定圈品范围?
- 人工榜单通过后台新增榜单时绑定捞月规则或人工直接配置商品ids集合,并同步写榜单圈品条件表;
- 半自动化榜单通过后台新增榜单时绑定类目id、品牌id、系列id等维度规则,并同步写榜单圈品条件表;
- 自动化榜单通过预先设定的规则批量写榜单圈品条件表;
数据流转?
商品后台新增榜单基础信息至基础表,将圈品范围信息(类目、品牌、系列、标签、spuIds等)保存至圈品条件表,搜索每两小时定时从库中捞取圈品条件表数据,获取最新数据刷到商品集合表中。
- 搜索数仓H+1/T+1 dump:搜索离线数仓通过离线计算排序因子数据,生成离线宽表;
- 搜索离线圈品排序引擎:对照组榜单由搜索生产。每2小时定时调度,扫描圈品条件表全量数据,从宽表中筛选商品并进行排序,排序结果通过DTS数据同步回流榜单商品集合表;
- 搜索离线圈品排序引擎:实验组榜单由商品圈品排序引擎生成,底层实现和搜索大致相同。
3.系统缺陷及解决思路
3.1 链路强耦合
商品/搜索存在双写榜单商品表场景,由于搜索通过dts数据同步方式回流数据,导致数据相互覆盖甚至主键冲突,通过id隔离的方式可以暂时解决。
3.2 重复造轮子
目前榜单商品生产链路强依赖搜索,由搜索实现商品圈选及排序,搜索榜单商品生产方式单一,无法满足榜单圈选/排序规则定制化供给。而 「捞月」 作为得物核心选品投放平台,已经具备强大的圈品排序能力。
3.2.1 捞月指标体系
海量选品指标维度(商品基础信息,活动信息,价格与库存,流量与转化等)支撑各业务,分钟级别选品实时指标数据;