和索引构建(Indexing))
文章目录1. 基础概念1.1 索引Index1.2 索引构建Indexing2. 索引类型2.1 摘要索引Summary Index / List Index2.2 向量存储索引Vector Store Index2.3 树索引Tree Index2.4 关键词表索引Keyword Table Index2.5 属性图索引Property Graph Index3. 官方参考文档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_factor1下每个父节点仅选择1个子节点继续遍历如果设置child_branch_factor2每一层都会选取2个子节点。2.4 关键词表索引Keyword Table Index关键词表索引会从每个节点中提取关键词建立关键词 → 对应节点的映射关系。查询阶段系统会从用户问题中提取相关关键词和预提取的节点关键词做匹配拉取对应的节点内容再送入响应合成模块。2.5 属性图索引Property Graph Index属性图索引的工作方式首先构建知识图谱图谱包含带标签的节点与关系。图谱构建的可定制性极强既可以让大模型自由抽取实体和关系也可以基于严格的预定义Schema抽取甚至支持自定义抽取模块。可选配置可以为节点生成向量嵌入用于后续检索。也可以跳过图谱创建流程直接对接已有的外部知识图谱例如Neo4j。属性图索引的查询方式同样高度灵活检索能力由多个子检索器协同工作、合并结果。默认会启用关键词同义词扩展同时如果图谱预先生成了向量还会叠加向量检索以此召回相关三元组。你可以选择在返回结果里附带原始文本从LlamaIndex外部创建的图谱不支持该能力。详情查阅属性图完整指南。3. 官方参考文档Vector Store IndexSummary IndexTree IndexKeyword Table IndexKnowledge Graph IndexKnowledge Graph Query EngineKnowledge Graph RAG Query EngineREBEL Knowledge Graph IndexREBEL Wikipedia FilteringSQL Query EngineDuckDB Query EngineDocument Summary IndexObject Index