本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
中繼資料篩選
注意
Amazon S3 Vectors 目前為 Amazon Simple Storage Service 的預覽版本,可能會有所變更。
中繼資料篩選可讓您根據連接至向量的特定屬性來篩選查詢結果。您可以將中繼資料篩選條件與查詢操作搭配使用,以尋找同時符合相似性條件和特定中繼資料條件的向量。
S3 Vectors 支援兩種中繼資料類型:可篩選的中繼資料和不可篩選的中繼資料。關鍵差異在於可篩選中繼資料可用於查詢篩選條件,但具有更嚴格的大小限制,而不可篩選的中繼資料無法用於篩選條件,但可以在其大小限制內存放大量資料。如需中繼資料限制的詳細資訊,包括每個向量的大小限制和每個向量的最大中繼資料金鑰,請參閱 限制。
可篩選的中繼資料
可篩選中繼資料可讓您根據特定中繼資料值篩選查詢結果。根據預設,除非在向量索引建立期間明確指定為不可篩選,否則所有中繼資料欄位都可以在相似性查詢中篩選。S3 向量支援字串、數字、布林值和清單類型的中繼資料,每個向量的大小限制。中繼資料類型非常適合您要篩選的屬性,例如類別、時間戳記或狀態值。
如果中繼資料大小超過支援的限制,PutVectors API 操作會傳回400 Bad Request
錯誤。如需每個向量可篩選中繼資料大小限制的詳細資訊,請參閱 限制。
下列操作可與可篩選的中繼資料搭配使用。
運算子 | 有效的輸入類型 | 描述 |
---|---|---|
$eq |
字串、數字、布林值 | 單一值的精確比對比較。 與陣列中繼資料值比較時,如果輸入值符合陣列中的任何元素,則 會傳回 true。例如, |
$ne |
字串、數字、布林值 | 不相等比較 |
$gt |
Number | 大於比較 |
$gte |
Number | 大於或等於比較 |
$lt |
Number | 小於比較 |
$lte |
Number | 小於或等於比較 |
$in |
基本元件的非空白陣列 | 比對陣列中的任何值 |
$nin |
基本元件的非空白陣列 | 不符合陣列中的任何值 |
$exists |
Boolean | 檢查欄位是否存在 |
$and |
非空白的篩選條件陣列 | 多個條件的邏輯 AND |
$or |
非空白的篩選條件陣列 | 多個條件的邏輯 OR |
有效可篩選中繼資料的範例
- 簡單相等性
-
{"genre": "documentary"}
此篩選條件符合類型中繼資料金鑰等於「文件」的向量。當您未指定運算子時,S3 Vectors 會自動使用 $eq 運算子。
- 明確相等性
-
// Example: Exact match {"genre": {"$eq": "documentary"}}
// Example: Not equal to {"genre": {"$ne": "drama"}}
- 數值比較
-
{"year": {"$gt": 2019}}
{"year": {"$gte": 2020}}
{"year": {"$lt": 2020}}
{"year": {"$lte": 2020}}
- 陣列操作
-
{"genre": {"$in": ["comedy", "documentary"]}}
{"genre": {"$nin": ["comedy", "documentary"]}}
- 存在檢查
-
{"genre": {"$exists": true}}
$exists
篩選條件會比對具有「類型」中繼資料金鑰的向量,無論該中繼資料金鑰儲存的值為何。 - 邏輯操作
-
{"$and": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]}
{"$or": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]}
- 價格範圍 (相同欄位上的多個條件)
-
{"price": {"$gte": 10, "$lte": 50}}
如需如何使用中繼資料篩選查詢向量的詳細資訊,請參閱 中繼資料篩選。
無法篩選的中繼資料
不可篩選的中繼資料無法用於查詢篩選條件,但可以儲存比可篩選的中繼資料更多的內容資料。它非常適合用於儲存大型文字區塊、詳細描述或其他不需要可搜尋但可以使用查詢結果傳回的內容資訊。例如,您可以將完整文件文字、影像描述或詳細產品規格儲存為無法篩選的中繼資料。
在向量索引建立期間,必須明確設定不可篩選的中繼資料金鑰。一旦中繼資料金鑰在索引建立期間指定為不可篩選,之後就無法變更為可篩選。您可以將多個中繼資料金鑰設定為每個向量索引不可篩選,每個中繼資料金鑰名稱限制為 63 個字元。如需每個向量索引允許的不可篩選中繼資料金鑰數目上限的詳細資訊,請參閱 限制。
雖然您無法篩選不可篩選的中繼資料,但您可以使用 return-metadata
參數將其與查詢結果一起擷取。對於某些使用案例,您可以使用無法篩選的中繼資料,如下所示。
使用它為您的應用程式提供內容,而無需剖析單獨的資料來源。
存放會超過可篩選中繼資料大小限制的較大文字區塊。
使用 ListVectors API 操作將其包含在向量匯出中。
如需設定不可篩選中繼資料的詳細資訊,請參閱 在向量儲存貯體中建立向量索引。