索引配置参数

如需配置索引以进行相似度搜索,您需要配置以下字段。

如需了解如何配置索引,请参阅配置索引参数

字段
contentsDeltaUri

string

允许插入、更新或删除 Vector Search Index 的内容。该字符串必须是有效的 Cloud Storage 目录路径,例如 gs://BUCKET_NAME/PATH_TO_INDEX_DIR/

如果您在调用 IndexService.UpdateIndex 时设置了此字段,则在同一调用中无法更新其他 Index 字段。了解 如何设计单个数据文件的结构

isCompleteOverwrite

boolean

如果在调用 IndexService.UpdateIndex 时此字段与 contentsDeltaUri 一起设置,则 Index 的现有内容将被替换为 contentsDeltaUri 中的数据。如果此字段设置为 true,则整个索引将完全被您提供的新元数据文件覆盖。

config

NearestNeighborSearchConfig

Vector Search Index 的配置。

NearestNeighborSearchConfig

字段
dimensions

int32

必需。输入向量的维度数。 仅用于密集嵌入。

approximateNeighborsCount

int32

如果使用了树 AH 算法,则为必需。

在执行精确重新排序之前通过近似搜索找到的默认邻数量。精确重新排序是一个过程,在该过程中使用费用更高的距离计算记录通过近似搜索算法返回的结果。

ShardSize ShardSize

每个分片的大小。如果索引较大,系统会根据指定的碎片大小对其进行分片。在传送期间,每个分片都会在单独的节点上传送,并且可以独立扩缩。

distanceMeasureType

DistanceMeasureType

在最邻近搜索中使用的距离度量。

featureNormType

FeatureNormType

要对每个向量执行的归一化类型。

algorithmConfig oneOf:

Vector Search 用于高效搜索的算法的配置。 仅用于密集嵌入。

  • TreeAhConfig:使用树 AH 算法的配置选项。如需了解详情,请参阅《使用 TensorFlow Recommender 和 Vector Search 扩缩深度检索》博客
  • BruteForceConfig:此选项用于在数据库中为每个查询实现标准线性搜索。没有要为暴力搜索配置的字段。如需选择此算法,请为 BruteForceConfig 传递一个空对象。

DistanceMeasureType

枚举
SQUARED_L2_DISTANCE 欧几里得 (L2) 距离
L1_DISTANCE 曼哈顿 (L1) 距离
DOT_PRODUCT_DISTANCE 默认值。定义为点积的负数。
COSINE_DISTANCE 余弦距离我们强烈建议您使用 DOT_PRODUCT_DISTANCE + UNIT_L2_NORM,而不是 COSINE 距离。我们的算法针对 DOT_PRODUCT 距离进行了优化,并且与 UNIT_L2_NORM 结合使用时,可提供与 COSINE 距离相同的排名和数学等效性。

ShardSize

枚举
SHARD_SIZE_SMALL 每个分片 2 GiB
SHARD_SIZE_MEDIUM 每个分片 20 GiB
SHARD_SIZE_LARGE 每个分片 50 GiB

FeatureNormType

枚举
UNIT_L2_NORM 单位 L2 归一化类型。
NONE 默认值。未指定归一化类型。

TreeAhConfig

这些字段是为树 AH 算法选择的字段。

字段
fractionLeafNodesToSearch double
所有查询均可搜索的叶节点的默认小数。 必须介于 0.0 - 1.0 之间(不含 0.0 和 1.0)。如果未设置,则默认值为 0.05。
leafNodeEmbeddingCount int32
每个叶节点上的嵌入数量。如果未设置,则默认值为 1000。
leafNodesToSearchPercent int32
已弃用,请使用 fractionLeafNodesToSearch

所有查询均可搜索的叶节点的默认百分比。 必须在 1-100 之间(含 1 和 100)。如果未设置,则默认值为 10(即 10%)。

BruteForceConfig

此选项用于在数据库中为每个查询实现标准线性搜索。没有要为暴力搜索配置的字段。 如需选择此算法,请将 BruteForceConfig 的空对象传递给 algorithmConfig