儒文网 > 杂谈 > 正文

​闲鱼怎么搜索用户

2026-01-31 12:54 来源:儒文网 点击:

闲鱼怎么搜索用户

闲鱼怎么搜索用户

搜索是电商平台的核心流量入口,承载着平台主要的意图收敛完善的商品搜索系统, 并根据闲鱼二手交易的差异化特性介绍搜索引擎的基本概念

索引

• _ 红色苹果手机, doc1_

• _ 红色苹果, doc2_

• “红色”,“苹果” -> doc1, doc2

• _“手机” -> doc1 _

某单词在文档存储位置的映射。它是文档检索系统中最常用的数据结构。

fieldInfo的过程。

排序方法匹配召回的结果集,通过特定的排序规则呈现。这里的排序规则,可以是单一维度的排序(如按价格、销量、发布时间);人工设置的权重分;相关性得分;特定场景的模型打分等。

基于这三个基本概念,搜索动作就可以简化地理解为“1)请求接入模块 -> 应用层

处理客户端或h5请求,参数校验应用层承载2)应用层 -> 排序接入层

3)排序接入层 -> 意图预测模块

负责分词并预测搜索请求的实际意图,包括错词改写(例:平果->苹果)、同义词的合并(例:pingguo->苹果),类目预测(例:“苹果”出手机,还是出水果,它们各自的权重又是多少?)。

5)排序接入层 -> 精排模型打分

由于RT的限制,搜索引擎内部无法完成对海量商品复杂度较高的打分计算。这一步的工作,将引擎召回的商品集送入更精准的打分系统进行算分。为什么不把打分服务放在引擎内部?技术上是可行的,但由于打分服务变更频率频繁,而引擎相对稳定,处于系统迭代稳定性的考虑,独立拆分精排打分服务是更好的选择。

7)排序接入层 -> 应用层

排序完成的商品列表,在应用层补充实时信息,如各类标签,促销信息等。同时,将商品搜索结果与广告等各类投放组装层最终的搜索结果页。

搜索引擎离线模块

批次增量索引 (IncIndex):根据周期内(通常30分钟到1小时)数据产出方发送的增量消息(如:商品修改信息),在BuildService上构建成索引段,定期发送给Ha3加载,引擎存在多段批次增量。

应用层异地多活

投放系统 ——资源位与配置的投放

Debug平台 ——可视化的在线debug工具,负责线上请求回放、舆情排查等

然后,优化它:闲鱼搜索系统时效性优化差异化场景

上一章节提到的搜索系统架构适用于大部分电商平台,但闲鱼搜索场景与常规电商平台之间,又存在着显著差异。

其中,闲鱼商品无明显冷热差异实时处理能力都提出较高的要求。试想一下,热门的商品被买下架后,并没有及时同步引擎。对买家、卖家和平台来说都是一种困扰与损失。

闲鱼搜索经年累月的业务迭代,累积了相当量级的实时增量。最严重的时期,引擎的增量延时一度达到8小时之久,对用户体验、成交效率形成了巨大冲击。因此过去的一段时间,我们开启了查询引擎缓解增量压力的同时,机器资源消耗也有所降低。

增量分级

做了以上两个优化后, 增量延迟有所缓解,但整体的增量量级并没有下降多少。因此在离线链路中,我们开发了增量Profile插件,用来统计字段修改的频率。

其中两个字段合计占到修改量的37%(总400+字段), 经排查,两个字段并不需要秒级的实时性。引擎延迟抹平,达到真正实时化搜索的定义( 基本无延迟, 红框部分为全量后追增量阶段, 采用逐行Rolling模式, 切换中机器不服务,对用户体验无感知)。

最后

电商平台的搜索是一项系统性工程, 经过多年发展,已沉淀出一套通用性的框架。里面不仅包含对搜索引擎的理解,也体现服务端架构设计的可伸缩、平行扩展等概念。但仅有框架的认知还不足以支撑快节奏的互联网业务发展。在通用框架的基础上,深刻理解搜索业务,关注稳定性、研发效能,找到应用场景的痛点,有针对性的做出架构调整,才能构建出真正助力业务发展的搜索系统。