VECTORDISTANCE - Cosmos DB 中的查询语言

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 格式的对象文字,用于指定矢量距离计算选项。 有效项包括distanceFunctiondataTypesearchListSizeMultiplier

返回类型

返回一个数值表达式,它用于枚举两个表达式之间的相似性分数。

例子

本部分包含有关如何使用此查询语言构造的示例。

在此示例中,该 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值,也不会返回错误。