分享好友 最新动态首页 最新动态分类 切换频道
10年+,阿里沉淀出怎样的搜索引擎?
2024-12-27 03:22

搜索引擎分为数据源聚合(俗称dump)、全量/增量/实时索引构建及在线服务等部分,以Tisplus为入口经由Bahamut(Maat进行工作流调度)->Blink->Hdfs/Swift->BuildService->Ha3->SP->SW等阶段对客户提供高可用/高性能的搜索服务。其中数据源聚合在tisplus平台和Blink平台完成,Build service和Ha3在suez平台完成,SP和SW通过drogo进行部署。具体架构图如下:

1688目前有spu、cspu,company,buyoffer和feed等引擎及offer离线在tisplus运维,该平台主要ha3和sp的搭建和维护,大体架构如下:

在日常维护中偶尔会遇到数据源产出失败的问题,主要是由于数据源表权限过期及zk抖动等原因。性能方面,在集团内搜索中台团队的引入Blink Batch模型后,dump执行时间被缩短,具体指标如下(以buyoffer引擎为例):

在tisplus平台,离线dump的入口如下:

DAG数据源图示例:

下面主要说下离线dump数据源处理流程,包括Bahamut、Maat和数据输出。

2.1 Bahamut——数据源图处理

Bahamut是离线数据源处理的组件平台,将web端拼接的数据图通过jobManager翻译成可执行的sql语句。目前Bahamut包含的组件有四类,分别是:

  1. 数据输入:datasource(支持tddl和odps)
  2. KV输入:HbaseKV(Hbase数据表)
  3. 数据处理:Rename(数据字段重命名),DimTrans(使用1对多的数据聚合),Functions(简单字段处理),Selector(字段选择),UDTF(数据逻辑处理),Merge(数据源聚合),Join(left join)
  4. 数据输出:Ha3(Hdfs/swift)

对数据源的处理过程,描述如下:

而对于Bahamut->blink过程可以陈述如下:

其中,Bahamut将任务拆解后扔给JobManager进行逻辑节点到物理节点的转换,形成若干节点后再归并组合成一个完整的SQL语句,例如上图Kratos_SQL就是一个增量Join的完整SQL,配合资源文件一起通过BayesSDK提交任务。此外,平台增加了一个弱个性化配置的功能,可以通过个性化配置来实现控制某个具体任务的并发度、节点内存、cpu等等参数。

2.2 Maat——分布式流程调度系统

Maat是基于开源项目Airflow再次开发的分布式流程调度系统,具有可视化编辑及通用的节点类型,Drogo化部署,分集群管理及完善的监控&报警机制等优点。

关于Airflow及其他工作流系统,对比陈列如下:

eed引擎为例,maat调度页面如下:

当任务错误时,可以通过该页面进行“将指定步骤置fail”然后重跑全量任务,也可以通过查看某个步骤的log获悉任务失败原因。

2.3 Ha3 doc——数据输出

经过上述步骤后,最后将数据以xml的形式(isearch format)输出到HDFS/Pangu路径(全量)和Swift Topic(增量),引擎全量时通过HDFS路径获取全量doc文件进行build,增量时直接从swift topic中获取增量更新消息更新到引擎中。离线平台通过一个服务为Tisplus引擎模块提供表信息的查询等功能,以下是一个HA3表包含的信息:

 
 

经过上述步骤后,数据以xml(isearchformat)的格式产出到Hdfs和swift,然后通过在suez_ops平台的离线表中选择数据类型为zk并配置相应的zk_server和zk_path即可。

然后由Build service完成全量/增量/实时索引的构建,然后分发到Ha3在线集群提供服务。

suez的离线表构建逻辑如下:

suez在线服务逻辑如下:

下面针对离线(buildservice)和在线(ha3)进行简述:

**3.1 Build Service——索引构建
**

Build Service(简称BS)是一套提供全量、增量、实时索引的构建系统
build_service总共有五类角色:

  • admin :负责控制整体build流程,切换全量增量状态,发起定期任务,相应用户的控制请求;
  • processor :负责数据处理,将用户的原始文档转化为轻量级可build的文档形态;
  • builder :负责构建索引;
  • merger :负责索引整理;
  • rtBuilder :负责在线索引的实时构建。

其中admin、processor、builder、merger是以二进制程序的方式运行在hippo上,rtBuilder是以lib的形式提供给在线部分使用。

一个完整的全量+增量过程会产生一个generationid,该generation会经历 process full-> builder full -> merger full ->process inc -> builder inc ->merger inc的过程,其中处于inc过程后,builder inc和merger inc会交替出现。1688在ha3升级之前经常会出现 build tooslow问题就是因为分配到了坏节点或builderinc/merger inc阶段卡住。

3.2 Ha3——在线搜索服务

Ha3是一套基于suez框架的全文检索引擎,提供丰富的在线查询子句,过滤子句,排序子句,聚合子句且支持用户自定义开发排序插件。服务架构如下:

1688主搜引擎由一组Qrs、searcher和summary组成:

  • Qrs的作用是:对输入的查询作解析与校验,通过后把查询转发给相应的;searcher,收集合并searcher返回的结果,最后对结果做一些加工并返回给用户。其中也可以通过写meger插件干预合并规则;
  • searcher:可以是文档的召回服务(searcher),也可以是文档的打分与排序服务(ranker)或者是文档的摘要服务(summary);
  • summary:1688主搜将searcher和summary分离,summary集群只提供取商品详情的服务。

qrs/searcher/summary等机器通过挂载到cm2提供服务,比如qrs有对外cm2,可以对SP等调用方提供服务,searcher和summary有对内cm2,可以接收从qrs来的请求并完成召回排序取详情等服务。

一次调用方的query服务,要经由qrs->query解析->seek->filter->rank(粗排)->agg(聚合)->rerank(精排)->extraRank(最终排)->merger->summary(取详情)的过程,具体描述如下:

其中,ReRank和ExtraRank由Hobbit插件及基于Hobbit的战马插件完成,业务方可以根据自身需求开发战马特征并指定各特征权重得到商品的最终分。

drogo是基于二层调度服务Carbon的无数据服务的管控平台,1688的SP服务及QP代理服务均部署在该平台。

1688搜索链路主要服务平台部署情况简述如下:

参考文档:
《搜索中台开发运维一体化实践-Sophon》、《基于DAG的分布式任务调度平台-Maat》、《tisplus用户操作手册》、《Build Service用户手册》、《Build Service源码》、《Ha3 用户手册》、《Ha3搜索引擎简介》、《drogo平台介绍》、《搜索离线平台系统架构及实现介绍》、《基于Blink Batch模式的搜索离线任务开发实践》、《搜索离线平台计算引擎简介——基于Blink2.2和Bayes的演进之路》、《解密双11实时计算每秒4.72亿背后的核心技术——Blink》、《SARO用户手册》、《工作流引擎比较》、《Airflow简介》、《Airflow github》

最新文章
英飞凌科技股份公司宣布已收购位于斯德哥尔摩的初创企业Imagimob有限公司,这是一家领先的平台提供商,致力于为边缘设备上的机器学习(ML)解决方案开发提供助力。通过此次收购,英飞凌进一步加强了其提供
TDK株式会社针对USB-C端口和其他高速接口的ESD保护应用推出一款超紧凑型TVS二极管。对于USB-C等符合USB4(第1版)规范且传输速度高达40 Gbit/s的高速接口 (Tx / Rx),ESD保护应用特别需要具有超低寄生电容和低钳位电压的TVS二极管。新的B74
自考靠谱的机构有哪些特点?
自考靠谱的机构有哪些特点?社会飞速发展,面临升职就业等压力,提升自我优势是必不可少的,拥有一个高学历或好文凭是关键,可以让就业的范围更广升职的机会更多。学历是判断个人素质的重要条件之一,企业也重视高学历的员工。下面本小编为
神马关键词推广_做神马关键词优化软件(神马关键词排名快速优化首页价格)
这个要具体看关键词的啊,差别的词是不一样的, 近来佛山市神马互联网科技有限公司推出关键词按天扣费很火,没有恶性点击,关键词24小时在线, 盼望可以帮到你;环境如下第一种,比方你是推广的北京地区假如你在上海,但是你账户启用了搜刮
阿里巴巴:今年营收 5000 亿,明年GMV要再增一万亿
疫情带来冲击和机遇,阿里稳健前行寻找向上新空间。5 月 22 日,阿里巴巴发布截至 3 月 31 日的 2020 年第四季度财报及全年财报。财报显示,2020 财年,阿里巴巴集团收入为人民币 5097.11 亿元,同比增长 35
Python爬虫教程——7个爬虫小案例(附源码)_爬虫实例
本文介绍了7个Python爬虫小案例,包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息,帮助读者理解并实践Python爬虫基础知识。包含编程资料、学习路线图、源代码、
运动会活动策划书
~  时间一溜烟儿的走了,工作已经告一段落了,前方等待着我们的是新工作目标和挑战,想必现在的你有必要写一写策划书了。是不是无从下笔、没有头绪?下面是我收集整理的运动会活动策划书,仅供参考,欢迎大家阅读。    一、活动前言:
比漫熊漫画,比漫熊漫画安卓最新版,比漫熊漫画下载
比漫熊漫画是一款非常好用的小说漫画软件,比漫熊漫画功能丰富,确实在多个方面为漫画爱好者们提供了优质的阅读体验,用户可以根据类型地区作者等多种方式进行筛选,比漫熊漫画允许用户根据自己的需求切换各种漫画资源源,轻松找到自己喜欢
跨境电商独立站建站平台解析,独立站如何运营?独立站优势
越来越多的人涌入跨境电商这行业,无论是大平台还是独立站,蜂拥而至的小白,新手,各种开车,各种上路,但是大家真的了解独立站这个行业麽?或者说,怎么找到未来自己的第一块根据地呢?那么咱就说说,你只要干独立站,就怎么都绕不开的这
虚拟微博热搜生成器
虚拟微博热搜生成器是一款可以让用户随时登上热门排行榜的APP,当然这是虚假的,微博是不少用户喜欢使用的一款软件,这款APP的界面与微博非常的相似,可以说一模一样,将自己喜欢的内容填充进去就可以打造一个热门排行榜,恶搞一下好友是非
问道加盟
  【市场优势】  1、媒体,网络等多方面的品牌宣传;  2、全国各地设置分支机构及战略合作伙伴,统一的品牌及企业文化导入;  3、全国各地定期举办线下交流会;  4、成为福建游龙网络科技有限公司的战略合作伙伴,共享旗下产品资
相关文章
推荐文章
发表评论
0评