Record Managers


记录管理器会跟踪您的索引文档,防止在Vector Store中生成重复的向量嵌入。

当文档块进行更新时,每个块都将使用SHA-1算法进行哈希运算。这些哈希值将存储在记录管理器中。如果存在相同的哈希值,则将跳过嵌入和更新过程。

在某些情况下,您可能希望删除与正在索引的新文档来自相同源的现有文档。为此,Record Manager提供了三种清理模式:

标签页

当您更新多个文档时,若想避免删除当前更新流程之外的现有文档,请使用增量清理模式。

  1. 让我们创建一个带有“增量”清理功能的记录管理器,并将“source”作为SourceId键

  1. 并需提供以下两份文件:

文本
元数据

{source:"cat"}

{source:"dog"}

  1. 在执行更新插入操作后,我们将看到两条被更新插入的文档:

  1. 现在,如果我们删除“Dog”文档,并将“Cat”更新为“Cats”,我们将看到以下内容:

  • 原始的Cat文档已被删除

  • 添加了一个名为Cats的新文档

  • Dog 文档保持不变

  • 矢量存储中的剩余矢量嵌入是

当您更新多个文档时,完全清理模式将自动删除不属于当前更新过程的任何向量嵌入。

  1. 让我们设置一个带有“完全”清理功能的记录管理器。在完全清理模式下,我们不需要设置SourceId键。

  1. 并持有以下两份文件:

文本
元数据

{source:"cat"}

{source:"dog"}

  1. 在执行更新插入操作后,我们将看到2个被更新插入的文档:

  1. 现在,如果我们删除“Dog”文档,并将“Cat”更新为“Cats”,那么现在我们将看到以下内容:

  • 原始的Cat文档已被删除

  • 新增了一个包含“Cats”的文件

  • Dog 文档已删除

  • 矢量存储中剩余的矢量嵌入只有

不会进行任何清理

当前可用的记录管理器节点有:

  • SQLite

  • MySQL

  • PostgresQL

资源

Last updated