什么是 查询改写(Query Rewriting)?

查询改写(Query Rewriting)是在搜索前,把用户原始问题转换为一个或多个更清晰、扩展后或更适合检索的查询的过程。

工作原理

查询改写解决的是 RAG 中常见问题:用户经常用省略、口语化或依赖上下文的方式提问,而检索系统需要更适合搜索的词项。改写步骤可以展开缩写、从对话历史补齐实体、把复杂请求拆成子查询、翻译语言,或规范化产品名称。风险是语义漂移:过度改写可能改变用户意图,检索出看似可信但不相关的证据。好的系统会记录原始查询和改写查询,并评估改写是否真正改善有依据回答。

主要特点

  • 通过让隐含或模糊意图更可搜索来改善检索
  • 可以生成单个改写查询,也可以生成多个聚焦子查询
  • 可使用规则、LLM、对话历史、元数据或领域词典
  • 如果改写改变用户意图,会带来语义漂移风险
  • 应结合检索质量和最终答案事实锚定进行评估

常见用途

  1. 在搜索技术文档前展开缩写
  2. 利用聊天历史解析代词或追问
  3. 把多部分用户请求拆成独立检索查询
  4. 把查询翻译成与索引语料一致的语言
  5. 规范化产品名称、API 版本或内部术语

示例

loading...
Loading code...

常见问题

查询改写和提示词改写是一回事吗?

不是。查询改写面向检索质量,提示词改写通常面向模型指令清晰度或输出行为。

RAG 系统什么时候应该改写查询?

追问、缩写、模糊表达、多语言语料,以及需要多次搜索的复杂请求都适合使用查询改写。

查询改写中的语义漂移是什么?

语义漂移指改写后的查询改变了用户原意,导致检索器获取看似合理但实际错误的证据。

如何评估查询改写?

可以在代表性查询集上,对比开启和关闭改写时的检索召回、上下文精确率和答案事实锚定。

相关工具

相关术语

相关文章