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 形式のオブジェクト リテラル。 有効な項目には、distanceFunction と dataType が含まれます。 |
distanceFunction |
距離/類似性の計算に使用されるメトリック。 |
dataType |
ベクトルのデータ型。 float32 、 int8 値 uint8 。 既定値は 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
する必要はありません。 - 結果は類似度スコアとして表されます。