FT.CREATE
は、検索可能なインデックスを作成します。
構文
FT.CREATE index ON HASH [PREFIX count prefix [prefix ...]] SCHEMA field_name [AS alias] VECTOR [HNSW|FLAT] attribute_count [attribute_name attribute_value])
index
(必須): インデックスに付ける名前。同じ名前のインデックスがすでに存在する場合は、エラーが返されます。ON HASH
(省略可): HASH データ型を示します。HASH データ型のみがサポートされています。PREFIX [count] [prefix]
(省略可): インデックスに登録するハッシュキーを示します。SCHEMA hash_field_name
(必須): SCHEMA の後の hash_field_name は、ハッシュ内のフィールド名を識別します。[AS alias]
は、フィールド名属性のエイリアスとしてalias
という名前を割り当てます。
フィールドの型
VECTOR
(必須): ベクトル検索のベクトル フィールド:[HNSW|FLAT]
(必須): 指定されたアルゴリズム。FLAT
(総当たり)または HNSW(Hierarchical Navigable Small World)のいずれかです。attribute_count
(必須): アルゴリズム構成で渡される名前と値の属性の合計数。attribute_name attribute_value
: インデックス構成を定義する Key-Value ペア。ただし、使用可能な 2 つのアルゴリズムのいずれか 1 つに対して固有です。必須の HNSW アルゴリズム属性:
DIM
(必須): ベクトル ディメンション数。利用できる値は1
~32768
です。TYPE
(必須): ベクトルタイプ。FLOAT32
のみがサポートされています。DISTANCE_METRIC
(必須):L2
、IP
、COSINE
のいずれかにする必要があります。
HNSW アルゴリズム属性(省略可能):
EF_RUNTIME
(省略可): クエリ オペレーションで検査するベクトルの数を設定します。デフォルト値は10
、最大値は4096
です。このパラメータ値は、実行するクエリごとに設定できます。値が大きいほどクエリ実行時間は長くなりますが、クエリの再現率は向上します。M
(省略可)各レイヤのグラフで、ノードごとに許容される送信エッジの最大数。レイヤ 0 の場合、送信エッジの最大数は 2M です。デフォルト値は 16 です。最大値は 512 です。EF_CONSTRUCTION
(省略可): インデックスの構築中に検査するベクトルの数を設定します。デフォルト値は200
、最大値は4096
です。値を大きくすると、インデックスの作成に必要な時間は長くなりますが、再現率は向上します。INITIAL_CAP
(省略可): インデックスの開始ベクトル容量を決定します。デフォルトは1024
です。このパラメータにより、インデックスのメモリ割り当てが決定されます。
必須の FLAT アルゴリズム属性:
DIM
(必須): ベクトル ディメンション数。TYPE
(必須): ベクトルタイプ。FLOAT32
のみがサポートされています。DISTANCE_METRIC
(必須):L2
、IP
、COSINE
のいずれかにする必要があります。
オプションの FLAT アルゴリズム属性:
INITIAL_CAP
(省略可): インデックスの開始ベクトル容量を決定します。このパラメータにより、インデックスのメモリ割り当てが決定されます。
例
HNSW の例:
FT.CREATE my_index_name SCHEMA my_hash_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100
FLAT の例:
FT.CREATE my_index_name SCHEMA my_hash_field_key VECTOR Flat 8 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE INITIAL_CAP 15000