京东三级类目如何进行排序?

东分类页面的入口

分类列表入口,可以通过京东首页首屏左侧导航进入,是用户购买商品的几大入口之一。

京东三级类目如何进行排序?

分类列表,展示各个分类的商品,有综合排序、价格排序、销量排序、上架时间排序、图书还有出版时间排序。可以按照品牌、价格和各种扩展属性筛选出想要的商品。下图以空调列表为例。

京东三级类目如何进行排序?

分类列表特点

-- 分类多,全站大概几千个分类;

-- 商品多,每个分类商品多,有的分类达上千万的商品;

-- 需求多样化,不同分类需求不一样,例如大家电、图书需求各不一样;

-- 请求量大,实时性要求高。

京东分类升级新架构权重

新架构设计目标

-- 分布式,数据可以做多个分片,服务各层可以做到水平扩容;

-- 高可用,双机房双活部署;

-- 响应迅速;

-- 数据闭环,线上服务主要数据不依赖于外部API;

-- 运维便捷,方便切换集群,方便分类管理配置;

-- 数据提升,通过优化排序算法,提升GMV、订单转化率、客单价等。

京东三级类目如何进行排序?

新架构功能模块如上图所示:

-- 页面渲染:采用OpenResty(Nginx+Lua)来作模板渲染,方便页面逻辑的调整;

-- 业务处理:采用golang,所有的筛选、过滤逻辑都是在这一层处理的;

-- 数据异构:页面渲染需要相关的数据、过滤筛选需要的数据,都是通过异构过来的;

-- 消息处理:通过接入MQ消息,可以实时处理商品上下架、库存更新、价格修改等消息;

-- 质量分计算:通过大数据平台计算商品质量分,为综合排序提供依据;

-- 配置管理中心:负责后台调度、分类配置等。

新架构功能模块上线情况

京东三级类目如何进行排序?

新架构离线数据流程如下图

京东三级类目如何进行排序?

其中:

-- 数据集市,使用的是京东的大数据平台;

-- JSS,是京东自研分布式文件存储系统;

-- JIMDB,是京东自研KV存储系统,可当分布式Redis使用。

详解各个模块的权重

* 质量分计算

由于每个分类的商品非常多,个别分类达千万量级的SKU,而用户浏览的SKU有限,我们需要将用户最可能买商品排在前面;为每个分类的所有sku进行质量分计算,涉及到几十个指标(包括销量、评价、浏览、转化率等);根据质量分的高低进行排序;由于涉及数据量很大,所有计算都在大数据平台完成;将计算结果推送到JSS。

由于还有一些特殊规则,例如品牌穿插、店铺穿插、特殊排序等,这些规则的实现是通过worker实现,读取jss,并进行特殊规则处理。将处理后的数据推送到MYSQL。

*异构服务

异构服务主要是异构过滤和展示需要的商品数据;调用外部各个接口,形成一张商品宽表。如下图所示:

京东三级类目如何进行排序?

业务处理子系统介绍

京东三级类目如何进行排序?

上图展示了列表各种筛选逻辑,排序逻辑。

业务处理子系统提供前端所需要的所有过滤筛选接口,以及展示数据。该系统采用golang开发,所有筛选数据都存在内存中,提高检索速度;展示的数据都放在jimdb中,目的减少占用内存大小,缩短golang的GC时间。下图展示了内存中存储的数据。

京东三级类目如何进行排序?

*消息处理系统

该系统接收处理相关消息(商品变更,上下架,价格变更,库存变更),并实时更新到线上,如下图所示:

京东三级类目如何进行排序?

作者:搜索书生,擅长领域:京东搜索规则,案例与实操,微信号:13021139730(备注:卖家网)

原创稿件,转载请注明来源网络http://www.zzx8.cn/

本文"京东三级类目如何进行排序?"为网络原创稿件,转载请注明出处(本文转载于:网络http://www.zzx8.cn/article/242399)

联系我们