跳到内容

每种索引的工作原理#

本指南通过图解描述了每种索引的工作原理。

一些术语

  • 节点:对应于文档的一个文本块。LlamaIndex 接收 Document 对象,并在内部将其解析/分块为 Node 对象。
  • 响应合成:我们的模块,用于根据检索到的 Node 合成响应。您可以查看如何指定不同的响应模式

摘要索引(以前称为列表索引)#

摘要索引简单地将 Node 存储为一个顺序链。

查询#

在查询时,如果未指定其他查询参数,LlamaIndex 会简单地将列表中的所有 Node 加载到我们的响应合成模块中。

摘要索引提供了多种查询摘要索引的方法,包括基于嵌入的查询(将获取 top-k 个邻居)或添加关键词过滤器(如下所示)

向量存储索引#

向量存储索引将每个 Node 和相应的嵌入存储在向量存储中。

查询#

查询向量存储索引涉及获取 top-k 个最相似的 Node,并将它们传递到我们的响应合成模块中。

树索引#

树索引从一组 Node(在树中成为叶节点)构建分层树。

查询#

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

关键词表索引#

关键词表索引从每个 Node 中提取关键词,并构建从每个关键词到该关键词对应 Node 的映射。

查询#

在查询时,我们从查询中提取相关的关键词,并将其与预先提取的 Node 关键词匹配以获取相应的 Node。提取的 Node 被传递到我们的响应合成模块中。

属性图索引#

属性图索引首先构建包含标签节点和关系的知识图。该图的构建具有极高的可定制性,从让 LLM 随意提取,到使用严格模式提取,甚至实现您自己的提取模块。

可选地,节点也可以被嵌入以便后续检索。

您也可以跳过创建,并使用 Neo4j 等集成连接到现有知识图。

查询#

查询属性图索引也非常灵活。检索通过使用多个子检索器并组合结果来实现。默认情况下,使用关键词 + 同义词扩展以及向量检索(如果您的图已被嵌入)来检索相关三元组。

您也可以选择除了检索到的三元组外,还包含源文本(对于在 LlamaIndex 之外创建的图不可用)。

更多信息请参阅属性图完整指南