闲鱼如何高效打造一个多业务、低侵入的搜索链路

闲鱼搜索面临多角色、多业务、多节点的复杂性,导致迭代效率低、风险高。解决方案是通过引擎隔离、多引擎并发召回和实时干预能力,提高迭代效率,降低风险,支持业务混排。目前已在闲鱼无忧购和向量引擎场景落地,带来更快构建、接入速度,更好的用户体验和资源节省。未来将继续优化隔离、流控和用户使用门槛。
摘要由CSDN通过智能技术生成

问题及现状

闲鱼搜索很多场景基于集团搜索中台能力,纵观闲鱼搜索链路,存在多角色(工程、算法工程、算法等)、多业务(闲鱼无忧购、租房、帖子等)、多节点(离线数据源聚合、在线召回、URF Rank等),具有明显的复杂性。并且闲鱼主搜仅存在一条链路支持搜索多业务发展,各角色、各业务、各节点处于高耦合串行迭代模式。在大数据量、多业务、多角色并行场景下,以下问题日益明显: 

1、迭代效率低、排期长,无法满足新业务快速迭代诉求:主要体现在数据量大,单次迭代周期长,以及多业务、多角色串行操作,耦合严重; 

2、风险高:不同业务、不同特性均在主引擎召回链路执行修改,侵入大,风险高; 

3、干预能力弱,业务间混排能力不足:缺少干预扶持能力,无法有效为创新业务提供定制化孵化能力。

闲鱼一次请求完整流程如下:

注:QP,即Query Planner,主要用于预测用户query搜索意图。

SP在测试环节下调用拓扑示例如下:

关键节点:

blender是SP服务核心入口,主要职责包括解析用户query意图、引擎分页召回、搜索数据补齐等功能。

uniq_session是召回核心入口,通过引擎召回、分页处理、URF Rank等操作,获取最终商品列表 

ha3_searcher是引擎召回入口,翻译用户query为HA3引擎查询query,请求引擎在线服务,召回满足条件商品信息 

uniq_summary是商品信息补充入口,依据商品id列表,补齐商品详细信息并返回,最终在搜索结果页呈现给用户

背景概述

闲鱼搜索很多场景基于集团搜索中台能力,搜索引擎分为数据源聚合(离线dump)、全量/增量/实时索引构建及在线服务等部分,通过集团内部一系列处理阶段,对客户提供高可用高性能的搜索服务。服务架构如下:

其中:

SP/SPL是集团内一套构建于Wunder上的开发工具,提供开发测试打包上线的视图界面以及一套业务函数库。HA3是一套基于suez框架的全文检索引擎,提供丰富的在线查询子句,过滤子句,排序子句,聚合子句且支持用户自定义开发排序插件。

Qrs用于接收用户查询,将用户查询分发给Searcher,收集Searcher返回的结果作整合,最终返回给用户。Searcher是搜索查询的执行者,主要包括倒排索引召回、统计、条件过滤、文档打分及排序及摘要生成。在实际

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值