各索引工作原理
本指南通过图示说明每种索引的工作原理。
一些术语:
- 节点: 对应文档中的文本块。LlamaIndex 接收文档对象并在内部将其解析/分块为节点对象。
- 响应合成: 我们的模块,用于根据检索到的节点合成响应。您可以查看如何 指定不同的响应模式。
摘要索引仅将节点存储为顺序链。

在查询期间,如果未指定其他查询参数,LlamaIndex 会直接将列表中的所有节点加载到我们的响应合成模块中。

摘要索引确实提供了多种查询摘要索引的方式,从基于嵌入的查询(将获取前k个最近邻)到添加关键词过滤器,如下所示:

向量存储索引将每个节点及对应的嵌入存储在向量存储中。

查询向量存储索引涉及获取前k个最相似的节点,并将这些节点传递到我们的响应合成模块中。

树状索引从一组节点(这些节点在树中成为叶节点)构建出一个层次化的树状结构。

查询树状索引涉及从根节点向下遍历至叶节点。默认情况下,(child_branch_factor=1)查询会在给定父节点时选择一个子节点。如果child_branch_factor=2,则查询会在每个层级选择两个子节点。

关键词表索引从每个节点提取关键词,并构建从每个关键词到对应节点的映射关系。

在查询时,我们从查询中提取相关关键词,并与预提取的节点关键词进行匹配以获取相应的节点。提取的节点将传递至我们的响应合成模块。

属性图索引的工作原理是首先构建一个包含带标签节点和关系的知识图谱。该图谱的构建具有高度可定制性,范围包括让大语言模型自由提取内容、使用严格模式进行提取,甚至实现自定义提取模块。
可选地,节点也可以被嵌入以便后续检索。
您也可以跳过创建步骤,通过像 Neo4j 这样的集成连接到现有的知识图谱。
查询属性图索引也具有高度灵活性。检索过程通过使用多个子检索器并合并结果来实现。默认情况下,会使用关键词+同义词扩展以及向量检索(如果您的图已嵌入)来获取相关三元组。
除了检索到的三元组外,您还可以选择包含源文本(对于在LlamaIndex外部创建的图谱不可用)。
更多详情请参阅属性图完整指南。