Record Managers
记录管理器会跟踪您的索引文档,防止在Vector Store中生成重复的向量嵌入。
当文档块进行更新时,每个块都将使用SHA-1算法进行哈希运算。这些哈希值将存储在记录管理器中。如果存在相同的哈希值,则将跳过嵌入和更新过程。
在某些情况下,您可能希望删除与正在索引的新文档来自相同源的现有文档。为此,Record Manager提供了三种清理模式:
标签页
当您更新多个文档时,若想避免删除当前更新流程之外的现有文档,请使用增量清理模式。
让我们创建一个带有“增量”清理功能的记录管理器,并将“source”作为SourceId键


并需提供以下两份文件:
猫
{source:"cat"}
狗
{source:"dog"}




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

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

原始的Cat文档已被删除
添加了一个名为Cats的新文档
Dog 文档保持不变
矢量存储中的剩余矢量嵌入是猫和狗

当您更新多个文档时,完全清理模式将自动删除不属于当前更新过程的任何向量嵌入。
让我们设置一个带有“完全”清理功能的记录管理器。在完全清理模式下,我们不需要设置SourceId键。


并持有以下两份文件:
猫
{source:"cat"}
狗
{source:"dog"}




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

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

原始的Cat文档已被删除
新增了一个包含“Cats”的文件
Dog 文档已删除
矢量存储中剩余的矢量嵌入只有猫

不会进行任何清理
当前可用的记录管理器节点有:
SQLite
MySQL
PostgresQL
资源
Last updated