48 lines
1.8 KiB
Markdown
48 lines
1.8 KiB
Markdown
---
|
||
title: "Indexing"
|
||
type: concept
|
||
tags: [RAG, 向量数据库, 文档处理]
|
||
sources: [rag从入门到精通系列1-基础rag]
|
||
last_updated: 2025-01-16
|
||
---
|
||
|
||
## Definition
|
||
|
||
Indexing(索引阶段)是 RAG(检索增强生成)管道的第一阶段,负责将外部文档转换为可检索的向量表示并存入向量数据库。
|
||
|
||
## Core Process
|
||
|
||
```
|
||
原始文档 → 文档加载器 → 文本切分(Split) → Embedding向量化 → 存入Vector Store
|
||
```
|
||
|
||
1. **文档加载(Loading)**:通过 LangChain 等框架的 Document Loader 从多种来源(网页/本地文件/数据库等)加载原始文档
|
||
2. **文本切分(Splitting)**:将长文档切分成适合 Embedding Model Context Window 的小块(Split),通常 512~4096 token
|
||
3. **向量化(Embedding)**:使用 Embedding Model(如 BAAI/bge 系列)将文本块转换为固定长度的向量表示
|
||
4. **存入向量数据库**:将 Embedding Vector 存入 Vector Store(如 Qdrant、Chroma、Milvus 等)
|
||
|
||
## Key Parameters
|
||
|
||
- **Chunk Size**:每个 Split 的 token 数量,需平衡上下文完整性和模型限制
|
||
- **Chunk Overlap**:相邻 Split 之间的重叠 token 数,防止信息在切分边界丢失
|
||
- **Embedding Model**:决定向量质量和检索效果的模型(如 BAAI、OpenAI text-embedding-3、BGE 等)
|
||
|
||
## Tools
|
||
|
||
- **LangChain**:提供 160+ 文档加载器和向量存储集成
|
||
- **LlamaIndex**:专注数据连接和索引的 LLM 应用框架
|
||
- **Qdrant**:Rust 编写的开源向量数据库,支持过滤和混合检索
|
||
|
||
## Connections
|
||
|
||
- [[Indexing]] ← part_of ← [[RAG]]
|
||
- [[Indexing]] ← uses ← [[Embedding]]
|
||
- [[Indexing]] ← produces ← [[Vector-Store]]
|
||
- [[Indexing]] ← depends_on ← [[Context-Window]]
|
||
|
||
## Aliases
|
||
|
||
- Document Indexing
|
||
- Chunking
|
||
- 文档索引
|