GEO

查询改写

查询改写是指在将用户的原始问题送入搜索引擎、RAG 系统或 AI 搜索之前,先把它转换为更适合检索的形式的做法。它涵盖一系列转换方式,比如消除含糊问题的歧义、解析代词、用同义词扩展,或拆解为多个子问题。

查询改写是指在将用户的原始问题送入搜索引擎、RAG 系统或 AI 搜索之前,先把它转换为更适合检索的形式的做法。它涵盖一系列转换方式,比如消除含糊问题的歧义、解析代词、用同义词扩展,或拆解为多个子问题。

为什么重要

用户实际输入的问题并不是为检索而优化的。它们依赖上下文("这个东西怎么做")、省略词语("inblog 多少钱"),或者把多个意图捆绑在一起("GEO 和 SEO 的区别以及该怎么做")。把这些直接送入向量数据库会引入噪声。查询改写能大幅提升检索准确度和引用质量,到 2026 年,它已成为生产级 RAG 流程中的标准预处理步骤。

常见技术

查询扩展:添加同义词和相关词。"博客平台推荐"会变成"博客平台推荐 CMS WordPress Medium inblog"。这能提高语义搜索的召回率。

查询拆解:将多意图问题拆成多个子问题。"GEO 和 SEO 有什么区别,我该怎么应对?"会变成四个查询:"什么是 GEO?""什么是 SEO?""GEO 与 SEO 的区别?""GEO 应对策略?"它与查询扇出密切相关。

指代消解:利用之前的对话,把代词替换为明确的名词。"那个多少钱?"会变成"inblog Business 套餐多少钱?"

HyDE(假设性文档嵌入):模型先针对问题生成一个假设性答案,再把这个答案嵌入用于检索。答案在结构上比问题更接近真实文档,因此能提升检索精度。

查询重述:把含糊的问题改写得更清晰。"它不工作"会变成"为什么我的博客文章发布后没有出现在搜索结果中?"

跨语言翻译:即便用户用韩语提问,系统也会同时运行翻译后的英文版本,以便检索出英文文档。

处理流程

  1. 用户查询输入:接收原始的自然语言问题
  2. LLM 改写:专门的提示词分析查询并生成改写后的形式
  3. 嵌入:对每个改写后的查询进行嵌入
  4. 向量搜索:从向量数据库中检索相关的文本块
  5. 重排序:用重排序器优化结果
  6. 生成:将排名靠前的文本块送入 LLM 生成最终答案

对 GEO 的意义

用户输入的查询和实际命中向量数据库的改写后查询是不同的。GEO 策略必须设计出同时匹配改写后查询的内容。

问题形式的标题:使用"什么是 X?""如何做 Y?""X 与 Y 的区别"这类标题,能直接匹配拆解后的子问题。

同义词和双语术语:同时提供专有名词和通用术语、英文及本地名称、完整写法和缩写,有助于命中查询扩展。

明确的答案句:每一节都以"X 是……"这样的陈述句开头,能匹配 HyDE 生成的假设性答案。

对比型内容:"A vs B"结构的文章在对比型查询被拆解时,能一次性自然匹配多个子问题。

Sources: