ベクトルクエリは、ベクトル データベースを検索して、クエリベクトルに最も一致するベクトルを見つけることによって動作します。このページでは、この仕組みについて詳しく説明します。
類似ベクトルを見つける
ベクトル検索クエリでは、次の 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 以降を使用することを指定します(ベクトル検索に必要)。