次の方法で共有


VectorDistance (NoSQL クエリ)

適用対象: NoSQL

指定した 2 つのベクトル間の類似度スコアを返します。

構文

VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])  

引数

説明
spatial_expr_1 float32 以下の配列。
spatial_expr_2 float32 以下の配列。
bool_expr ORDER BY 式での計算値の使用方法を指定するブール値。 true の場合は、ブルート フォースが使用されます。 値が false 存在する場合は、vector プロパティで定義されているすべてのインデックスが使用されます。 既定値は false です。
obj_expr ベクトル距離計算のオプションを指定するために使用される JSON 形式のオブジェクト リテラル。 有効な項目には、distanceFunctiondataTypeが含まれます。
distanceFunction 距離/類似性の計算に使用されるメトリック。
dataType ベクトルのデータ型。 float32int8uint8 。 既定値は float32 です。

サポートされているメトリックは distanceFunction 次のとおりです。

  • cosine(最も類似) から -1 (最も類似) までの値を +1 持つ > です。
  • dotproduct() から () (-inf最も類似している) から () (+inf最も類似) の値-∞+∞持ちます。
  • euclidean(最も似ている) から 0 () (+inf最も類似した) の値を+∞持つ >。

戻り値の型

2 つの式の間の類似度スコアを列挙する数値式を返します。

この最初の例では、必須の引数のみを含む上位 10 個のベクター検索クエリを示します。 1 つのプロパティが、返されるスコアと共に投影されます VectorDistance。 次に、スコアを ORDER BY 最も類似した順に並べ替える VectorDistance 句をユーザーに指定します。

SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)

この次の例には、〘〗〘の省略 VectorDistance

SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>, true, {'distanceFunction':'cosine', 'dataType':'float32',})
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>, true, {'distanceFunction':'cosine', 'dataType':'float32',})

解説

  • この関数は、Azure Cosmos DB NoSQL Vector Search プレビュー機能への登録が必要です。
  • この関数では、ベクトル インデックスが役立ちます
  • false が省略可能な bool_expr として指定されている場合は、パスに定義されているベクトル インデックスが使用されます (存在する場合)。 ベクター パスにインデックスが定義されていない場合、この関数はフル スキャンに戻り、ベクター インデックスを使用する場合よりも RU 料金が高くなり、待機時間が長くなります。
  • 句でORDER BY使用する場合VectorDistance、結果は常に、使用される類似性メトリックに基づいて最も類似 (最初) から最も類似していない (最後) の順序で並べ替えられるため、方向を指定ORDER BYする必要はありません。
  • 結果は類似度スコアとして表されます。