本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在向量儲存貯體中建立向量索引
注意
Amazon S3 Vectors 為 Amazon Simple Storage Service 的預覽版本,可能會有所變更。
注意
請仔細選擇向量索引組態參數。建立向量索引後,您無法更新向量索引名稱、維度、距離指標或無法篩選的中繼資料索引鍵。若要變更任何這些值,您必須建立新的向量索引。
向量索引是向量儲存貯體中的資源,可存放和組織向量資料,以進行有效率的相似性搜尋。建立向量索引時,您可以定義該索引中所有向量必須共用的特性,例如維度、用於相似度計算的距離指標,以及選擇性不可篩選的中繼資料索引鍵。如需向量索引命名需求、維度需求、距離指標選項和不可篩選中繼資料金鑰的詳細資訊,請參閱 限制。
向量索引必須在現有的向量儲存貯體內建立,並需要建立後無法修改的特定組態參數。
建立向量索引
-
開啟位於 https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在導覽窗格中,選擇向量儲存貯體。
-
在向量儲存貯體清單中,選擇您要建立向量索引的儲存貯體名稱。
-
選擇建立向量索引。
-
針對向量索引名稱,輸入向量索引的名稱。
向量索引名稱在向量儲存貯體中必須是唯一的。索引名稱必須介於 3 到 63 個字元之間。有效字元為小寫字母 (a-z)、數字 (0-9)、連字號 (-) 和點 (.)。如需向量索引命名需求的詳細資訊,請參閱 限制。
-
針對維度,輸入每個向量中的值數目。
注意
-
Dimension 的值決定每個向量將包含多少數值。
-
新增至此索引的所有向量必須具有此數量的值。
-
維度必須介於 1 到 4096 之間。
-
較大的維度需要更多的儲存空間。
-
根據內嵌模型的輸出維度選擇 。
如需維度需求的詳細資訊,請參閱 限制。
-
-
針對距離指標,選擇下列其中一個選項:
-
Cosine – 測量向量之間角度的餘弦。最適合標準化向量,以及當方向超過幅度時
-
Euclidean – 測量向量之間的直線距離。當方向和大小都很重要時最佳。
-
-
(選用) 在無法篩選的中繼資料下,設定要存放但不用於篩選的中繼資料金鑰:
若要新增無法篩選的中繼資料金鑰:
-
選擇 Add key (新增金鑰)。
-
輸入索引鍵名稱 (1-63 個字元,在此向量索引中是唯一的)。
-
重複 以新增其他金鑰 (最多 10 個金鑰)。
注意
當您在建立向量索引之後插入向量資料時,您可以將可篩選的中繼資料做為索引鍵/值對連接至每個向量。根據預設,連接至向量的所有中繼資料金鑰都是可篩選的,並且可以做為相似性查詢中的篩選條件。只有在向量索引建立期間指定為不可篩選的中繼資料金鑰,才會排除在篩選之外。如需每個向量中繼資料大小限制的詳細資訊,包括總中繼資料限制和可篩選中繼資料限制,請參閱 限制。
-
-
請仔細檢閱您的組態。
注意
這些設定無法在建立後變更。
-
選擇建立向量索引。
若要在向量儲存貯體中建立向量索引,請使用下列範例命令user input placeholders
,並以您自己的資訊取代 。
範例 1:使用無法篩選的中繼資料金鑰建立向量索引
aws s3vectors create-index \ --vector-bucket-name "
amzn-s3-demo-vector-bucket
" \ --index-name "idx
" \ --data-type "float32" \ --dimension1
\ --distance-metric "cosine
" \ --metadata-configuration '{"nonFilterableMetadataKeys":["nonFilterableKey1
"]}'
範例 2:建立不含不可篩選中繼資料金鑰的向量索引
aws s3vectors create-index \ --vector-bucket-name "
amzn-s3-demo-vector-bucket
" \ --index-name "idx2
" \ --data-type "float32" \ --dimension4096
\ --distance-metric "euclidean
"
此外,使用 GetVectors
、 ListVectors
或 QueryVectors
API 操作,以相同的方式擷取所有中繼資料 (可篩選和不可篩選)。下列 CLI 命令顯示如何擷取具有中繼資料 (包括無法篩選的中繼資料) 的向量。
請求範例:
aws s3vectors get-vectors \ --vector-bucket-name "
amzn-s3-demo-vector-bucket
" \ --index-name "idx
" \ --keys '["vec1", "vec3"]' \ --return-data \ --return-metadata \
回應範例:
{ "vectors": [ { "key": "vec1", "data": { "float32": [ 0.10000000149011612, 0.20000000298023224, 0.30000001192092896, 0.4000000059604645, 0.5 ] }, "metadata": { "category": "test", "text": "First vector" } }, { "key": "vec3", "data": { "float32": [ 0.6000000238418579, 0.699999988079071, 0.800000011920929, 0.8999999761581421, 1.0 ] }, "metadata": { "text": "Third vector", "category": "test" } } ] }
回應將包含與向量相關聯的所有中繼資料,無論其在索引建立期間被指定為可篩選還是不可篩選。