<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>检索优化 on AI 观察</title><link>https://ai.wujiong.cc/tags/%E6%A3%80%E7%B4%A2%E4%BC%98%E5%8C%96/</link><description>Recent content in 检索优化 on AI 观察</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 18 Oct 2026 11:41:00 +0800</lastBuildDate><atom:link href="https://ai.wujiong.cc/tags/%E6%A3%80%E7%B4%A2%E4%BC%98%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>RAG 查询改写实战：把用户口语问题变成好检索的查询</title><link>https://ai.wujiong.cc/posts/2026-10-18-rag-query-rewrite-tutorial/</link><pubDate>Sun, 18 Oct 2026 11:41:00 +0800</pubDate><guid>https://ai.wujiong.cc/posts/2026-10-18-rag-query-rewrite-tutorial/</guid><description>&lt;p&gt;知识库问答答不好，很多时候不是模型的问题，而是检索没找到对的段落。&lt;strong&gt;在检索前加一步“查询改写”——补全对话中的指代、把复合问题拆开、生成几个不同角度的查询——往往能明显改善召回，而且改动成本低。&lt;/strong&gt; 改写效果要用你自己的问题集评估。&lt;/p&gt;
&lt;h2 id="为什么需要改写"&gt;为什么需要改写&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;指代省略&lt;/strong&gt;：多轮对话里用户问“那它支持退款吗？”，“它”是什么检索不到；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复合问题&lt;/strong&gt;：“年假怎么算，离职时没休完怎么办？”包含两个问题；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用词不一致&lt;/strong&gt;：用户说“报销单”，文档里写的是“费用申请表”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="四种改写方式"&gt;四种改写方式&lt;/h2&gt;
&lt;h3 id="1-结合对话历史补全"&gt;1. 结合对话历史补全&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;根据对话历史，把用户最新的问题改写成一个独立、完整的问题，补全所有指代。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;只输出改写后的问题。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;对话历史：【最近 3–5 轮】
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;最新问题：【】
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-拆分复合问题"&gt;2. 拆分复合问题&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;如果下面的问题包含多个子问题，请拆分为独立问题，每行一个；如果只有一个，原样输出。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;问题：【】
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;每个子问题分别检索，再把结果合并交给生成模型。&lt;/p&gt;</description></item></channel></rss>