最后于 更新
COSINE_DISTANCE_APPROXIMATE
描述
计算两个向量的余弦距离。 NULL 数组或 NULL 元素会报错。
在包含此能力的 Doris 4.2 构建中可用。 符合条件的 Lance Top-N 可使用原生近似检索;其他查询执行标量内核。
语法
COSINE_DISTANCE_APPROXIMATE(<array1>, <array2>)
参数
| 参数 | 描述 |
|---|---|
<array1> | 数值数组,隐式转换为 ARRAY |
<array2> | 数值数组,隐式转换为 ARRAY |
返回值
返回 FLOAT,值越小越接近。标量计算为 1 - dot(x,y) / (norm(x) * norm(y));任一向量范数为零时返回 2,包括空数组对。 长度不匹配、NULL 数组或 NULL 元素会报错,不返回 NULL。 原生检索的候选范围、数值精度及 NULL/NaN 行为可能与标量执行不同,详见自动检索下推。
示例
SELECT COSINE_DISTANCE_APPROXIMATE([1,0], [0,1]) AS value;
value
1
SELECT COSINE_DISTANCE_APPROXIMATE([0,0], [1,0]) AS value;
value
2
SELECT COSINE_DISTANCE_APPROXIMATE(NULL, [0,1]);
ERROR: First argument for function cosine_distance_approximate cannot be null
SELECT COSINE_DISTANCE_APPROXIMATE([0,NULL], [0,1]);
ERROR: First argument for function cosine_distance_approximate cannot have null