Skip to content

每个索引的工作原理#

本指南描述了每个索引的工作原理,并附有相应的图示。

一些术语:

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

摘要索引(原名列表索引)#

摘要索引简单地将节点按顺序存储为链表。

查询#

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

摘要索引确实提供了许多查询摘要索引的方法,从基于嵌入的查询,该查询将获取前 k 个邻居,或者通过添加关键字过滤器,如下所示:

向量存储索引#

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

查询#

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

树索引#

树索引从一组节点(这些节点成为树中的叶节点)构建一个分层树。

查询#

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

关键词表索引#

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

查询#

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

属性图索引#

属性图索引首先构建一个包含带标签节点和关系的知识图。此图的构建非常灵活,范围从让 LLM 提取任何它想要的内容,到使用严格的模式进行提取,甚至实现自己的提取模块。

还可以选择对节点进行嵌入,以便以后检索。

您还可以跳过创建,并使用诸如 Neo4j 之类的集成连接到现有的知识图。

查询#

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

您还可以选择在检索到的三元组中包括源文本(对于在 LlamaIndex 外创建的图不可用)。

属性图的完整指南中了解更多信息。