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