FT.CREATE

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(分层导航小型世界)。

    • attribute_count(必需):算法配置中传递的名称和值的属性总数。

    • attribute_name attribute_value:用于定义索引配置但特定于两个可用算法之一的键值对。

      • 必需的 HNSW 算法属性:

        • DIM(必需):矢量维度数量。可接受的值为 1 - 32768

        • TYPE(必需):矢量类型。仅支持 FLOAT32

        • DISTANCE_METRIC(必需):必须是以下项之一:L2IPCOSINE

      • 可选的 HNSW 算法属性:

        • EF_RUNTIME(可选):设置要在查询操作期间检查的向量计数。默认值为 10,最大值为 4096。您可以为运行的每个查询设置此参数值。值越高,查询时间越长,但查询召回率越高。

        • M(可选):图中各层中每个节点的允许传出边数上限。第 0 层的传出边缘数量上限为 2M。默认值为 16。最大值为 512。

        • EF_CONSTRUCTION(可选):设置要在索引构造期间检查的向量的计数。默认值为 200,最大值为 4096。值越高,创建索引所需的时间就越长,但召回率越高。

        • INITIAL_CAP(可选):确定索引的起始矢量容量。默认值为 1024。此参数决定了索引内存分配。

      • 必需的 FLAT 算法属性:

        • DIM(必需):矢量维度数量。

        • TYPE(必需):矢量类型。仅支持 FLOAT32

        • DISTANCE_METRIC(必需):必须是以下项之一:L2IPCOSINE

      • 可选的 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