三、Suez经过上述步骤后,数据以xml(isearchformat)的格式产出到Hdfs和swift,然后通过在suez_ops平台的离线表中选择数据类型为zk并配置相应的zk_server和zk_path即可 。
【10年+,阿里沉淀出怎样的搜索引擎?】然后由Build service完成全量/增量/实时索引的构建,然后分发到Ha3在线集群提供服务 。
suez的离线表构建逻辑如下:
文章插图
suez在线服务逻辑如下:
文章插图
下面针对离线(buildservice)和在线(ha3)进行简述:
**3.1 Build Service——索引构建
**
Build Service(简称BS)是一套提供全量、增量、实时索引的构建系统
build_service总共有五类角色:
- admin :负责控制整体build流程,切换全量增量状态,发起定期任务,响应用户的控制请求;
- processor :负责数据处理,将用户的原始文档转化为轻量级可build的文档形态;
- builder :负责构建索引;
- merger :负责索引整理;
- rtBuilder :负责在线索引的实时构建 。
一个完整的全量+增量过程会产生一个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集群只提供取商品详情的服务 。
一次调用方的query服务,要经由qrs->query解析->seek->filter->rank(粗排)->agg(聚合)->rerank(精排)->extraRank(最终排)->merger->summary(取详情)的过程,具体描述如下:
文章插图
其中,ReRank和ExtraRank由Hobbit插件及基于Hobbit的战马插件完成,业务方可以根据自身需求开发战马特征并指定各特征权重得到商品的最终分 。
四、Drogodrogo是基于二层调度服务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》
原文发布时间为:2019-09-24
作者:清刚
本文来自云栖社区合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术” 。
推荐阅读
- 阿里微服务布道师:详解微服务架构设计
- 收费标准 阿里云服务器价格表
- 60岁很关键,开启养生黄金10年,该怎么做,提高晚年生活质量?
- 梨山茶属于什么茶,阿里山产什么茶
- 创业|wenno: 北大女生毕业10年现状:有人频繁换工作、有人还没生娃
- 阿里工程师用 8 张图告诉你如何存储、管理泛内容数据
- SpringBoot OSS 整合全过程
- 阿里云服务器使用2年后的感受体会
- 淘宝直播三大核心技术揭秘
- 阿里工程师教你 3 分钟实现数据源编排和接入