标准回答
两层结构:召回 + 排序
智能搜索框本质是「召回 + 排序」两层。召回用混合检索:一路 BM25 关键词匹配保证精确命中(型号、专有名词),一路 embedding 语义匹配处理「换个说法」的查询,两路结果合并去重。
自动补全/建议
用户打字时下拉提示用两种来源:基于历史热门 query 的前缀匹配(Trie 或 ES completion suggester),以及最近搜索记录。要求极低延迟,一般独立于主搜索链路,几十毫秒内返回。
提精度的两个手段
- Rerank:召回 Top-50 后用 cross-encoder 重排模型逐条精算相关性,取 Top-10 展示,精度显著提升但增加延迟。
- 查询改写:先用规则或小模型做纠错、同义词扩展、口语转检索词,再去召回。
必须做评测
整理一批「query→期望结果」标注集,用召回率、NDCG 等指标衡量,每次改动都回归,否则调参全凭感觉。
常见误区
⚠️ 常见踩坑
只上语义搜索丢掉关键词,结果搜精确型号/编号反而搜不到;rerank 全量召回都过一遍,延迟爆炸——应该只对 Top-K 候选 rerank。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。