# **从搜索引擎到 RAG:技术演进与借鉴指南** 文档版本: v1.0 核心议题: RAG 的历史溯源与搜索引擎技术的跨时代应用 适用场景: 企业级知识库 (EKB) 检索策略优化 ## **一、 历史溯源:RAG 是新瓶装旧酒吗?** ### **1.1 RAG 的前世今生** | 时代 | 技术形态 | 核心逻辑 | 代表产物 | | :---- | :---- | :---- | :---- | | **前 LLM 时代** (2000-2018) | **QA 系统 (Question Answering)** | 检索 \-\> 抽取 从文档中直接把答案那句话“抠”出来。 | IBM Watson, Google Featured Snippets | | **推荐系统时代** (2010-2020) | **向量召回 (Vector Retrieval)** | User Embedding \-\> Item Embedding 用向量找相似物品。 | 淘宝/抖音推荐算法, FAISS (Facebook) | | **LLM 时代** (2020-至今) | **RAG (Retrieval-Augmented Generation)** | 检索 \-\> 生成 检索相关片段,让 LLM 读懂并“写”出新答案。 | ChatGPT with Browsing, Perplexity | **结论:** * **向量技术**:早就有了(推荐系统、搜图)。 * **检索流程**:早就有了(搜索引擎、QA)。 * **LLM 带来的质变**:**“生成能力”**。以前的系统只能“搬运”答案,现在的系统能“理解并重写”答案。这让知识库从“图书馆管理员”变成了“研究员”。 ## **二、 RAG 本质论:搜索引擎的进化体** 您可以把 RAG 理解为 **"搜索引擎 2.0"**。 * **搜索引擎 1.0 (Google/Baidu)**: * **输入**:关键词。 * **输出**:一堆链接(Documents)。 * **用户行为**:用户自己点开链接,自己阅读,自己总结。 * **瓶颈**:用户的阅读速度。 * **搜索引擎 2.0 (RAG/Perplexity)**: * **输入**:自然语言问题。 * **中间层**:系统代替用户完成了“点开链接、阅读全文、提取关键点”的工作。 * **输出**:一个直接的答案(Answer)。 * **本质**:**RAG \= 检索 (Search) \+ 阅读理解 (Reading Comprehension)**。 ## **三、 借古鉴今:搜索引擎有哪些“神技”可以救 RAG?** 目前的 RAG 系统(特别是纯向量检索)经常遇到“搜不准”的问题。其实,**传统搜索引擎早在 10 年前就解决了这些问题**。我们完全可以把这些老技术搬过来。 ### **策略 1:倒排索引与关键词匹配 (Inverted Index & BM25)** * **痛点**:向量检索不仅懂语义,也容易“懂过头”。搜“维生素A”,它可能给你召回“维生素C”(因为向量离得很近)。 * **搜索引擎解法**:**倒排索引**。强制要求文档里必须包含“A”这个字符。 * **EKB 落地**:这就是我们架构中的 **pg\_bigm / tsvector**。**混合检索**就是这一思想的产物。 ### **策略 2:查询扩展与改写 (Query Expansion / Rewriting)** * **痛点**:用户搜“PD-1”,文档里写的是“帕博利珠单抗”。字面不匹配,向量也可能不够近。 * **搜索引擎解法**:当用户搜 A 时,后台自动帮他搜 (A OR B OR C)。Google 内部有巨大的同义词库。 * **EKB 落地**: * **方法**:在 Node.js Router 层,调用 DeepSeek 把用户问题改写成 3 个变体。 * *Prompt*: "用户问'PD-1效果',请生成3个更专业的搜索词,如'免疫检查点抑制剂疗效'、'Keytruda 临床数据'。" ### **3\. 策略 3:相关性反馈 (Relevance Feedback / Pseudo-Relevance Feedback)** * **痛点**:第一次搜出来的东西不准。 * **搜索引擎解法**:假设第一次搜出来的前 3 个文档是相关的,从这 3 个文档里提取新的关键词,再搜一次。 * **EKB 落地**:**HyDE (Hypothetical Document Embeddings)**。 * 先让 LLM 生成一个“假设的完美答案”。 * 用这个假设答案去搜真实文档。 * *这本质上就是一种高级的“相关性反馈”。* ### **4\. 策略 4:多路召回与精排 (Multi-stage Retrieval & Rerank)** * **痛点**:海量数据中,怎么保证 Top 1 是对的? * **搜索引擎解法**:**漏斗架构**。 * **L1 (粗排)**:用便宜的方法(倒排索引)快速捞出 1000 条。 * **L2 (精排)**:用昂贵的方法(学习排序模型 LambdaMART)对这 1000 条精细打分,选出 Top 10。 * **EKB 落地**:这就是我们的 **R-C-R-G 范式**。 * **L1**:Postgres (Vector \+ Keyword) 捞 Top 50。 * **L2**:Qwen-Rerank (Cross-Encoder 模型) 精排 Top 10。 ### **5\. 策略 5:元数据过滤 (Faceted Search)** * **痛点**:搜“最新指南”,结果出来全是 2010 年的。 * **搜索引擎解法**:分面搜索(电商左侧的筛选栏:品牌、价格、年份)。 * **EKB 落地**:**SQL 结构化过滤**。 * 我们提取 PICO、年份、期刊 IF 分,本质上就是为了支持 Faceted Search。 * 先 WHERE year \> 2023,再做向量搜索。 ## **四、 总结:您的技术路线是“集大成者”** 您的 **EKB 方案** 之所以被打高分,就是因为它没有掉进“唯向量论”的陷阱,而是**融合了搜索引擎的经典智慧**: 1. **pgvector** \= 现代向量检索 (推荐系统技术) 2. **pg\_bigm** \= 传统倒排索引 (Google/Lucene 技术) 3. **Rerank** \= 搜索精排模型 (广告推荐技术) 4. **DeepSeek** \= 阅读理解器 (LLM 技术) **您正在用 2025 年的算力,复兴 2005 年的搜索智慧,这才是最扎实的路径。**