选择向量索引

选择文档版本:

本页面介绍了 AlloyDB AI 向量搜索策略,并说明了每种策略的使用时间。默认情况下,AlloyDB 使用 k 最近邻搜索 (KNN) 来查找与查询相似的向量。向量索引实现了一种称为近似最近邻 (ANN) 的搜索策略。创建向量索引时,AlloyDB AI 会使用 ANN,其性能优于 KNN。请注意,在选择向量索引时,您需要平衡查询延迟时间和召回率。

召回率用于衡量搜索如何有效地检索给定查询的所有相关项。例如,假设您有 100 个嵌入,每个嵌入表示数据库中的一个实体。您想查询具有目标向量的嵌入,并将其限制为 10 个结果。KNN 向量搜索使用暴力计算方法查找 10 个精确的最近向量,这可实现 100% 召回率。如果未创建或选择向量搜索索引,AlloyDB AI 会默认使用此方法。在 AlloyDB for PostgreSQL 中创建向量索引时,它通常会使用 ANN,这可能会根据相似度对向量进行分区,以便更快地检索。因此使用 ANN 时,前面的示例中返回的 10 个向量可能并非确切是距离上最接近的 10 个向量。如果检索到的 10 个向量中只有 8 个在空间上与查询向量最接近,则召回率为 80%。

查询延迟时间定义搜索结果的生成速度。例如,延迟时间是根据您提交查询后搜索返回向量所用的时间来计算的。

选择搜索策略

在 AlloyDB 中执行向量搜索时,请选择以下搜索策略之一:

搜索策略 说明 用例
K 最近邻 (KNN) 用于查找相对于给定查询数据点的 k 个最近邻数据点的算法。如果您在未创建索引的情况下执行向量搜索,系统会默认执行 KNN 搜索。
  • 您的应用对准确率非常敏感,并且您需要最接近的精确匹配项。
  • 您的向量少于 10 万个。
近似最近邻 (ANN) 用于查找近似最近的数据点的算法。ANN 根据相似度将现有客户数据点划分为较小的组。
  • 您的应用需要短延迟时间。
  • 您的向量超过 10 万个。

Google 建议您创建向量索引,以优化向量搜索查询的性能。如需详细了解如何使用 ANN 索引进行相似度搜索,请参阅使用 ScaNN 创建索引和查询向量

后续步骤