FT.CREATE - Amazon ElastiCache

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

FT.CREATE

FT.CREATE 命令會建立空索引並啟動回填程序。每個索引都包含多個欄位定義。每個欄位定義都會指定欄位名稱、欄位類型,以及每個索引鍵內的路徑,以找出宣告類型的值。某些欄位類型定義具有其他子類型指標。

對於 HASH 索引鍵上的索引,路徑與雜湊成員名稱相同。如有需要,選用的 AS 子句可用來重新命名 欄位。當成員名稱包含特殊字元時,重新命名欄位特別有用。

對於 JSON 索引鍵上的索引,路徑是宣告類型資料的 JSON 路徑。由於 JSON 路徑一律包含特殊字元,因此需要 AS子句。

語法

FT.CREATE <index-name> ON HASH | JSON [PREFIX <count> <prefix1> [<prefix2>...]] SCHEMA (<field-identifier> [AS <alias>] | VECTOR [HNSW|FLAT] <attr_count> [<attribute_name> <attribute_value>]) | TAG [SEPARATOR <sep>] [CASESENSITIVE] | NUMERIC )+

<index-name> (必要):這是您提供給索引的名稱。如果具有相同名稱的索引已存在,則會傳回錯誤。

ON HASH | JSON (選用):只有符合指定類型的索引鍵才會包含在此索引中。如果省略,則會假設 HASH。

PREFIX <prefix-count> <prefix> (選用):如果指定此子句,則此索引只會包含以一個或多個指定字首相同位元組開頭的索引鍵。如果省略此子句,則會包含正確類型的所有金鑰。零長度字首也會符合正確類型的所有金鑰。

欄位類型:

  • TAG:標籤欄位是包含一或多個標籤值的字串。

    • SEPARATOR <sep> (選用):,.<>{}[]"':;!@#$%^&*()-+=~用於分隔個別標籤的其中一個字元。如果省略,預設值為 ,

    • CASESENSITIVE (選用):如果有,標籤比較會區分大小寫。預設值是標籤比較不區分大小寫。

  • NUMERIC:數字欄位包含數字。

  • VECTOR:向量欄位包含向量。目前支援兩種向量索引演算法:HNSW (Hierarchical Navigable Small World) 和 FLAT (暴力破解力)。每個演算法都有一組額外的屬性,有些是必要屬性和其他選用屬性。

    • FLAT:平面演算法提供確切的答案,但具有與索引向量數量成比例的執行時間,因此可能不適用於大型資料集。

      • DIM <number> (必要):指定向量中的維度數目。

      • TYPE FLOAT32 (必要):資料類型,目前僅支援 FLOAT32。

      • DISTANCE_METRIC 【L2 | IP | COSINE】 (必要):指定距離演算法。

      • INITIAL_CAP <size> (選用):初始索引大小。

    • HNSW:HNSW 演算法提供近似答案,但運作速度比 FLAT 快得多。

      • DIM <number> (必要):指定向量中的維度數目。

      • TYPE FLOAT32 (必要):資料類型,目前僅支援 FLOAT32。

      • DISTANCE_METRIC 【L2 | IP | COSINE】 (必要):指定距離演算法。

      • INITIAL_CAP <size> (選用):初始索引大小。

      • M <number> (選用):每個圖層圖表中每個節點允許的傳出邊緣上限數量。在圖層零上,傳出邊緣的最大數量將為 2*M。 預設值為 16,上限為 512。

      • EF_CONSTRUCTION <number> (選用):控制在索引建構期間檢查的向量數量。此參數的較高值將提高召回率,同時犧牲較長的索引建立時間。預設值為 200。最大值為 4096。

      • EF_RUNTIME <number> (選用):控制查詢操作期間要檢查的向量數量。預設值為 10,最大值為 4096。您可以為每個執行的查詢設定此參數值。較高的值會增加查詢時間,但可改善查詢回收。

回應:確定或錯誤。