存储优化型向量搜索

适用于 Vector Search 的存储优化型性能层级专为海量数据集的索引和搜索需求而设计。该层级采用基于磁盘的架构,而非使用 RAM,从而大幅降低了您的运维费用。如果您优先考虑的是大规模成本效益而非最低查询延迟,那么存储优化型层级将是您的最佳选择。

存储优化型索引的适用场景

在符合以下任一条件时,请考虑使用存储优化型索引:

  • 数据集非常庞大:您需要为海量向量编制索引,而托管大量性能优化型分片的费用过高。

  • 低 QPS 工作负载:在低查询量应用中,使用较少分片可节省大量费用。

  • 灵活的延迟要求:您的应用可以容忍查询延迟(即获取搜索结果所需的时间)略有增加。

性能权衡

与默认的性能优化型索引相比,存储优化型索引具有以下特征:

  • 查询延迟增加:在给定召回率水平下,查询延迟略有增加。

如何配置存储优化型索引

如需创建存储优化型索引,请在索引配置中将 shardSize 参数设置为 SHARD_SIZE_SO_DYNAMIC

示例:创建存储优化型索引

以下示例展示了创建新的存储空间优化型流式传输索引所需的 JSON。

{
  "displayName": "my-storage-optimized-index",
  "description": "An index configured to prioritize storage over performance.",
  "metadata": {
    "contentsDeltaUri": "gs://your-bucket/source-data/",
    "config": {
      "dimensions": 100,
      "approximateNeighborsCount": 150,
      "distanceMeasureType": "DOT_PRODUCT_DISTANCE",
      "shardSize": "SHARD_SIZE_SO_DYNAMIC"
    }
  },
  "indexUpdateMethod": "STREAM_UPDATE"
}

在该示例中,shardSize 设置为 SHARD_SIZE_SO_DYNAMIC,这会指示 Vector Search 构建更密集的索引。这样一来,每个分片都可以容纳更多的数据点,从而减少数据集所需的分片总数。其他字段(例如 dimensionsdistanceMeasureType)会根据您的需求进行配置。

端点

存储优化型部署可与任何现有端点搭配使用。

部署索引

以下示例展示了将存储空间优化型索引部署到您创建的端点所需的 JSON。

{
  "deployedIndex": {
    "id": "PROJECT_UNIQUE_ID_NAME",
    "index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID",
    "displayName": "INDEX_DISPLAY_NAME",
    "deploymentTier": "STORAGE"
  }
}

deploymentTier 设置为 STORAGE 会将具有指定 displayName 的存储优化型索引部署到端点。向量搜索会动态选择合适的机器类型,以实现最佳性能。

后续步骤