查询语法

矢量查询的运作方式是搜索矢量数据库,以查找与查询矢量最匹配的矢量。本页详细介绍了此功能的运作方式。

查找相似的向量

向量搜索查询使用两种策略:

  • K 最近邻 (KNN):查找与查询向量最接近的 k 个向量。

查询语法细分

FT.SEARCH index "(*)=>[KNN num_neighbours @my_vector_hash_key $my_vector_query_param]" PARAMS 2 my_vector_query_param "query_embedding" DIALECT 2
  • index:包含矢量字段的索引的名称。

  • (*):这是唯一支持的表达式。不支持过滤。

  • =>:将过滤器与向量搜索分开。

  • [KNN num_neighbours @field $vector]:KNN 搜索表达式。将 num_neighbors 替换为所选的结果数量,并将 @field 替换为矢量场名称。

  • PARAMS 2 my_vector_query_param "query_embedding"

    • PARAMS 后面的值 2 表示必须提供两个额外的参数。
    • my_vector_query_param 是查询参数的矢量名称,如 KNN 搜索表达式中所指定。
    • query_embedding 替换为嵌入的查询矢量。
  • DIALECT 2:指定您使用的是查询方言版本 2 或更高版本(对于矢量搜索,此属性为必需属性)。