该 VECTORDISTANCE 函数返回两个指定向量之间的相似性分数。
一个 Azure Cosmos DB for NoSQL 系统函数,该函数返回容器中一个或多个项的两个向量之间的相似性分数。
Syntax
VECTORDISTANCE(<vector_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)
Arguments
| Description | |
|---|---|
vector_expr_1 |
一维数组 float32 或更小。 |
vector_expr_2 |
一维数组 float32 或更小。 |
bool_expr |
一个可选布尔值,指定如何在 ORDER BY 表达式中使用计算值。 如果为 true,则使用暴力攻击。
false 的值使用在矢量属性上定义的任何索引(如果存在)。 默认值为 false。 |
obj_expr |
可选的 JSON 格式的对象文字,用于指定矢量距离计算选项。 有效项包括distanceFunction和 dataTypesearchListSizeMultiplier。 |
返回类型
返回一个数值表达式,它用于枚举两个表达式之间的相似性分数。
例子
本部分包含有关如何使用此查询语言构造的示例。
矢量相似性搜索
在此示例中,该 VECTORDISTANCE 函数用于返回文档向量和查询向量之间的相似性分数。
SELECT
c.name,
VECTORDISTANCE(c.vector, [1,2,3]) AS SimilarityScore
FROM
c
ORDER BY VECTORDISTANCE(c.vector, [1,2,3]) AS SimilarityScore
[
{
"name": "document1",
"SimilarityScore": 0.8923471786
},
{
"name": "document2",
"SimilarityScore": 0.7492739573
}
]
注解
- 如果为或提供了
vector_expr_1vector_expr_2多维数组,则函数不会返回SimilarityScore值,也不会返回错误。