【王树森搜索引擎技术】概要04:搜索引擎的链路(查询词处理、召回、排序)

搜素引擎的链路

  • 分为查询词处理,召回,排序

查询词处理

分词

  • 分词:冬季卫衣推荐 -> 冬季 / 卫衣 / 推荐
  • 为什么要做分词:文本召回根据词在倒排索引中检索文档
  • 倒排索引的 key 大多是 冬季,卫衣, 推荐这样的常用词,数量不大
  • 加入倒排索引的 key 是冬季卫衣推荐这样的词,倒排索引会过于巨大

词权重

  • 冬季卫衣推荐 -> 冬季 / 卫衣 / 推荐,三个词同等重要吗"?可以丢弃某个词吗?
  • 词权重:卫衣>冬季>推荐
  • 为什么要计算词权重?如果查询词太长,没有文档可以同时包含其中的所有词,需要丢弃不重要的词
  • 计算查询词与文档相关性时,可以用词权重做加权

类目识别

  • 每个平台都有各自的多级类目体系
    • 一级类目:美妆
    • 二级类目:彩妆,护肤,美甲,香水
  • 用NLP技术实别文档,查询词的类目
    • 在文档发布或被爬虫获取到时,离线识别文档类目
    • 在用户做搜索时,在线实别查询词的类目
    • 召回模型,排序模型将文档,查询词类目作为目的特征

查询词意图识别

  • 时效性意图:查询词对文档"新"的需求,召回和排序均需要考虑文档的年龄
  • 地域性意图:召回和排序不止需要文本相关性,还需要结合用户定位地点,查询词提及的地点,文档定位的地点
  • 用户名意图:用户想要找平台中某位用户,应当检索用户名库,而非检索文档库
  • 求购意图:用户可能想要购买商品,同时在文档库,商品库中做检索
  • 还有很多别的意图,一个查询可能包含多个意图

查询词改写

  • 用户输入查询 q,算法将其改写为多个查询词
  • 查询词改写有什么用?
  • 第一:解决语义匹配,但文本不匹配的问题
  • 解决召回文档数量过少的问题

召回

  • 给定查询词 q,从文档库中快速检索数万篇可能与 q 相关的文档 d
  • 文本召回:借助倒排索引,匹配 q 中的词和 d 总的词
  • 向量找回:将 q 和 d 分别表征为向量 x q x_q xq 和 z d z_d zd ,给定 x q x_q xq ,查找相似度高的 z d z_d zd
  • KV召回,对于高频查询词 q, 离线建立 q->List(d) 这样的 key-value 索引。线上直接读取索引,获取 q 相关的文档

文本召回

  • 离线处理文档,建立倒排索引。
  • 给定词 t,可以快速找到所有包含 t 的文档
  • 给定查询词 q,做分词得到多个词 t 1 . ⋅ ⋅ ⋅ . t k t_1. ···. t_k t1.⋅⋅⋅.tk
  • 对于每个词 t i t_i ti ,检索倒排索引,得到文档的集合 D i D_i Di
  • 求 k 个集合的交集,作为文本召回的结果
  • 交集可能很小,甚至为空。因此需要对 q 做丢词,改写

向量召回

KV召回

排序

  • 前面的内容,相关性最重要

相关推荐
tan180°1 小时前
Boost搜索引擎 网络库与前端(4)
linux·网络·c++·搜索引擎
2301_781668611 小时前
Elasticsearch 02
大数据·elasticsearch·搜索引擎
LaughingZhu3 小时前
Product Hunt 每日热榜 | 2025-09-07
人工智能·经验分享·搜索引擎·产品运营
tan180°6 小时前
Boost搜索引擎 查找并去重(3)
linux·c++·后端·搜索引擎
在未来等你2 天前
Elasticsearch面试精讲 Day 9:复合查询与过滤器优化
大数据·分布式·elasticsearch·搜索引擎·面试
LQ深蹲不写BUG2 天前
ElasticSearch 基础内容深度解析
大数据·elasticsearch·搜索引擎
AIbase20243 天前
AI时代企业获取精准流量与实现增长的GEO新引擎
人工智能·搜索引擎·百度
小小菜鸟,可笑可笑3 天前
Bing 搜索引擎检索语法
搜索引擎
和科比合砍81分3 天前
ES模块(ESM)、CommonJS(CJS)和UMD三种格式
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客4 天前
Elasticsearch 的 JVM 基础知识:指标、内存和监控
java·大数据·elasticsearch·搜索引擎·全文检索