L1Distance
L1 空间中两点之间的距离 (向量中的元素为坐标) ,即 1-范数 (出租车几何距离) 。
语法
distanceL1
参数
返回值
返回 1-范数距离。对于 Array 输入,如果元素类型的最小共同超类型为 Float32 或 BFloat16,则返回 Float32,否则返回 Float64。对于 Tuple 输入,返回类型遵循逐元素运算的算术结果类型 (整数类型保持不变) 。(U)Int* 或 Float*
示例
基本用法
Query
Response
L1Norm
normL1
参数
返回值
返回 L1 范数或 出租车几何中的距离。UInt* 或 Float* 或 Decimal
示例
基本用法
Query
Response
L1Normalize
L1 空间中的单位向量 (Tuple 的元素为坐标) (出租车几何) 。
语法
normalizeL1
参数
tuple— 数值类型的元组。Tuple(T)
Tuple(Float64)
示例
基本用法
Query
Response
L2Distance
distanceL2
参数
返回值
返回 2-范数距离。对于 Array 输入,如果元素类型的共同超类型是 Float32 或 BFloat16,则返回 Float32;否则返回 Float64。对于 Tuple 输入,始终返回 Float64。Float*
示例
基本用法
Query
Response
L2DistanceTransposed
distanceL2Transposed
参数
vectors— 向量。QBit(T, UInt64[, UInt64])reference— 参考向量。Array(T)p— 在距离计算中,每个向量元素使用的位数 (1 到元素位宽) 。量化级别控制精度与速度之间的权衡。使用较少的位可提升 I/O 和计算速度,但精度会降低;使用较多的位则可提高精度,但会牺牲性能。UIntused_dims— 可选。要读取的前几个维度,用于在带步幅的QBit上执行降维 (Matryoshka) 搜索。必须是 QBit 步幅的倍数,且不能超过其维度;参考向量也必须至少包含这么多元素 (多出的尾部元素会被忽略) 。只会读取覆盖这些维度的步幅分组。UInt
Float64。Float64
示例
基本用法
Query
Response
L2DistanceTransposedQuantized
quantizeBFloat16ToInt8 编码的 QBit(Int8) (在计算时即时反量化) 与参考向量之间的近似 欧几里得距离。Float 参考 (查询) 向量会直接以 Float32 精度进行比较——这正是反量化后编码的重建精度,因此 Float64 查询会缩窄为 Float32,而 BFloat16 查询则会精确扩展到该精度 (非对称距离计算) ;Array(Int8) 参考向量本身会被视为 quantizeBFloat16ToInt8 编码,并反量化到其重建级别。请注意,p 只会截断已存储的 QBit 编码;Array(Int8) 参考向量本身是完整查询,并且始终以完整的 8 位精度重建,因此只有在 p = 8 时,这才是对称的“量化对量化”距离 (当 p < 8 时,只有存储侧会以较粗精度读取) 。它必须与量化前的值处于同一空间中 (即经过相同的随机旋转和缩放之后) ,这由调用方负责保证。余弦距离具有缩放不变性;点积和 L2 距离则不具有。
语法
vectors—quantizeBFloat16ToInt8编码的向量。QBit(Int8, UInt64[, UInt64])reference— 参考 (查询) 向量:Float数组 (即查询向量,以Float32精度进行比较——Float64查询会收窄为Float32) ,或由quantizeBFloat16ToInt8编码组成并在使用时即时反量化的Array(Int8)。Array(Float32)或Array(Int8)p— 每个已存储QBit编码要使用的高位数 (1 到 8) 。位数越少,重建出的嵌入式量化器越粗糙,I/O 越快,但准确性会降低;8 位则为全精度重建。p只会截断已存储的QBit;Array(Int8)参考向量始终按完整的 8 位精度重建。UIntused_dims— 可选。要读取的前几个维度,用于在带步幅的QBit上执行降维 (Matryoshka) 搜索。必须是 QBit 步幅的倍数,且不能超过其维度;参考向量也必须至少包含这么多元素 (任何额外的尾随元素都会被忽略) 。只会读取覆盖这些维度的步幅分组。UInt
Float64。Float64
示例
基本用法
Query
L2Norm
normL2
参数
返回值
返回 L2 范数或 欧几里得距离。UInt* 或 Float*
示例
基本用法
Query
Response
L2Normalize
normalizeL2
参数
tuple— 由数值组成的元组。Tuple(T)
Tuple(Float64)
示例
基本用法
Query
Response
L2SquaredDistance
distanceL2Squared
参数
返回值
返回两个向量对应元素之差的平方和。对于 Array 输入,如果元素类型的最小共同超类型为 Float32 或 BFloat16,则返回 Float32,否则返回 Float64。对于 Tuple 输入,返回类型遵循逐元素运算的算术结果类型 (保留整数类型) 。(U)Int* 或 Float*
示例
基本用法
Query
Response
L2SquaredNorm
L2Norm) 的平方。
语法
normL2Squared
参数
返回值
返回 L2 范数的平方。UInt* 或 Float* 或 Decimal
示例
基本用法
Query
Response
LinfDistance
L_{inf} 空间中两点之间的距离 (向量中的元素为坐标) (最大范数) 。
语法
distanceLinf
参数
返回值
返回无穷范数距离。对于 Array 输入,如果元素类型的最小共同超类型为 Float32 或 BFloat16,则返回 Float32;否则返回 Float64。对于 Tuple 输入,始终返回 Float64。Float*
示例
基本用法
Query
Response
LinfNorm
normLinf
参数
返回值
返回 Linf 范数,即最大绝对值。Float64
示例
基本用法
Query
Response
LinfNormalize
L_{inf} 空间中的单位向量 (Tuple 中的元素为各坐标) ,使用最大范数。
语法
normalizeLinf
参数
tuple— 由数值组成的元组。Tuple(T)
Tuple(Float64)
示例
基本用法
Query
Response
LpDistance
Lp 空间中两点之间的距离 (向量中的元素为坐标) (p-范数距离) 。
语法
distanceLp
参数
vector1— 第一个向量。Tuple(T)或Array(T)vector2— 第二个向量。Tuple(T)或Array(T)p— 幂次。可能的值:[1; inf)范围内的实数。UInt*或Float*
Array 输入,如果元素类型的最小共同超类型为 Float32 或 BFloat16,则返回 Float32,否则返回 Float64。对于 Tuple 输入,始终返回 Float64。Float*
示例
基本用法
Query
Response
LpNorm
- 当 p=1 时,它等价于 L1Norm (曼哈顿距离) 。
- 当 p=2 时,它等价于 L2Norm (欧几里得距离) 。
- 当 p=∞ 时,它等价于 LinfNorm (最大范数) 。
normLp
参数
返回值
返回 Lp 范数。Float64
示例
基本用法
Query
Response
LpNormalize
Lp 空间中的单位向量 (Tuple 中的元素为坐标) ,使用 p-norm。
语法
normalizeLp
参数
返回值
返回单位向量。Tuple(Float64)
示例
使用示例
Query
Response
cosineDistance
distanceCosine
参数
返回值
返回余弦距离 (即 1 减去余弦相似度) 。对于 Array 输入,如果元素类型的共同超类型为 Float32 或 BFloat16,则返回 Float32,否则返回 Float64。对于 Tuple 输入,始终返回 Float64。Float*
示例
基本用法
Query
Response
cosineDistanceTransposed
distanceCosineTransposed
参数
vectors— 向量。QBit(T, UInt64[, UInt64])reference— 参考向量。Array(T)p— 在距离计算中,每个向量元素使用的位数 (从 1 到元素位宽) 。量化级别控制精度与速度之间的权衡。使用较少的位可加快 I/O 和计算速度,但会降低准确性;使用较多的位可提高准确性,但会牺牲性能。UIntused_dims— 可选。要读取的起始维度数量,用于在带步幅的QBit上进行降维 (Matryoshka) 搜索。必须是 QBit 步幅的倍数,且不超过其维度;参考向量也必须至少包含这么多个元素 (任何额外的尾随元素都会被忽略) 。仅读取覆盖这些维度的步幅分组。UInt
Float64
示例
基本用法
Query
Response
cosineDistanceTransposedQuantized
quantizeBFloat16ToInt8 编码构成的 QBit(Int8) (在计算过程中即时反量化) 与参考向量之间的近似余弦距离。返回值越小,向量越相似。Float 参考 (查询) 向量会直接以 Float32 精度进行比较——这也是反量化编码的重建精度,因此 Float64 查询会被降为 Float32,而 BFloat16 查询则会被精确提升到该精度 (非对称距离计算) ;Array(Int8) 参考本身会被视为 quantizeBFloat16ToInt8 编码,并反量化到其重建级别。请注意,p 只会截断已存储的 QBit 编码;Array(Int8) 参考本身是完整查询,始终以完整 8 位精度重建,因此只有在 p = 8 时,这才是对称的量化对量化距离 (对于 p < 8,只有存储侧会以较低精度读取) 。它必须与量化前的值所在的空间一致 (即经过相同的随机旋转和缩放之后) ,这由调用方负责。余弦距离具有缩放不变性;点积和 L2 距离则不具备。
语法
vectors—quantizeBFloat16ToInt8编码的向量。QBit(Int8, UInt64[, UInt64])reference— 参考 (查询) 向量:可以是Float数组 (查询会以Float32精度进行比较——Float64查询会被收窄为Float32) ,也可以是会在使用时即时反量化的quantizeBFloat16ToInt8编码Array(Int8)。Array(Float32)或Array(Int8)p— 每个已存储QBit编码使用的高位数 (1 到 8) 。位数越少,重建出的量化器越粗略,从而以精度降低为代价获得更快的 I/O;8 位表示全精度重建。p只会截断已存储的QBit;Array(Int8)参考始终按完整 8 位精度重建。UIntused_dims— 可选。要读取的前导维度数,用于在带步幅的QBit上执行降维 (Matryoshka) 搜索。该值必须是 QBit 步幅的倍数,且不能超过其维度;同时参考向量必须至少包含这么多个元素 (任何额外的尾随元素都会被忽略) 。只会读取覆盖这些维度的 步幅分组。UInt
Float64。Float64
示例
基本用法
Query
dotProductTransposed
scalarProductTransposed
参数
vectors— 向量。QBit(T, UInt64[, UInt64])reference— 参考向量。Array(T)p— 在计算中,每个向量元素使用的位数 (从 1 到元素位宽) 。量化级别控制精度与速度之间的权衡。使用较少的位可加快 I/O 和计算速度,但会降低准确性;使用较多的位可提高准确性,但会牺牲性能。UIntused_dims— 可选。要读取的前几个维度的数量,用于在带步幅的QBit上执行降维 (Matryoshka) 搜索。必须是 QBit 步幅 的倍数,且不能超过其维度;参考向量必须至少包含这么多个元素 (任何额外的尾部元素都会被忽略) 。只会读取覆盖这些维度的 步幅分组。UInt
Float64。Float64
示例
基本用法
Query
Response
dotProductTransposedQuantized
quantizeBFloat16ToInt8 编码的 QBit(Int8) (即时反量化) 与参考向量之间的近似点积 (内积) 。这是一个相似度度量:返回值越大,向量越相似。Float 参考 (查询) 向量会直接以 Float32 精度进行比较——这也是反量化编码的重建精度,因此 Float64 查询会缩窄为 Float32,而 BFloat16 查询则会精确扩展到该精度 (非对称距离计算) ;Array(Int8) 参考向量本身会被视为 quantizeBFloat16ToInt8 编码,并反量化到其重建级别。请注意,p 只会截断已存储的 QBit 编码;Array(Int8) 参考向量是完整查询,始终会以完整的 8 位精度重建,因此只有在 p = 8 时,这才是对称的量化对量化距离 (当 p < 8 时,只有存储侧会以较粗的精度读取) 。它必须与量化前的值处于同一空间中 (即经过相同的随机旋转和缩放之后) ,这一点由调用方负责。余弦距离具有缩放不变性;点积和 L2 距离则不具备这一性质。
语法
vectors—quantizeBFloat16ToInt8编码的向量。QBit(Int8, UInt64[, UInt64])reference— 参考 (查询) 向量:Float数组 (查询会以Float32精度进行比较——Float64查询会被收窄为Float32),或quantizeBFloat16ToInt8编码的Array(Int8),并在运行时即时反量化。Array(Float32)或Array(Int8)p— 每个已存储QBit编码中要使用的高位位数 (1 到 8)。位数越少,重建出的嵌入式量化器越粗糙,可获得更快的 I/O,但准确性会降低;8 位则为全精度重建。p只会截断已存储的QBit;Array(Int8)参考向量始终以完整的 8 位精度重建。UIntused_dims— 可选。要读取的前几个维度的数量,用于在带步幅的QBit上执行降维 (Matryoshka) 搜索。必须是 QBit 步幅 的倍数,且不能超过其维度;参考向量也必须至少包含这么多个元素 (任何额外的尾部元素都会被忽略)。只会读取覆盖这些维度的 步幅分组。UInt
Float64。Float64
示例
基本用法
Query