Перейти к содержимому
Последнее обновление

COSINE_DISTANCE

Описание​

Вычисляет косинусное расстояние между двумя векторами (значения векторов являются координатами)

Синтаксис​

COSINE_DISTANCE(<array1>, <array2>)

Параметры​

ПараметрОписание
<array1>Первый вектор (его значения являются координатами). Поддерживаемые типы элементов входного массива: TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE. Количество элементов должно совпадать с количеством элементов в array2
<array2>Второй вектор (его значения являются координатами). Поддерживаемые типы элементов входного массива: TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE. Количество элементов должно совпадать с количеством элементов в array1

Возвращаемое значение​

Возвращает косинусное расстояние между двумя векторами (значения векторов являются координатами). Тип возвращаемого значения: FLOAT.

Если хотя бы один входной массив равен NULL или содержит элемент NULL, функция возвращает ошибку.

Пример​

SELECT COSINE_DISTANCE([1, 2], [2, 3]),COSINE_DISTANCE([3, 6], [4, 7]);
+---------------------------------+---------------------------------+
| cosine_distance([1, 2], [2, 3]) | cosine_distance([3, 6], [4, 7]) |
+---------------------------------+---------------------------------+
| 0.007722139 | 0.001539648 |
+---------------------------------+---------------------------------+

Если входной массив равен NULL, функция возвращает ошибку:

SELECT COSINE_DISTANCE(NULL, [1, 2]);
ERROR 1105 (HY000): errCode = 2, detailMessage = (127.0.0.1)[INVALID_ARGUMENT]First argument for function cosine_distance cannot be null

Если входной массив содержит элемент NULL, функция возвращает ошибку:

SELECT COSINE_DISTANCE([1, NULL], [1, 2]);
ERROR 1105 (HY000): errCode = 2, detailMessage = (127.0.0.1)[INVALID_ARGUMENT]First argument for function cosine_distance cannot have null