儲存空間最佳化向量搜尋

向量搜尋的儲存空間最佳化效能層級,專為索引及搜尋大量資料集而設計。這個層級會實作以磁碟為基礎的架構,而非使用 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 的儲存空間最佳化索引部署至端點。

您也可以指定最小副本數 (minReplicaCount) 和最大副本數 (minReplicaCount),控管要部署的機器副本數量。系統不支援設定機型 (machineType)。

後續步驟