- 类别:
VECTOR_L1_DISTANCE¶
计算两个 向量 之间的 L1 距离。
L1 距离,又称 Taxicab 或 Manhattan 距离,是向量空间中两个点之间距离的度量。该距离通过取向量元素差值的绝对值之和来计算。结果是零或更大的值。如果距离为零,则向量相同。距离越大,向量之间的距离越远。
语法¶
VECTOR_L1_DISTANCE( <vector>, <vector> )
实参¶
vector
计算距离起始值的 VECTOR 值。
vector
计算距离结束值的 VECTOR 值。
返回¶
以 FLOAT 值返回两个输入向量之间的 L1 距离。
使用说明¶
由于对向量比较函数进行了计算优化,浮点误差可能会比通常情况下稍大(例如约 1e-4)。
示例¶
此示例使用 VECTOR_L1_DISTANCE 函数确定表中哪些向量在列 a
和 b
之间彼此最接近:
CREATE TABLE vectors (a VECTOR(FLOAT, 3), b VECTOR(FLOAT, 3));
INSERT INTO vectors SELECT [1.1,2.2,3]::VECTOR(FLOAT,3), [1,1,1]::VECTOR(FLOAT,3);
INSERT INTO vectors SELECT [1,2.2,3]::VECTOR(FLOAT,3), [4,6,8]::VECTOR(FLOAT,3);
SELECT VECTOR_L1_DISTANCE(a, b) FROM vectors;
+--------------+
| 3.300000191 |
|--------------|
| 11.800000191 |
+--------------+