Перейти к основному содержанию

L1Distance

Добавленный в: v21.11.0 Вычисляет расстояние между двумя точками (элементы векторов представляют собой координаты) в пространстве L1 (1-норма — таксомоторная геометрия). Синтаксис
L1Distance(vector1, vector2)
Псевдонимы: distanceL1 Аргументы Возвращаемое значение Возвращает расстояние по 1-норме. Для входных данных типа Array возвращает Float32, если наименьший общий супертип типов элементов — Float32 или BFloat16, в противном случае — Float64. Для входных данных типа Tuple возвращаемый тип соответствует арифметическому типу результата поэлементных операций (целочисленные типы сохраняются). (U)Int* или Float* Примеры Базовое использование
Query
SELECT L1Distance((1, 2), (2, 3))
Response
┌─L1Distance((1, 2), (2, 3))─┐
│                          2 │
└────────────────────────────┘

L1Norm

Добавленный в: v21.11.0 Вычисляет сумму модулей элементов вектора. Синтаксис
L1Norm(vector)
Псевдонимы: normL1 Аргументы
  • vector — Вектор или кортеж числовых значений. Array(T) или Tuple(T)
Возвращаемое значение Возвращает L1-норму или расстояние в таксомоторной геометрии. UInt* или Float* или Decimal Примеры Базовое использование
Query
SELECT L1Norm((1, 2))
Response
┌─L1Norm((1, 2))─┐
│              3 │
└────────────────┘

L1Normalize

Добавленный в: v21.11.0 Вычисляет единичный вектор заданного вектора (элементы кортежа — координаты) в пространстве L1 (таксомоторная геометрия). Синтаксис
L1Normalize(tuple)
Псевдонимы: normalizeL1 Аргументы
  • tuple — Кортеж из числовых значений. Tuple(T)
Возвращаемое значение Возвращает единичный вектор. Tuple(Float64) Примеры Базовое использование
Query
SELECT L1Normalize((1, 2))
Response
┌─L1Normalize((1, 2))─────────────────────┐
│ (0.3333333333333333,0.6666666666666666) │
└─────────────────────────────────────────┘

L2Distance

Добавленный в: v21.11.0 Вычисляет расстояние между двумя точками (элементы векторов служат координатами) в евклидовом пространстве (евклидово расстояние). Синтаксис
L2Distance(vector1, vector2)
Псевдонимы: distanceL2 Аргументы Возвращаемое значение Возвращает расстояние по 2-норме. Для входных данных типа Array возвращает Float32, если наименьший общий супертип типов элементов — Float32 или BFloat16, в противном случае — Float64. Для входных данных типа Tuple всегда возвращает Float64. Float* Примеры Базовое использование
Query
SELECT L2Distance((1, 2), (2, 3))
Response
┌─L2Distance((1, 2), (2, 3))─┐
│         1.4142135623730951 │
└────────────────────────────┘

L2DistanceTransposed

Добавленный в: v25.10.0 Вычисляет приблизительное расстояние между двумя точками в евклидовом пространстве, где значения векторов служат координатами (евклидово расстояние). Синтаксис
L2DistanceTransposed(vector1, vector2, p)
Псевдонимы: distanceL2Transposed Аргументы
  • vectors — Векторы. QBit(T, UInt64)
  • reference — Опорный вектор. Array(T)
  • p — Количество битов из каждого элемента вектора, используемых при вычислении расстояния (от 1 до битовой ширины элемента). Уровень квантования определяет компромисс между точностью и скоростью. Использование меньшего количества битов ускоряет операции ввода-вывода и вычисления, но снижает точность, тогда как большее количество битов повышает точность ценой производительности. UInt
Возвращаемое значение Возвращает приблизительное расстояние по 2-норме. Всегда возвращает Float64. Float64 Примеры Базовое использование
Query
CREATE TABLE qbit (id UInt32, vec QBit(Float64, 2)) ENGINE = Memory;
INSERT INTO qbit VALUES (1, [0, 1]);
SELECT L2DistanceTransposed(vec, array(1, 2), 16) FROM qbit;
Response
┌─L2DistanceTransposed([0, 1], [1, 2], 16)─┐
│                       1.4142135623730951 │
└──────────────────────────────────────────┘

L2Norm

Добавленный в: v21.11.0 Вычисляет квадратный корень из суммы квадратов элементов вектора. Синтаксис
L2Norm(vector)
Псевдонимы: normL2 Аргументы
  • vector — Вектор или кортеж из числовых значений. Tuple(T) или Array(T)
Возвращаемое значение Возвращает норму L2 или евклидово расстояние. UInt* или Float* Примеры Базовое использование
Query
SELECT L2Norm((1, 2))
Response
┌───L2Norm((1, 2))─┐
│ 2.23606797749979 │
└──────────────────┘

L2Normalize

Добавленный в: v21.11.0 Вычисляет единичный вектор для заданного вектора (элементы кортежа служат координатами) в евклидовом пространстве (с помощью евклидова расстояния). Синтаксис
L2Normalize(tuple)
Псевдонимы: normalizeL2 Аргументы
  • tuple — Кортеж числовых значений. Tuple(T)
Возвращаемое значение Возвращает единичный вектор. Tuple(Float64) Примеры Базовое использование
Query
SELECT L2Normalize((3, 4))
Response
┌─L2Normalize((3, 4))─┐
│ (0.6,0.8)           │
└─────────────────────┘

L2SquaredDistance

Добавленный в: v22.7.0 Вычисляет сумму квадратов разностей соответствующих элементов двух векторов. Синтаксис
L2SquaredDistance(vector1, vector2)
Псевдонимы: distanceL2Squared Аргументы Возвращаемое значение Возвращает сумму квадратов разностей соответствующих элементов двух векторов. Для входных значений Array возвращает Float32, если наименьший общий супертип типов элементов — Float32 или BFloat16, в противном случае — Float64. Для входных значений Tuple возвращаемый тип соответствует арифметическому типу результата поэлементных операций (целочисленные типы сохраняются). (U)Int* или Float* Примеры Базовое использование
Query
SELECT L2SquaredDistance([1, 2, 3], [0, 0, 0])
Response
┌─L2SquaredDis⋯ [0, 0, 0])─┐
│                       14 │
└──────────────────────────┘

L2SquaredNorm

Добавленный в: v22.7.0 Вычисляет квадрат нормы L2Norm, то есть сумму квадратов элементов вектора. Синтаксис
L2SquaredNorm(vector)
Псевдонимы: normL2Squared Аргументы
  • vector — Вектор или кортеж числовых значений. Array(T) или Tuple(T)
Возвращаемое значение Возвращает квадрат нормы L2. UInt* или Float* или Decimal Примеры Базовое использование
Query
SELECT L2SquaredNorm((1, 2))
Response
┌─L2SquaredNorm((1, 2))─┐
│                     5 │
└───────────────────────┘

LinfDistance

Добавленный в: v21.11.0 Вычисляет расстояние между двумя точками (элементы векторов служат координатами) в пространстве L_{inf} (максимальная норма). Синтаксис
LinfDistance(vector1, vector2)
Псевдонимы: distanceLinf Аргументы Возвращаемое значение Возвращает расстояние в норме бесконечности. Для входных значений типа Array возвращает Float32, если наименьший общий супертип типов элементов — Float32 или BFloat16, в противном случае — Float64. Для входных значений типа Tuple всегда возвращает Float64. Float* Примеры Базовое использование
Query
SELECT LinfDistance((1, 2), (2, 3))
Response
┌─LinfDistance((1, 2), (2, 3))─┐
│                            1 │
└──────────────────────────────┘

LinfNorm

Добавленный в: v21.11.0 Вычисляет максимальное по модулю значение элемента вектора. Синтаксис
LinfNorm(vector)
Псевдонимы: normLinf Аргументы
  • vector — Вектор или кортеж из числовых значений. Array(T) или Tuple(T)
Возвращаемое значение Возвращает норму Linf, то есть максимальное по модулю значение. Float64 Примеры Базовое использование
Query
SELECT LinfNorm((1, -2))
Response
┌─LinfNorm((1, -2))─┐
│                 2 │
└───────────────────┘

LinfNormalize

Добавленный в: v21.11.0 Вычисляет единичный вектор для заданного вектора (элементы кортежа служат координатами) в пространстве L_{inf} (с использованием максимальной нормы). Синтаксис
LinfNormalize(tuple)
Псевдонимы: normalizeLinf Аргументы
  • tuple — Кортеж из числовых значений. Tuple(T)
Возвращаемое значение Возвращает единичный вектор. Tuple(Float64) Примеры Базовое использование
Query
SELECT LinfNormalize((3, 4))
Response
┌─LinfNormalize((3, 4))─┐
│ (0.75,1)              │
└───────────────────────┘

LpDistance

Добавленный в: v21.11.0 Вычисляет расстояние между двумя точками (элементы векторов являются координатами) в пространстве Lp (расстояние p-нормы). Синтаксис
LpDistance(vector1, vector2, p)
Псевдонимы: distanceLp Аргументы
  • vector1 — Первый вектор. Tuple(T) или Array(T)
  • vector2 — Второй вектор. Tuple(T) или Array(T)
  • p — Степень. Возможные значения: действительное число в диапазоне [1; inf). UInt* или Float*
Возвращаемое значение Возвращает расстояние по p-норме. Для аргументов типа Array возвращает Float32, если наименьший общий супертип типов элементов — Float32 или BFloat16, в противном случае — Float64. Для аргументов типа Tuple всегда возвращает Float64. Float* Примеры Базовое использование
Query
SELECT LpDistance((1, 2), (2, 3), 3)
Response
┌─LpDistance((1, 2), (2, 3), 3)─┐
│            1.2599210498948732 │
└───────────────────────────────┘

LpNorm

Добавленный в: v21.11.0 Вычисляет p-норму вектора, то есть корень степени p из суммы p-х степеней абсолютных значений его элементов. Особые случаи:
  • При p=1 эквивалентна L1Norm (манхэттенское расстояние).
  • При p=2 эквивалентна L2Norm (евклидово расстояние).
  • При p=∞ эквивалентна LinfNorm (максимальная норма).
Синтаксис
LpNorm(vector, p)
Псевдонимы: normLp Аргументы
  • vector — Вектор или кортеж числовых значений. Tuple(T) или Array(T)
  • p — Степень. Возможные значения — действительные числа в диапазоне [1; inf). UInt* или Float*
Возвращаемое значение Возвращает Lp-норму. Float64 Примеры Базовое использование
Query
SELECT LpNorm((1, -2), 2)
Response
┌─LpNorm((1, -2), 2)─┐
│   2.23606797749979 │
└────────────────────┘

LpNormalize

Добавленный в: v21.11.0 Вычисляет единичный вектор для заданного вектора (элементы кортежа служат координатами) в пространстве Lp (с использованием p-нормы). Синтаксис
LpNormalize(tuple, p)
Псевдонимы: normalizeLp Аргументы
  • tuple — Кортеж из числовых значений. Tuple(T)
  • p — Степень. Возможные значения — любое число в диапазоне [1; inf). UInt* или Float*
Возвращаемое значение Возвращает единичный вектор. Tuple(Float64) Примеры Пример использования
Query
SELECT LpNormalize((3, 4), 5)
Response
┌─LpNormalize((3, 4), 5)──────────────────┐
│ (0.7187302630182624,0.9583070173576831) │
└─────────────────────────────────────────┘

cosineDistance

Добавленный в: v21.11.0 Вычисляет косинусное расстояние между двумя векторами (элементы кортежей — это координаты). Чем меньше возвращаемое значение, тем больше векторы похожи друг на друга. Синтаксис
cosineDistance(vector1, vector2)
Псевдонимы: distanceCosine Аргументы Возвращаемое значение Возвращает косинусное расстояние (единица минус косинусное сходство). Для входных значений Array возвращается Float32, если наименьший общий супертип типов элементов — Float32 или BFloat16, иначе — Float64. Для входных значений Tuple всегда возвращается Float64. Float* Примеры Базовое использование
Query
SELECT cosineDistance((1, 2), (2, 3));
Response
┌─cosineDistance((1, 2), (2, 3))─┐
│           0.007722123286332261 │
└────────────────────────────────┘

cosineDistanceTransposed

Добавленный в: v26.1.0 Вычисляет приблизительное косинусное расстояние между двумя точками (значения векторов служат координатами). Чем меньше возвращаемое значение, тем более похожи векторы. Синтаксис
cosineDistanceTransposed(vector1, vector2, p)
Псевдонимы: distanceCosineTransposed Аргументы
  • vectors — Векторы. QBit(T, UInt64)
  • reference — Опорный вектор. Array(T)
  • p — Количество битов из каждого элемента вектора, используемых при вычислении расстояния (от 1 до разрядности элемента в битах). Уровень квантования определяет компромисс между точностью и скоростью. Использование меньшего количества битов ускоряет операции ввода-вывода и вычисления, но снижает точность, тогда как большее количество битов повышает точность ценой производительности. UInt
Возвращаемое значение Возвращает приближённое косинусное расстояние (единица минус косинусное сходство). Всегда возвращает Float64. Float64 Примеры Базовое использование
Query
CREATE TABLE qbit (id UInt32, vec QBit(Float64, 2)) ENGINE = Memory;
INSERT INTO qbit VALUES (1, [0, 1]);
SELECT cosineDistanceTransposed(vec, array(1, 2), 16) FROM qbit;
Response
┌─cosineDistanceTransposed([0, 1], [1, 2], 16)─┐
│                          0.10557281085638826 │
└──────────────────────────────────────────────┘
Последнее изменение 10 июня 2026 г.