一、Indexing 到底是什么?

Indexing = 给你的知识库做 “超级目录”

你有一堆文档:

  • PDF
  • Word
  • 网页
  • 笔记
  • 表格
  • 书籍

不能直接理解文字

不能快速查找

把 “杂乱无章的文字” → 变成 “计算机能快速检索的结构化向量数据”

它是 RAG 的前置基建,没有 Indexing,就没有检索,就没有准确回答。

二、Indexing 的完整 5 步流程(标准 RAG 架构)

所有 RAG 系统的 Indexing 都遵循这 5 步,一步都不能少:

1. 文档加载(Load)

作用:把非结构化文件 → 纯文本

2. 文本清洗(Clean)

去掉没用的东西:

  • 多余空格、换行
  • 水印、页眉页脚
  • 乱码、符号
  • 表格乱码

作用:让向量更纯净,避免噪声影响语义

3. 文本分块(Chunk)

  • 太长 → 向量无法完整表达语义
  • 太长 → 检索不精准
  • 太长 → 大模型读不完

切分规则(最关键):

  • 按段落
  • 按句子
  • 按固定长度
  • 按语义(最推荐)
  • 保留重叠(避免语义切断)

Chunk 质量 = 检索效果 = RAG 回答效果

4. 文本向量化(Embedding)

就是你刚才问的:把文字变成数字向量

1
[0.23, 0.55, -0.12, ... 768维]

作用:

  • 语义相近 → 向量距离近
  • 语义无关 → 向量距离远

5. 建立索引并存储(Index & Store)

把所有向量存到向量数据库,并建立索引结构

向量数据库包括:

  • FAISS(本地轻量)
  • Milvus(企业级)
  • Pinecone(云服务)
  • Chroma(开发常用)
  • Elasticsearch(混合检索)

索引结构:

  • HNSW(最快最常用)
  • IVF
  • Flat

用户提问 → 生成问题向量 → 一秒从几万、几十万文档里找出最相关的几段

三、Indexing 的核心作用

1. 让检索从 “几分钟” 变成 “毫秒级”

没有索引:

  • 逐字遍历所有文档 → 巨慢

有索引:

  • 用向量距离计算 → 瞬间匹配

2. 让大模型不幻觉

因为检索到真实知识 → 模型只能基于事实回答

3. 让知识库可以无限大

几十万文档照样秒查

4. 让私有数据能用在大模型里

企业数据、隐私数据、本地数据 → 全部可检索

四、Indexing 最关键的 4 个技术点

1. 分块策略(最重要)

  • 大小:300~800 字符
  • 重叠:50~100 字符
  • 按语义拆分 > 按字数拆分

2. 向量模型(Embedding Model)

决定语义理解能力:

  • 开源:all-MiniLM-L6-v2(最快)、bge-small(最准)
  • 商用:OpenAI Embedding、文心 Embedding

3. 向量数据库

决定速度和规模

4. 索引结构

决定检索效率

HNSW 是目前工业界标配。

五、Indexing 完整流程图(文字版)

1
2
3
4
5
6
7
8
9
10
11
12
13
原始文档

加载(Load)→ 纯文本

清洗(Clean)→ 去掉噪声

分块(Split)→ 一段段 Chunk

向量化(Embedding)→ 向量数组

建立索引(Index)→ 向量数据库

【完成!可用于 RAG 检索】