メインコンテンツへスキップ

L1Distance

導入バージョン: v21.11.0 L1 空間における 2 点間の距離 (ベクトルの各要素が座標) を計算します (1-ノルム、タクシー幾何学距離) 。 構文
L1Distance(vector1, vector2)
別名: distanceL1 引数 戻り値 1-ノルム距離を返します。Array 入力の場合、要素型の最小の共通スーパータイプが Float32 または BFloat16 であれば Float32、それ以外の場合は 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 ユークリッド空間における 2 点間の距離 (ベクトルの各要素が座標) を計算します (ユークリッド距離) 。 構文
L2Distance(vector1, vector2)
別名: distanceL2 引数 戻り値 2-ノルム距離を返します。入力が Array の場合、要素型の最小の共通スーパータイプが Float32 または BFloat16 であれば Float32 を返し、それ以外の場合は Float64 を返します。入力が Tuple の場合は、常に Float64 を返します。Float* 基本的な使い方
Query
SELECT L2Distance((1, 2), (2, 3))
Response
┌─L2Distance((1, 2), (2, 3))─┐
│         1.4142135623730951 │
└────────────────────────────┘

L2DistanceTransposed

導入バージョン: v25.10.0 ユークリッド空間における 2 点間の近似距離 (ベクトルの各値を座標とする) を計算します (ユークリッド距離) 。 構文
L2DistanceTransposed(vector1, vector2, p)
別名: distanceL2Transposed 引数
  • vectors — ベクトル。QBit(T, UInt64)
  • reference — 参照ベクトル。Array(T)
  • p — 距離計算で各ベクトル要素から使用するビット数 (1 から要素のビット幅まで) 。量子化レベルによって、精度と速度のトレードオフが決まります。ビット数を少なくすると I/O と計算は高速になりますが精度は低下し、ビット数を多くすると精度は向上しますが、その分パフォーマンスは低下します。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 2 つのベクトルの対応する要素間の差の二乗和を計算します。 構文
L2SquaredDistance(vector1, vector2)
別名: distanceL2Squared 引数 戻り値 2つのベクトルの対応する要素の差の二乗和を返します。Array 入力の場合、要素型の最小共通スーパータイプが Float32 または BFloat16 なら Float32、それ以外は 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} 空間における 2 点間の距離を計算します (ベクトルの要素が座標を表します) (最大ノルム) 。 構文
LinfDistance(vector1, vector2)
別名: distanceLinf 引数 戻り値 無限大ノルム距離を返します。入力が Array の場合、要素型の最小共通スーパータイプが Float32 または BFloat16 であれば Float32、それ以外は 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 空間における 2 点間の距離 (ベクトルの要素を座標とする) を計算します (p-ノルム距離) 。 構文
LpDistance(vector1, vector2, p)
別名: distanceLp 引数
  • vector1 — 1つ目のベクトル。Tuple(T) または Array(T)
  • vector2 — 2つ目のベクトル。Tuple(T) または Array(T)
  • p — べき指数。設定可能な値: [1; inf) の実数。UInt* または Float*
戻り値 p-ノルム距離を返します。Array 入力の場合、要素型の最小共通スーパータイプが Float32 または BFloat16 であれば Float32、それ以外の場合は 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 2 つのベクトル間の コサイン距離 を計算します (タプルの要素は座標です) 。戻り値が小さいほど、2 つのベクトルはより類似しています。 構文
cosineDistance(vector1, vector2)
別名: distanceCosine 引数 戻り値 コサイン距離 (コサイン類似度から 1 を引いた値) を返します。Array を入力した場合、要素型の最小共通スーパータイプが Float32 または BFloat16 であれば Float32、それ以外の場合は Float64 を返します。Tuple を入力した場合は、常に Float64 を返します。Float* 基本的な使い方
Query
SELECT cosineDistance((1, 2), (2, 3));
Response
┌─cosineDistance((1, 2), (2, 3))─┐
│           0.007722123286332261 │
└────────────────────────────────┘

cosineDistanceTransposed

導入バージョン: v26.1.0 2 点間の近似的な コサイン距離 を計算します (ベクトルの値を座標とみなします) 。戻り値が小さいほど、ベクトルはより類似しています。 構文
cosineDistanceTransposed(vector1, vector2, p)
別名: distanceCosineTransposed 引数
  • vectors — ベクトル。QBit(T, UInt64)
  • reference — 参照ベクトル。Array(T)
  • p — 距離計算で各ベクトル要素から使用するビット数 (1 から要素のビット幅まで) 。量子化レベルによって、精度と速度のトレードオフが決まります。使用するビット数を減らすと、精度は低下しますが、I/O と計算は高速になります。一方、ビット数を増やすと精度は向上しますが、パフォーマンスは低下します。UInt
戻り値 近似コサイン距離 (コサイン類似度を 1 から引いた値) を返します。返り値は常に 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 │
└──────────────────────────────────────────────┘
最終更新日 2026年6月10日