Files
AIclinicalresearch/docs/03-业务模块/PKB-个人知识库/00-系统设计/从搜索引擎到RAG:技术演进与借鉴指南.md
HaHafeng 40c2f8e148 feat(rag): Complete RAG engine implementation with pgvector
Major Features:
- Created ekb_schema (13th schema) with 3 tables: KB/Document/Chunk
- Implemented EmbeddingService (text-embedding-v4, 1024-dim vectors)
- Implemented ChunkService (smart Markdown chunking)
- Implemented VectorSearchService (multi-query + hybrid search)
- Implemented RerankService (qwen3-rerank)
- Integrated DeepSeek V3 QueryRewriter for cross-language search
- Python service: Added pymupdf4llm for PDF-to-Markdown conversion
- PKB: Dual-mode adapter (pgvector/dify/hybrid)

Architecture:
- Brain-Hand Model: Business layer (DeepSeek) + Engine layer (pgvector)
- Cross-language support: Chinese query matches English documents
- Small Embedding (1024) + Strong Reranker strategy

Performance:
- End-to-end latency: 2.5s
- Cost per query: 0.0025 RMB
- Accuracy improvement: +20.5% (cross-language)

Tests:
- test-embedding-service.ts: Vector embedding verified
- test-rag-e2e.ts: Full pipeline tested
- test-rerank.ts: Rerank quality validated
- test-query-rewrite.ts: Cross-language search verified
- test-pdf-ingest.ts: Real PDF document tested (Dongen 2003.pdf)

Documentation:
- Added 05-RAG-Engine-User-Guide.md
- Added 02-Document-Processing-User-Guide.md
- Updated system status documentation

Status: Production ready
2026-01-21 20:24:29 +08:00

5.4 KiB
Raw Permalink Blame History

从搜索引擎到 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 范式
    • L1Postgres (Vector + Keyword) 捞 Top 50。
    • L2Qwen-Rerank (Cross-Encoder 模型) 精排 Top 10。
  • 痛点:搜“最新指南”,结果出来全是 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 年的搜索智慧,这才是最扎实的路径。