文章目录
- 1. 基础概念
- 1.1 索引(Index)
- 1.2 索引构建(Indexing)
- 2. 索引类型
- 2.1 摘要索引(Summary Index / List Index)
- 2.2 向量存储索引(Vector Store Index)
- 2.3 树索引(Tree Index)
- 2.4 关键词表索引(Keyword Table Index)
- 2.5 属性图索引(Property Graph Index)
- 3. 官方参考文档
1. 基础概念
1.1 索引(Index)
索引(Index)是面向查询场景、可快速匹配上下文信息的数据结构,是构成LlamaIndex检索增强生成(RAG)框架的核心基础。
从构建链路来看,索引的原始输入为文档(Documents),基于索引实例可构建查询引擎(Query Engines)和对话引擎(Chat Engines),从而实现领域私有数据上的问答交互。
底层存储层面,索引将原始文档切分后的文本块封装为节点(Node)对象进行管理,并暴露检索器(Retriever)接口,支持检索策略的自定义配置与自动化编排。
目前最常用的索引
VectorStoreIndex(向量存储索引)
1.2 索引构建(Indexing)
索引构建(Indexing):是把原始文档数据,经过解析、分块、向量化等一系列处理,最终生成可用于快速检索的索引(Index)的完整流程,属于RAG链路里数据预处理阶段。
LlamaIndex标准流程:
- 原始文档加载:读取文件、网页等原始内容,生成
Document对象 - 文档切分:将长文档切割成多个文本片段,封装为
Node(节点) - 可选处理:对
Node生成向量嵌入、提取关键词、构建树/图谱关系等(不同索引类型处理不一样) - 入库持久化:把
Node、向量、映射关系存入索引/向量库,最终得到可用的Index实例
索引(Index)的区分:
| 名词 | 含义 |
|---|---|
| Index(索引) | 产物:最终生成的数据结构,用来后续查询召回内容 |
| Indexing(索引构建) | 动作/流程:加工数据、生成索引的整个过程 |
2. 索引类型
术语说明:
- 节点(Node):对应文档中的一段文本块。
LlamaIndex接收文档(Document)对象后,内部会将文档解析、切分为多个节点对象。 - 响应合成(Response Synthesis):该模块会基于召回得到的节点内容,生成最终回答。
2.1 摘要索引(Summary Index / List Index)
摘要索引仅将所有节点存储为顺序链表。
查询时,如果没有额外指定查询参数,LlamaIndex会直接将列表内全部节点送入响应合成模块。
摘要索引支持多种查询方式:可以基于向量嵌入查询,召回相似度最高的Top-K节点;也可以搭配关键词过滤,如下图所示:
2.2 向量存储索引(Vector Store Index)
向量存储索引会把每个节点,以及节点对应的向量嵌入存入向量数据库(Vector Store)。
查询向量存储索引时,会召回和用户问题相似度最高的Top-K节点,再将这些节点送入响应合成模块。
2.3 树索引(Tree Index)
树索引会基于一批节点构建层级树结构,原始节点会作为树的叶子节点。
查询树索引的过程就是从根节点向下遍历至叶子节点。默认配置(child_branch_factor=1)下,每个父节点仅选择1个子节点继续遍历;如果设置child_branch_factor=2,每一层都会选取2个子节点。
2.4 关键词表索引(Keyword Table Index)
关键词表索引会从每个节点中提取关键词,建立关键词 → 对应节点的映射关系。
查询阶段,系统会从用户问题中提取相关关键词,和预提取的节点关键词做匹配,拉取对应的节点内容,再送入响应合成模块。
2.5 属性图索引(Property Graph Index)
属性图索引的工作方式:首先构建知识图谱,图谱包含带标签的节点与关系。图谱构建的可定制性极强:既可以让大模型自由抽取实体和关系,也可以基于严格的预定义Schema抽取,甚至支持自定义抽取模块。
可选配置:可以为节点生成向量嵌入,用于后续检索。
也可以跳过图谱创建流程,直接对接已有的外部知识图谱(例如Neo4j)。
属性图索引的查询方式同样高度灵活:检索能力由多个子检索器协同工作、合并结果。默认会启用关键词+同义词扩展,同时如果图谱预先生成了向量,还会叠加向量检索,以此召回相关三元组。
你可以选择在返回结果里附带原始文本(从LlamaIndex外部创建的图谱不支持该能力)。
详情查阅属性图完整指南。
3. 官方参考文档
- Vector Store Index
- Summary Index
- Tree Index
- Keyword Table Index
- Knowledge Graph Index
- Knowledge Graph Query Engine
- Knowledge Graph RAG Query Engine
- REBEL + Knowledge Graph Index
- REBEL + Wikipedia Filtering
- SQL Query Engine
- DuckDB Query Engine
- Document Summary Index
- Object Index