詳細解釋
將文檔集合建立可搜索索引的過程,讓 RAG 系統能快速檢索相關內容。這是「文檔問答」系統的基礎設施。
索引類型:
- 倒排索引:詞 → 文檔列表,BM25 使用
- 向量索引:文檔嵌入 → 近似最近鄰,語義搜索
- 混合索引:關鍵詞 + 語義組合
- 結構化索引:章節、標題、表格等層級結構
處理流程:
- 文檔解析:PDF、Word、HTML → 純文本
- 分塊:按段落、章節或固定長度分割
- 預處理:去停用詞、詞幹提取、標準化
- 特徵提取:TF-IDF、詞嵌入、句子嵌入
- 索引構建:存儲到搜索引擎或向量數據庫
工具:
- Elasticsearch:全文搜索,BM25
- Pinecone/Weaviate/Qdrant:向量搜索
- Algolia:託管搜索服務
- 自建:Faiss、Annoy 近似最近鄰
優化考量:
- 增量更新:新文檔加入無需重建整個索引
- 分片:大規模文檔分布存儲
- 緩存:熱門查詢結果緩存
- 實時性:索引更新延遲 vs 查詢性能權衡
在 RAG 中的作用:
- 決定「檢索質量」—— 再強的 LLM,檢索錯誤文檔也無法回答
- 影響「延遲」—— 索引設計決定響應速度
- 影響「成本」—— 索引規模決定存儲和計算費用
這是「知識管理」的技術基礎—— 沒有好的索引,海量文檔無法有效利用。