天猫11.11:搜索引擎实时秒级更新

搜索是很多用户在天猫购物时的第一入口,搜索结果会根据销量、库存、人气对商品进行排序,而商品的显示顺序往往会决定用户的选择,所以保证搜索结果的实时性和准确性非常重要。在电商系统中,特别是在“双十一”这样的高并发场景下,如何准确展示搜索结果显得尤为重要。在今年的“双十一”活动中,InfoQ有幸采访到了阿里巴巴集团搜索引擎的三位负责人仁基、桂南和悾傅,与他们共同探讨了搜索引擎背后的细节。以下内容根据本次采访整理而成。

阿里巴巴的搜索引擎承担着全集团的搜索业务,包括淘宝、天猫、1688等系统,对比传统的搜索引擎,阿里集团的搜索引擎有一些比较大的突破性、创造性的工作。传统的搜索引擎,只可以做到离线全量、增量构建索引,而阿里的搜索引擎已经是演变成为一个能够做到离线、增量、实时三个等级的搜索引擎。电商平台最大的一个特点就是短时高并发,像双十一这样的活动中,搜索引擎需要考虑如何让流量发挥更大的价值。传统的搜索引擎解决短时高并发的思路是添加缓存层以减少搜索引擎的访问量,而这样的解决方案,天猫之前也有使用,但是缓存会有延迟,实时搜索的需求根本无法满足。所以为了解决实时的问题,阿里的搜索引擎去掉了应用层和业务层的缓存,重点优化和提升引擎层的服务能力。为了兼顾实时性和吞吐量,搜索引擎实现了全量、增量、实时三种更新通路。通过三种方式的灵活组合,在保证了海量数据定期全量更新的同时提供了秒级实时更新能力,避免了数据延迟,提升了用户体验。

系统架构

从整体上来看,阿里搜索引擎的架构图如下。从上到下,分别是应用层、业务层、搜索引擎层、离线处理层和DB层,应用层其实就是调用方,大的来看可以分为Web、App、Wap。业务层会针对相应的业务对搜索结果进行整理,如Android和iOS的搜索结果显示是不一样的。搜索引擎层有点类似传统系统的搜索引擎,阿里巴巴的搜索引擎会在搜索的基础上根据用户习惯提供个性化的搜索结果。索引层主要包括全量索引和流式计算,全量索引其实就是一个基于Hadoop/HBase的离线集群,而流式计算是阿里自己研发的一套系统。之所以没有选用Storm,是因为在这一层中,光有计算是不够的,还需要有数据的存储(开源解决方案HBase)。如果使用Storm,接下来会面临一个问题,Storm是一个集群,HBase又会是一个集群,这样,Storm的Disk以及HBase的CPU其实都没有充分利用到,所以阿里的方案是Hadoop Yarn与HBase混合部署,把两个集群合并在一起,既可以做大规模的数据处理,也可以做流式计算,通过这样的方式,可以将离线和实时计算更好地融合。最底层的数据源层会把用户、商品、交易信息同步到上层的HBase集群中。

流式计算

Storm是一个无状态的流式计算框架,而无状态的流式计算体系,更适合做简单的统计分析,比如针对成交维度或者点击维度做计数。而阿里自研的流式计算框架iStream,已经不再是简单的、无状态的流式计算概念。iStream借助HBase集群存储用户状态,以完成一些相对复杂的模型的计算。同时模型的计算结果可以通过相应的接口直接推送到上层的搜索引擎中,以服务每一条流量的排序变化。

排序链

在搜索引擎层,不仅包括商品的搜索引擎,还会包括其它层面的服务(如架构图所示)。商品搜索引擎中包含商品、店铺、活动等维度的信息,而图中的个性化服务旨在为用户提供个性化的搜索体验,个性化服务会根据用户的实时行为反馈搜索结果。而QP(Query Planner)会对用户的搜索请求进行分析(搜索词、搜索场景、页面)进一步个性化搜索服务。在搜索引擎层,通过这三个系统的互相配合为上层的业务层提供个性化的搜索数据。

不同的业务对应的搜索排序结果不同,阿里搜索引擎中排序部分是通过类似链式处理的方式实现的,内部称为排序链。排序链是由不同的用户特征对应的算法插件组合而成,算法插件是单独存在的,可以根据具体情况组合到不同业务的排序链中。目前在线上运行的排序链有几十条,系统会根据不同的业务、用户、场景、Query选择不同的排序逻辑

双十一优化

而在双十一这样的高并发活动中,搜索引擎需要保证流量的合理分配,比如搜索结果中不能显示售罄的商品。但是对于一些热门商品,从库存充足到售罄可能是几分钟的时间。为了保证搜索结果的实时性,阿里搜索引擎架构针对这样的场景做了优化,去掉了不能感知业务变化的缓存(业务层),重点优化搜索引擎层的缓存。以商品售罄的场景为例,当商品售罄时,业务系统会发送异步消息通知离线集群,离线集群通过流式计算将更新同步到引擎,而当引擎返回搜索结果时,会在缓存的基础上对结果进行二次过滤,从而保证搜索结果的实时性和准确性。

另外,在今年双十一中,天猫搜索底层第一次使用精确到更新粒度的SKU(Stock Keeping Unit)引擎代替之前的宝贝引擎,底层引擎索引量较之前翻了几番。天猫从召回逻辑、前端的属性展示、筛选以及搜索结果页到详情页的联动,向用户提供了精确度更高、更细致的搜索购物体验。对于标类产品,基于SKU引擎的搜索导购缩短了用户的搜索购物路径,比如搜索iPhone 5s后,SKU引擎会显示对应的销售属性,方便用户选择。此外在SKU引擎的基础上,天猫还实现了用户的尺码个性化,在包含确定尺码信息的类目中,如鞋、文胸,天猫可以匹配用户的尺码个性化信息,将适合的商品优先展示给用户。InfoQ会在后续文章中与相关技术专家剖析sku引擎的设计思路与实现,敬请期待。

郭蕾

时间: 2024-10-12 11:16:57

天猫11.11:搜索引擎实时秒级更新的相关文章

[转]天猫11.11:搜索引擎实时秒级更新

搜索是很多用户在天猫购物时的第一入口,搜索结果会根据销量.库存.人气对商品进行排序,而商品的显示顺序往往会决定用户的选择,所以保证搜索结果的实时性和准确性非常重要.在电商系统中,特别是在“双十一”这样的高并发场景下,如何准确展示搜索结果显得尤为重要.在今年的“双十一”活动中,InfoQ有幸采访到了阿里巴巴集团搜索引擎的三位负责人仁基.桂南和悾傅,与他们共同探讨了搜索引擎背后的细节.以下内容根据本次采访整理而成. 阿里巴巴的搜索引擎承担着全集团的搜索业务,包括淘宝.天猫.1688等系统,对比传统的

揭秘天猫双11背后:20万商家600万张海报,背后只有一个鹿班

摘要: 今年双11,鹿班除了继续为天猫淘宝平台提供更好的设计服务之外,首次将人工智能设计能力普惠给到了所有天猫淘宝的商家进行使用.为商家提供智能设计的同时,鹿班对接了淘宝天猫的图片投放平台,所有生成的活动图片能够以最快速最方便的方式进行投放和展示,极大的提高商家的活动操作效率,帮助商家更好的完成好双11各种活动. 还记得去年双11,秋裤厂商带着"五彩斑斓的黑"需求找设计师的故事吗? 现在,已经有超过20万客户把这个AI设计师鹿班带回家. 今年,鹿班除了为天猫淘宝平台提供服务之外,还通过

《深入应用C++11:代码优化与工程级应用》勘误表

<深入应用C++11:代码优化与工程级应用>勘误表,会不断更新,欢迎读者留言或发邮件([email protected])给我提出宝贵意见. 1.第7.3节目录final和override关键字应该改为标识符: 这个问题由网友“李奥霍克”和“Cu2S”指出在此表示感谢. 2.page 156, 倒数第三行代码newint应该为new int 3.page 177,倒数第三行语句unique_lock多写了一个,应该去掉一个. 上面这两个问题是读者玄龠指出的,在此表示感谢. 也欢迎更多的读者来指

小米4天猫双11,双11买东西,双11外场红包入口淘宝活动地址入口taobao

[>>>点此查看更多会场] 2014双十一来了,本页面收集所有双11活动入口,攻略更新 请收藏! 柔软舒适,很好看, 质量很好,太值得了 -------------------------------------------------------------------------我现实穿36的 但是我买了37的 大了一点点 很时小米4天猫双11,双11买东西,双11外场红包入口尚个性 [双十一活动电器城会场] 店家服务好,物流神速,衣服质量.做工都好,就是袖子有点长,全五分 cjw小

阿里云新功能:EIP高精度实时互联网流量秒级监控

大家好,很高兴向大家介绍一下高精度秒级监控 很高兴的告诉大家,阿里云弹性公网IP即日起支持高精度秒级监控了.而令人激动的是,这可能是史上最好用的实时业务流量监控功能,没有之一. 众所周知,弹性公网IP(EIP)承载了海量的互联网BGP流量,这些流量实时性要求很高,对公网带宽的质量要求也很高.如果公网带宽跑满未及时扩容,很容易出现业务流量限速丢包,进而引发客户端访问质量恶化的和用户体验的直线下降. 对于极度关注和珍视用户体验的互联网内容提供方,是十分在意互联网流量的实时监控的.如果业务流量超过预设

CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放 《CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放》来自张戈博客

张戈博客很久以前分享过一个CC攻击的防御脚本,写得不怎么样,不过被51CTO意外转载了.博客从此走上了经常被人拿来练手的不归之路. 当然,还是有不少朋友在生产环境使用,并且会留言询问相关问题.根据这些问题的需求,我花了一些时间重新写了一个比较满意的轻量级CC攻击防御脚本,我给它取了一个比较形象的名字:CCKiller,译为CC终结者. 一.功能申明 分享之前我必须先申明一下,众所周知,DDoS攻击指的是分布式拒绝服务.而CC攻击只是DDoS攻击的一种,本文所阐述的CC攻击,指的是每个IP都以高并

阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读读后感

阅读文章:阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读 文章网址:https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247488245&idx=1&sn=1c70a32f11da7916cb402933fb65dd9f&chksm=e9292ffade5ea6ec7c6233f09d3786c75d02b91a91328b251d8689e8dd8162d55632a3ea61a1&scene=2

保驾11.11 京东多中心交易系统技术解析

保驾11.11 京东多中心交易系统技术解析 2015-11-12 程序员的那些事 来源:IT168 ,作者:刘策 一年一度的“11.11”电商节购物狂欢季,各大电商平台也纷纷摩拳擦掌准备大干一场.但是网友消费热情的上涨不免对电商平台后端的数据中心提出更高的要求,许多消费者或许还记得几年前由于系统原因造成的卡单.丢单等事情,大大影响了用户体验.为此,近年来各家电商也都提前准备应对策略,积极的寻求瞬间大流量的解决办法. 日前,京东召开11.11技术备战大会,详细介绍了京东如何应对即将到来的“11.1

微博广告Hubble系统:秒级大规模分布式智能监控平台架构实践

关键词:微博广告 Hubble 监控平台 D+ 大数据 机器学习 LSTM Tensorflow 业务背景 Hubble(哈勃,其含义是数据如浩瀚宇宙之大,Hubble 如太空望远镜,能窥见璀璨的星辰,发现数据的真正价值)平台定位为微博广告智能全景监控.数据透视和商业洞察. 计算广告系统是集智能流量分发.投放.结算.CTR 预估.客户关系管理等为一体的大型互联网业务系统.随着微博业务的快速增长,广告系统复杂度越来越高,成千上万的模块需要不停地进行计算和通信,如何保证这么复杂的系统正常健康运行是一