Hash 函数
Hash 函数可用于元素的确定性伪随机洗牌。
Simhash 是一种 hash 函数,对于相似(接近)的参数返回相近的 hash 值。
大多数 hash 函数接受任意数量和类型的参数。
NULL 的 Hash 值是 NULL。要获得 Nullable 列的非 NULL hash,请将其包装在元组中:
要计算整个表内容的 hash,请使用 sum(cityHash64(tuple(*))) (或其他 hash 函数)。tuple 确保不会跳过包含 NULL 值的行。sum 确保行的顺序无关紧要。
BLAKE3
Introduced in: v22.10
计算 BLAKE3 hash 字符串,并返回结果字节集作为 FixedString。 该加密 hash 函数与 BLAKE3 Rust 库集成到 ClickHouse 中。 该函数相当快,与 SHA-2 比较性能大约快两倍,同时生成的 hash 与 SHA-256 相同长度。 它返回一个字节数组类型的 BLAKE3 hash,类型为 FixedString(32)。
语法
参数
message— 要 hash 的输入字符串。String
返回值
返回输入字符串的 32 字节 BLAKE3 hash,作为固定长度字符串。 FixedString(32)
示例
hash
MD4
Introduced in: v21.11
计算给定字符串的 MD4 hash。
语法
参数
s— 要 hash 的输入字符串。String
返回值
返回给定输入字符串的 MD4 hash,作为固定长度字符串。 FixedString(16)
示例
使用示例
MD5
Introduced in: v1.1
计算给定字符串的 MD5 hash。
语法
参数
s— 要 hash 的输入字符串。String
返回值
返回给定输入字符串的 MD5 hash,作为固定长度字符串。 FixedString(16)
示例
使用示例
RIPEMD160
Introduced in: v24.10
计算给定字符串的 RIPEMD-160 hash。
语法
参数
s— 要 hash 的输入字符串。String
返回值
返回给定输入字符串的 RIPEMD160 hash,作为固定长度字符串。 FixedString(20)
示例
使用示例
SHA1
Introduced in: v1.1
计算给定字符串的 SHA1 hash。
语法
参数
s— 要 hash 的输入字符串String
返回值
返回给定输入字符串的 SHA1 hash,作为固定长度字符串。 FixedString(20)
示例
使用示例
SHA224
Introduced in: v1.1
计算给定字符串的 SHA224 hash。
语法
参数
s— 要 hash 的输入值。String
返回值
返回给定输入字符串的 SHA224 hash,作为固定长度字符串。 FixedString(28)
示例
使用示例
SHA256
Introduced in: v1.1
计算给定字符串的 SHA256 hash。
语法
参数
s— 要 hash 的输入字符串。String
返回值
返回给定输入字符串的 SHA256 hash,作为固定长度字符串。 FixedString(32)
示例
使用示例
SHA384
Introduced in: v1.1
计算给定字符串的 SHA384 hash。
语法
参数
s— 要 hash 的输入字符串。String
返回值
返回给定输入字符串的 SHA384 hash,作为固定长度字符串。 FixedString(48)
示例
使用示例
SHA512
Introduced in: v1.1
计算给定字符串的 SHA512 hash。
语法
参数
s— 要 hash 的输入字符串String
返回值
返回给定输入字符串的 SHA512 hash,作为固定长度字符串。 FixedString(64)
示例
使用示例
SHA512_256
Introduced in: v1.1
计算给定字符串的 SHA512_256 hash。
语法
参数
s— 要 hash 的输入字符串。String
返回值
返回给定输入字符串的 SHA512_256 hash,作为固定长度字符串。 FixedString(32)
示例
使用示例
URLHash
Introduced in: v1.1
一种快速、优质的非加密 hash 函数,用于从 URL 获取的字符串,并进行某种类型的规范化。
该 hash 函数有两种模式:
| 模式 | 描述 |
|---|---|
URLHash(url) | 计算一个字符串的 hash,在字符串末尾去掉一个尾随符号 /、? 或 # (如有)。 |
URLHash(url, N) | 计算字符串以 N 级别的 URL 层次结构的 hash,末尾去掉一个尾随符号 /、? 或 # (如有)。层级与 URLHierarchy 相同。 |
语法
参数
返回值
返回计算得到的 url 的 hash 值。 UInt64
示例
使用示例
带有指定级别的 URL hash
cityHash64
Introduced in: v1.1
生成 64 位 CityHash hash 值。
这是一个快速的非加密 hash 函数。 对于字符串参数使用 CityHash 算法,而对于其他数据类型的参数使用实现特定的快速非加密 hash 函数。 该函数使用 CityHash 组合器来获得最终结果。
Google 在将 CityHash 集成到 ClickHouse 后更改了算法。 换句话说,ClickHouse 的 cityHash64 和 Google 的上游 CityHash 现在生成不同的结果。 ClickHouse 的 cityHash64 对应于 CityHash v1.0.2。
相同输入值的不同参数类型可能计算出相同的 hash 值。
这影响例如不同大小的整数类型、具有相同数据的命名和未命名 Tuple、Map 和相应的 Array(Tuple(key, value)) 类型的相同数据。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash。 UInt64
示例
调用示例
计算整个表的校验和,精确到行的顺序
farmFingerprint64
Introduced in: v20.12
使用 Fingerprint64 方法生成 64 位 FarmHash 值。
farmFingerprint64 在生成稳定和可移植值时优于 farmHash64。
相同输入值的不同参数类型可能计算出相同的 hash 值。
这影响例如不同大小的整数类型、具有相同数据的命名和未命名 Tuple、Map 和相应的 Array(Tuple(key, value)) 类型的相同数据。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash 值。 UInt64
示例
使用示例
farmHash64
Introduced in: v1.1
使用 Hash64 方法生成 64 位 FarmHash。
farmFingerprint64 在生成稳定和可移植值时优于。
相同输入值的不同参数类型可能计算出相同的 hash 值。
这影响例如不同大小的整数类型、具有相同数据的命名和未命名 Tuple、Map 和相应的 Array(Tuple(key, value)) 类型的相同数据。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash 值。 UInt64
示例
使用示例
gccMurmurHash
Introduced in: v20.1
使用与 GCC 相同的种子,计算输入值的 64 位 MurmurHash2 hash。
它在 Clang 和 GCC 构建之间是可移植的。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash 值。 UInt64
示例
使用示例
halfMD5
Introduced in: v1.1
解释 所有输入参数为字符串,并计算每个参数的 MD5 hash 值。然后组合哈希值,取结果字符串的前 8 个字节,并将其解释为 UInt64 的大端字节顺序。该函数相对较慢(每秒每个处理器核心处理 5 百万条短字符串)。
请考虑改用 sipHash64 函数。
该函数接受可变数量的输入参数。 参数可以是任何支持的数据类型。 对于某些数据类型,即使参数的类型不同,计算出的 hash 函数值可能对相同的值相同(不同大小的整数、具有相同数据的命名和未命名 Tuple、Map 和相应的 Array(Tuple(key, value)) 类型的相同数据)。
语法
参数
arg1[, arg2, ..., argN]— 可变数量的输入参数,以计算 hash。Any
返回值
返回计算得出的给定输入参数的半 MD5 hash,作为大端字节顺序的 UInt64。 UInt64
示例
使用示例
hiveHash
Introduced in: v20.1
从字符串计算 “HiveHash”。
这只是 JavaHash 的符号位清零版本。
该函数用于 Apache Hive 3.0 之前的版本。
该 hash 函数性能较差。 仅在另一个系统中已经使用此算法且需要计算相同结果时使用。 :::
语法
参数
arg— 输入字符串以进行 hash。String
返回值
返回输入字符串的计算 “hive hash”。 Int32
示例
使用示例
intHash32
Introduced in: v1.1
计算整数的 32 位 hash。
该 hash 函数相对较快,但不是加密 hash 函数。
语法
参数
arg— 要 hash 的整数。(U)Int*
返回值
返回输入整数的计算 32 位 hash 代码。 UInt32
示例
使用示例
intHash64
Introduced in: v1.1
计算整数的 64 位 hash。
该 hash 函数相对较快(甚至比 intHash32 还快)但不是加密 hash 函数。
语法
参数
int— 要 hash 的整数。(U)Int*
返回值
返回 64 位 hash 代码。 UInt64
示例
使用示例
javaHash
Introduced in: v20.1
从以下内容计算 JavaHash:
该 hash 函数性能较差。 仅在另一个系统中已经使用此算法且需要计算相同结果时使用。
Java 仅支持计算有符号整数的 hash,因此如果要计算无符号整数的 hash,则必须将其转换为适当的有符号 ClickHouse 类型。
语法
参数
arg— 要 hash 的输入值。Any
返回值
返回输入 arg 的计算 hash。 Int32
示例
使用示例 1
使用示例 2
javaHashUTF16LE
Introduced in: v20.1
计算来自字符串的 JavaHash,假定它包含表示字符串的 UTF-16LE 编码字节。
语法
参数
arg— UTF-16LE 编码的字符串。String
返回值
返回 UTF-16LE 编码字符串的计算 hash。 Int32
示例
使用示例
jumpConsistentHash
Introduced in: v1.1
计算整数的 jump consistent hash。
语法
参数
返回值
返回计算得到的 hash 值。 Int32
示例
使用示例
kafkaMurmurHash
Introduced in: v23.4
使用与 Kafka 相同的种子,计算输入值的 32 位 MurmurHash2 hash,并去掉高位,以兼容 Default Partitioner。
语法
参数
arg1[, arg2, ...]— 可变数量的参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash 值。 UInt32
示例
使用示例
keccak256
Introduced in: v25.4
计算给定字符串的 Keccak-256 加密 hash。 该 hash 函数广泛用于区块链应用,特别是以太坊。
语法
参数
message— 要 hash 的输入字符串。String
返回值
返回输入字符串的 32 字节 Keccak-256 hash,作为固定长度字符串。 FixedString(32)
示例
使用示例
kostikConsistentHash
Introduced in: v22.6
Konstantin 'Kostik' Oblakov 提出的 O(1) 时间和空间一致性 hash 算法。
当 n <= 32768 时效率高。
语法
参数
返回值
返回计算得到的 hash 值。 UInt16
示例
使用示例
metroHash64
Introduced in: v1.1
生成 64 位 MetroHash hash 值。
相同输入值的不同参数类型可能计算出相同的 hash 值。
这影响例如不同大小的整数类型、具有相同数据的命名和未命名 Tuple、Map 和相应的 Array(Tuple(key, value)) 类型的相同数据。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash。 UInt64
示例
使用示例
murmurHash2_32
Introduced in: v18.5
计算输入值的 MurmurHash2 hash。
相同输入值的不同参数类型可能计算出相同的 hash 值。
这影响例如不同大小的整数类型、具有相同数据的命名和未命名 Tuple、Map 和相应的 Array(Tuple(key, value)) 类型的相同数据。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash 值。 UInt32
示例
使用示例
murmurHash2_64
Introduced in: v18.10
计算输入值的 MurmurHash2 hash。
相同输入值的不同参数类型可能计算出相同的 hash 值。
这影响例如不同大小的整数类型、具有相同数据的命名和未命名 Tuple、Map 和相应的 Array(Tuple(key, value)) 类型的相同数据。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash。 UInt64
示例
使用示例
murmurHash3_128
Introduced in: v18.10
计算输入值的 128 位 MurmurHash3 hash。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 128 位 MurmurHash3 hash 值。 FixedString(16)
示例
使用示例
murmurHash3_32
Introduced in: v18.10
生成 MurmurHash3 hash 值。
相同输入值的不同参数类型可能计算出相同的 hash 值。
这影响例如不同大小的整数类型、具有相同数据的命名和未命名 Tuple、Map 和相应的 Array(Tuple(key, value)) 类型的相同数据。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash 值。 UInt32
示例
使用示例
murmurHash3_64
Introduced in: v18.10
计算输入值的 MurmurHash3 hash。
相同输入值的不同参数类型可能计算出相同的 hash 值。
这影响例如不同大小的整数类型、具有相同数据的命名和未命名 Tuple、Map 和相应的 Array(Tuple(key, value)) 类型的相同数据。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数,以计算 hash。Any
返回值
返回输入参数计算出的 hash 值。 UInt64
示例
使用示例
ngramMinHash
Introduced in: v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-grams,并计算每个 n-gram 的 hash 值,返回一个包含这些 hash 的元组。
使用 hashnum 个最小 hash 来计算最小 hash,使用 hashnum 个最大 hash 来计算最大 hash。
该函数对大小写敏感。
可用于使用 tupleHammingDistance 检测半重复字符串。
对于两个字符串,如果返回的 hash 对于这两个字符串是相同的,则这两个字符串是相同的。
语法
参数
string— 要计算 hash 的字符串。Stringngramsize— 可选。 n-gram 的大小,范围为1到25的任意数字。默认值为3。UInt8hashnum— 可选。 用于计算结果的最小和最大 hash 的数量,范围为1到25的任意数字。默认值为6。UInt8
返回值
返回包含两个 hash 的元组 — 最小和最大。 Tuple
示例
使用示例
ngramMinHashArg
Introduced in: v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-grams,并返回 minimum hash 和 maximum hash,计算方法为与相同输入的 ngramMinHash 函数。
该函数对大小写敏感。
语法
参数
string— 要计算 hash 的字符串。Stringngramsize— 可选。 n-gram 的大小,范围为1到25的任意数字。默认值为3。UInt8hashnum— 可选。 用于计算结果的最小和最大 hash 的数量,范围为1到25的任意数字。默认值为6。UInt8
返回值
返回包含两个元组的元组,每个元组都有 hashnum 个 n-grams。 Tuple(String)
示例
使用示例
ngramMinHashArgCaseInsensitive
Introduced in: v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-grams,并返回 minimum hash 和 maximum hash,计算方法为与相同输入的 ngramMinHashCaseInsensitive 函数。
该函数对大小写不敏感。
语法
参数
string— 要计算 hash 的字符串。Stringngramsize— 可选。 n-gram 的大小,范围为1到25的任意数字。默认值为3。UInt8hashnum— 可选。 用于计算结果的最小和最大 hash 的数量,范围为1到25的任意数字。默认值为6。UInt8
返回值
返回包含两个元组的元组,每个元组都有 hashnum 个 n-grams。 Tuple(Tuple(String))
示例
使用示例
ngramMinHashArgCaseInsensitiveUTF8
Introduced in: v21.1
将 UTF-8 字符串拆分为 ngramsize 符号的 n-grams,并返回 minimum hash 和 maximum hash,计算方法为与相同输入的 ngramMinHashCaseInsensitiveUTF8 函数。
该函数对大小写不敏感。
语法
参数
string— 要计算 hash 的字符串。Stringngramsize— 可选。 n-gram 的大小,范围为1到25的任意数字。默认值为3。UInt8hashnum— 可选。 用于计算结果的最小和最大 hash 的数量,范围为1到25的任意数字。默认值为6。UInt8
返回值
返回包含两个元组的元组,每个元组都有 hashnum 个 n-grams。 Tuple(Tuple(String))
示例
使用示例
ngramMinHashArgUTF8
Introduced in: v21.1
将 UTF-8 字符串拆分为 ngramsize 符号的 n-grams,并返回 minimum hash 和 maximum hash,计算方法为与相同输入的 ngramMinHashUTF8 函数。
该函数对大小写敏感。
语法
参数
string— 要计算 hash 的字符串。Stringngramsize— 可选。 n-gram 的大小,范围为1到25的任意数字。默认值为3。UInt8hashnum— 可选。 用于计算结果的最小和最大 hash 的数量,范围为1到25的任意数字。默认值为6。UInt8
返回值
返回包含两个元组的元组,每个元组都有 hashnum 个 n-grams。 Tuple(Tuple(String))
示例
使用示例
ngramMinHashCaseInsensitive
Introduced in: v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-grams,并计算每个 n-gram 的 hash 值,返回一个包含这些 hash 的元组
使用 hashnum 个最小 hash 来计算最小 hash,使用 hashnum 个最大 hash 来计算最大 hash。
该函数对大小写不敏感。
可用于使用 tupleHammingDistance 检测半重复字符串。
对于两个字符串,如果返回的 hash 对于这两个字符串是相同的,则这两个字符串是相同的。
语法
参数
string— 字符串。 String。 -ngramsize— n-gram 的大小。可选。可能的值:范围为1到25的任意数字。默认值:3。 UInt8。 -hashnum— 用于计算结果的最小和最大 hash 的数量。可选。可能的值:范围为1到25的任意数字。默认值:6。 UInt8。
返回值
包含两个 hash 的元组 — 最小和最大。 Tuple(UInt64, UInt64). Tuple
示例
使用示例
ngramMinHashCaseInsensitiveUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 ngramsize 符号的 n-grams,并计算每个 n-gram 的散列值,然后返回包含这些散列的元组。
使用 hashnum 个最小散列来计算最小散列,使用 hashnum 个最大散列来计算最大散列。
此功能对大小写不敏感。
可以与 tupleHammingDistance 一起使用来检测半重复字符串。
对于两个字符串,如果返回的散列对两个字符串都是相同的,则这两个字符串是相同的。
语法
参数
string— 要计算散列的字符串。Stringngramsize— 可选。n-gram 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个散列的元组 — 最小值和最大值。 Tuple
示例
用法示例
ngramMinHashUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 ngramsize 符号的 n-grams,并计算每个 n-gram 的散列值,然后返回包含这些散列的元组。
使用 hashnum 个最小散列来计算最小散列,使用 hashnum 个最大散列来计算最大散列。
此功能对大小写敏感。
可以与 tupleHammingDistance 一起使用来检测半重复字符串。
对于两个字符串,如果返回的散列对两个字符串都是相同的,则这两个字符串是相同的。
语法
参数
string— 要计算散列的字符串。Stringngramsize— 可选。n-gram 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个散列的元组 — 最小值和最大值。 Tuple
示例
用法示例
ngramSimHash
引入于:v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-grams,并返回 n-gram 的 simhash。
可以与 bitHammingDistance 一起使用来检测半重复字符串。
计算出的两个字符串的 simhash 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。
语法
参数
返回值
返回输入字符串的计算散列。 UInt64
示例
用法示例
ngramSimHashCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-grams,并返回 n-gram 的 simhash。
此功能对大小写不敏感。
可以与 bitHammingDistance 一起使用来检测半重复字符串。
计算出的两个字符串的 simhash 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。
语法
参数
返回值
示例
用法示例
ngramSimHashCaseInsensitiveUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 ngramsize 符号的 n-grams,并返回 n-gram 的 simhash。
此功能对大小写不敏感。
可以与 bitHammingDistance 一起使用来检测半重复字符串。计算出的两个字符串的 simhash 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的散列值。 UInt64
示例
用法示例
ngramSimHashUTF8
引入于:v21.1
将 UTF-8 编码的字符串拆分为 ngramsize 符号的 n-grams,并返回 n-gram 的 simhash。
此功能对大小写敏感。
可以与 bitHammingDistance 一起使用来检测半重复字符串。
计算出的两个字符串的 simhash 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的散列值。 UInt64
示例
用法示例
sipHash128
引入于:v1.1
与 sipHash64 类似,但生成 128 位散列值,即最终的异或折叠状态处理到 128 位。
此 128 位变体与参考实现不同且更弱。
此版本存在的原因是,在编写时,没有官方的 128 位 SipHash 扩展。
建议新项目使用 sipHash128Reference。
语法
参数
arg1[, arg2, ...]— 要计算散列的输入参数的可变数量。Any
返回值
返回 128 位 SipHash 散列值。 FixedString(16)
示例
用法示例
sipHash128Keyed
引入于:v23.2
与 sipHash128 相同,但额外提供一个明确的密钥参数,而不是使用固定密钥。
此 128 位变体与参考实现不同且更弱。
此版本存在的原因是,在编写时,没有官方的 128 位 SipHash 扩展。
新项目可能应该使用 sipHash128ReferenceKeyed。
语法
参数
(k0, k1)— 表示密钥的两个 UInt64 值的元组。Tuple(UInt64, UInt64)arg1[, arg2, ...]— 要计算散列的输入参数的可变数量。Any
返回值
返回输入值的 128 位 SipHash 散列值。 FixedString(16)
示例
用法示例
sipHash128Reference
引入于:v23.2
与 sipHash128 类似,但实现 SipHash 原作者的 128 位算法。
语法
参数
arg1[, arg2, ...]— 要计算散列的输入参数的可变数量。Any
返回值
返回输入参数计算出的 128 位 SipHash 散列值。 FixedString(16)
示例
用法示例
sipHash128ReferenceKeyed
引入于:v23.2
与 sipHash128Reference 相同,但额外提供一个明确的密钥参数,而不是使用固定密钥。
语法
参数
(k0, k1)— 表示密钥的两个值的元组Tuple(UInt64, UInt64)arg1[, arg2, ...]— 要计算散列的输入参数的可变数量。Any
返回值
返回输入参数计算出的 128 位 SipHash 散列值。 FixedString(16)
示例
用法示例
sipHash64
引入于:v1.1
生成 64 位 SipHash 散列值。
这是一个密码散列函数。其速度至少比 MD5 散列函数快三倍。
该函数 将所有输入参数解释 为字符串,并计算每个输入参数的散列值。 然后使用以下算法组合这些散列:
- 第一个和第二个散列值被连接到一个数组中,并进行散列。
- 先前计算的散列值和第三个输入参数的散列值以类似的方式进行散列。
- 对原始输入的所有剩余散列值重复此计算。
对于不同参数类型的相同输入值,计算出的散列值可能相等。
这会影响例如不同大小的整数类型,具有相同数据的命名和未命名的 Tuple,以及具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型。
语法
参数
arg1[, arg2, ...]— 可变数量的输入参数。Any
返回值
返回计算的输入参数的散列值。 UInt64
示例
用法示例
sipHash64Keyed
引入于:v23.2
与 sipHash64 类似,但额外提供一个明确的密钥参数,而不是使用固定密钥。
语法
参数
(k0, k1)— 表示密钥的两个值的元组。Tuple(UInt64, UInt64)arg1[,arg2, ...]— 要计算散列的输入参数的可变数量。Any
返回值
返回输入值的计算散列。 UInt64
示例
用法示例
wordShingleMinHash
引入于:v21.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingles),计算每个单词 shingles 的散列值,并返回包含这些散列的元组。
使用 hashnum 个最小散列来计算最小散列,使用 hashnum 个最大散列来计算最大散列。
此功能对大小写敏感。
可以与 tupleHammingDistance 一起使用来检测半重复字符串。
对于两个字符串,如果返回的散列对两个字符串都是相同的,则这两个字符串是相同的。
语法
参数
string— 要计算散列的字符串。Stringshinglesize— 可选。单词 shingles 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个散列的元组 — 最小值和最大值。 Tuple(UInt64, UInt64)
示例
用法示例
wordShingleMinHashArg
引入于:v1.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingles),并返回具有最小和最大单词散列的 shingles,这些散列是通过具有相同输入的 wordShingleMinHash 函数计算的。
此功能对大小写敏感。
语法
参数
string— 要计算散列的字符串。Stringshinglesize— 可选。单词 shingles 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个元组的元组,每个元组具有 hashnum 个单词 shingles。 Tuple(Tuple(String))
示例
用法示例
wordShingleMinHashArgCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingles),并返回具有最小和最大单词散列的 shingles,这些散列是通过 wordShingleMinHashCaseInsensitive 函数计算的。
此功能对大小写不敏感。
语法
参数
string— 要计算散列的字符串。Stringshinglesize— 可选。单词 shingles 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个元组的元组,每个元组具有 hashnum 个单词 shingles。 Tuple(Tuple(String))
示例
用法示例
wordShingleMinHashArgCaseInsensitiveUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 shinglesize 个单词的部分(shingles),并返回具有最小和最大单词散列的 shingles,这些散列是通过 wordShingleMinHashCaseInsensitiveUTF8 函数计算的。
此功能对大小写不敏感。
语法
参数
string— 要计算散列的字符串。Stringshinglesize— 可选。单词 shingles 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个元组的元组,每个元组具有 hashnum 个单词 shingles。 Tuple(Tuple(String))
示例
用法示例
wordShingleMinHashArgUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 shinglesize 个单词的部分(shingles),并返回具有最小和最大单词散列的 shingles,这些散列是通过 wordShingleMinHashUTF8 函数计算的。
此功能对大小写敏感。
语法
参数
string— 要计算散列的字符串。Stringshinglesize— 可选。单词 shingles 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个元组的元组,每个元组具有 hashnum 个单词 shingles。 Tuple(Tuple(String))
示例
用法示例
wordShingleMinHashCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingles),计算每个单词 shingles 的散列值,并返回包含这些散列的元组。
使用 hashnum 个最小散列来计算最小散列,使用 hashnum 个最大散列来计算最大散列。
此功能对大小写不敏感。
可以与 tupleHammingDistance 一起使用来检测半重复字符串。
对于两个字符串,如果返回的散列对两个字符串都是相同的,则这两个字符串是相同的。
语法
参数
string— 要计算散列的字符串。Stringshinglesize— 可选。单词 shingles 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个散列的元组 — 最小值和最大值。 Tuple(UInt64, UInt64)
示例
用法示例
wordShingleMinHashCaseInsensitiveUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 shinglesize 个单词的部分(shingles),计算每个单词 shingles 的散列值,并返回包含这些散列的元组。
使用 hashnum 个最小散列来计算最小散列,使用 hashnum 个最大散列来计算最大散列。
此功能对大小写不敏感。
可以与 tupleHammingDistance 一起使用来检测半重复字符串。
对于两个字符串,如果返回的散列对两个字符串都是相同的,则这两个字符串是相同的。
语法
参数
string— 要计算散列的字符串。Stringshinglesize— 可选。单词 shingles 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个散列的元组 — 最小值和最大值。 Tuple(UInt64, UInt64)
示例
用法示例
wordShingleMinHashUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 shinglesize 个单词的部分(shingles),计算每个单词 shingles 的散列值,并返回包含这些散列的元组。
使用 hashnum 个最小散列来计算最小散列,使用 hashnum 个最大散列来计算最大散列。
此功能对大小写敏感。
可以与 tupleHammingDistance 一起使用来检测半重复字符串。
对于两个字符串,如果返回的散列对两个字符串都是相同的,则这两个字符串是相同的。
语法
参数
string— 要计算散列的字符串。Stringshinglesize— 可选。单词 shingles 的大小,范围从1到25的任何数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大散列的数量,范围从1到25的任何数字。默认值为6。UInt8
返回值
返回包含两个散列的元组 — 最小值和最大值。 Tuple(UInt64, UInt64)
示例
用法示例
wordShingleSimHash
引入于:v21.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingles),并返回单词 shingles 的 simhash。
此功能对大小写敏感。
可以与 bitHammingDistance 一起使用来检测半重复字符串。
计算出的两个字符串的 simhash 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的散列值。 UInt64
示例
用法示例
wordShingleSimHashCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingles),并返回单词 shingles 的 simhash。
此功能对大小写不敏感。
可以与 bitHammingDistance 一起使用来检测半重复字符串。
计算出的两个字符串的 simhash 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的散列值。 UInt64
示例
用法示例
wordShingleSimHashCaseInsensitiveUTF8
引入于:v1.1
将 UTF-8 编码的字符串拆分为 shinglesize 个单词的部分(shingles),并返回单词 shingles 的 simhash。
此功能对大小写不敏感。
可以与 bitHammingDistance 一起使用来检测半重复字符串。
计算出的两个字符串的 simhash 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的散列值。 UInt64
示例
用法示例
wordShingleSimHashUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 shinglesize 个单词的部分(shingles),并返回单词 shingles 的 simhash。
此功能对大小写敏感。
可以与 bitHammingDistance 一起使用来检测半重复字符串。
计算出的两个字符串的 simhash 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的散列值。 UInt64
示例
用法示例
wyHash64
引入于:v22.7
计算 64 位 wyHash64 散列值。
语法
参数
arg— 要计算散列的字符串参数。String
返回值
返回计算出的 64 位散列值 UInt64
示例
用法示例
xxHash32
引入于:v20.1
从字符串计算 xxHash。
有关 64 位版本,请参见 xxHash64
语法
参数
arg— 输入字符串进行哈希。String
返回值
返回计算出的输入字符串的 32 位散列。 UInt32
示例
用法示例
xxHash64
引入于:v20.1
从字符串计算 xxHash。
有关 32 位版本,请参见 xxHash32
语法
参数
arg— 输入字符串进行哈希。String
返回值
返回计算出的输入字符串的 64 位散列。 UInt64
示例
用法示例
xxh3
引入于:v22.12
计算 XXH3 64 位散列值。
语法
参数
expr— 任意数据类型的表达式列表。Any
返回值
返回计算的 64 位 xxh3 散列值 UInt64
示例
用法示例