ベクトル クエリは、ベクトル データベースを検索して、クエリベクトルに最も一致するベクトルを見つけます。このページでは、この仕組みについて詳しく説明します。
類似ベクトルの検索
ベクトル検索クエリでは、次の 2 つの戦略が使用されます。
- 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
は、2 つの追加引数を指定する必要があることを示します。my_vector_query_param
は、KNN 検索式で指定されたクエリ パラメータのベクトル名です。query_embedding
は、エンベディングされたクエリベクトルに置き換えます。
DIALECT 2
: クエリ言語バージョン 2 以降を使用することを指定します(ベクトル検索に必要)。