跳到主要内容
跳到主要内容

Hash 函数

哈希函数可用于元素的确定性伪随机混洗。

Simhash 是一种哈希函数,对于相似的参数返回接近的哈希值。

halfMD5

将所有输入参数解读为字符串,并计算每个字符串的 MD5 哈希值。然后组合这些哈希值,取结果字符串哈希的前 8 字节,并将其解释为大端字节序的 UInt64

该函数相对较慢(每秒每处理器核心只能处理 500 万个短字符串)。考虑使用 sipHash64 函数。

参数

此函数接受可变数量的输入参数。参数可以是任何经过支持的数据类型。对于某些数据类型,即使参数的类型不同(不同大小的整数、相同数据的有名和无名的 Tuple、相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型),哈希函数计算的值可能也会相同。

返回值

返回一个 UInt64 数据类型的哈希值。

示例

MD4

计算字符串的 MD4,并将结果字节集返回为 FixedString(16)。

MD5

计算字符串的 MD5,并将结果字节集返回为 FixedString(16)。如果你并不特别需要 MD5,但需要一个合适的 128 位加密哈希,则应使用 sipHash128 函数。如果你想要与 md5sum 工具输出相同的结果,请使用 lower(hex(MD5(s)))。

RIPEMD160

生成 RIPEMD-160 哈希值。

语法

参数

  • input:输入字符串。String

返回值

示例

使用 hex 函数将结果表示为十六进制编码字符串。

查询:

sipHash64

生成 64 位 SipHash 哈希值。

这是一种加密哈希函数。它的工作速度至少是 MD5 哈希函数的三倍。

该函数 将输入参数解读为字符串,并计算每个参数的哈希值。然后通过以下算法组合哈希值:

  1. 第一个和第二个哈希值连接到一个数组中并进行哈希。
  2. 之前计算的哈希值与第三个输入参数的哈希值以类似的方式进行哈希。
  3. 这个计算将对所有剩余的原始输入哈希值重复进行。

参数

该函数接受可变数量的输入参数,参数可以是任何经过支持的数据类型

返回值

返回一个 UInt64 数据类型的哈希值。

请注意,对于不同参数类型的相同输入值,计算得出的哈希值可能会相等。例如不同大小的整数类型、有名和无名的 Tuple 具有相同数据、Map 和相应的 Array(Tuple(key, value)) 类型具有相同数据都会受到影响。

示例

sipHash64Keyed

sipHash64 相同,但额外接受一个显式的密钥参数,而不是使用固定密钥。

语法

参数

sipHash64 相同,但第一个参数是包含两个 UInt64 值的元组,代表密钥。

返回值

返回一个 UInt64 数据类型的哈希值。

示例

查询:

sipHash128

sipHash64 类似,但生成 128 位哈希值,即最终的 xor-folding 状态处理至 128 位。

备注

这种 128 位变体与参考实现不同,它较弱。这种版本存在的原因是,在撰写时,没有官方的 128 位 SipHash 扩展。新的项目可能应使用 sipHash128Reference

语法

参数

sipHash64 相同。

返回值

返回类型为 FixedString(16) 的 128 位 SipHash 哈希值。

示例

查询:

结果:

sipHash128Keyed

sipHash128 类似,但额外接受一个显式的密钥参数,而不是使用固定密钥。

备注

这种 128 位变体与参考实现不同,它较弱。这种版本存在的原因是,在撰写时,没有官方的 128 位 SipHash 扩展。新的项目可能应使用 sipHash128ReferenceKeyed

语法

参数

sipHash128 相同,但第一个参数是包含两个 UInt64 值的元组,代表密钥。

返回值

返回一个 128 位 SipHash 哈希值,类型为 FixedString(16)

示例

查询:

结果:

sipHash128Reference

sipHash128 类似,但实现了原始 SipHash 作者的 128 位算法。

语法

参数

sipHash128 相同。

返回值

返回一个 128 位 SipHash 哈希值,类型为 FixedString(16)

示例

查询:

结果:

sipHash128ReferenceKeyed

sipHash128Reference 类似,但额外接受一个显式的密钥参数,而不是使用固定密钥。

语法

参数

sipHash128Reference 相同,但第一个参数是包含两个 UInt64 值的元组,代表密钥。

返回值

返回一个 128 位 SipHash 哈希值,类型为 FixedString(16)

示例

查询:

结果:

cityHash64

生成 64 位 CityHash 哈希值。

这是一种快速的非加密哈希函数。对于字符串参数,它使用 CityHash 算法,对于其它数据类型的参数,使用实现特定的快速非加密哈希函数。该函数使用 CityHash 组合器获得最终结果。

请注意,谷歌在将 CityHash 添加到 ClickHouse 之后更改了 CityHash 的算法。换句话说,ClickHouse 的 cityHash64 和 Google 上游的 CityHash 现在生成不同的结果。ClickHouse cityHash64 对应于 CityHash v1.0.2。

参数

该函数接受可变数量的输入参数。参数可以是任何经过支持的数据类型。对于某些数据类型,即使参数的类型不同(不同大小的整数、相同数据的有名和无名的 Tuple、相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型),哈希函数计算的值也可能相同。

返回值

返回一个 UInt64 数据类型的哈希值。

示例

调用示例:

以下示例演示如何计算整个表的校验和,精确到行顺序:

intHash32

从任意类型的整数计算 32 位哈希码。这是一种相对较快的非加密哈希函数,质量平均。

语法

参数

  • int — 要哈希的整数。(U)Int*

返回值

示例

查询:

结果:

intHash64

从任意类型的整数计算 64 位哈希码。这是一种相对较快的非加密哈希函数,质量平均。它的速度快于 intHash32

语法

参数

  • int — 要哈希的整数。(U)Int*

返回值

示例

查询:

结果:

SHA1, SHA224, SHA256, SHA512, SHA512_256

从字符串计算 SHA-1、SHA-224、SHA-256、SHA-512、SHA-512-256 哈希,并将结果字节集返回为 FixedString

语法

该函数的工作速度相对较慢(SHA-1 每秒每处理器核心处理大约 500 万个短字符串,而 SHA-224 和 SHA-256 每秒大约处理 220 万个)。我们建议仅在需要特定哈希函数而无法选择时使用此函数。即使在这些情况下,我们也建议在插入时离线应用函数,预先计算值,而不是在 SELECT 查询中应用。

参数

  • s — 用于 SHA 哈希计算的输入字符串。String

返回值

  • SHA 哈希值,作为未编码的十六进制 FixedString。SHA-1 返回为 FixedString(20),SHA-224 返回为 FixedString(28),SHA-256 返回为 FixedString(32),SHA-512 返回为 FixedString(64)。 FixedString

示例

使用 hex 函数将结果表示为十六进制编码字符串。

查询:

结果:

BLAKE3

计算 BLAKE3 哈希字符串,并将结果字节集返回为 FixedString

语法

该加密哈希函数与 BLAKE3 Rust 库集成在 ClickHouse 中。该函数相当快,性能比 SHA-2 快约两倍,同时生成与 SHA-256 相同长度的哈希。

参数

  • s - 用于 BLAKE3 哈希计算的输入字符串。String

返回值

  • 作为 FixedString(32) 的 BLAKE3 哈希。FixedString

示例

使用 hex 函数将结果表示为十六进制编码字符串。

查询:

结果:

URLHash(url[, N])

一种快速、质量良好的非加密哈希函数,用于从 URL 获得的字符串,使用某种类型的规范化。
URLHash(s) – 从字符串计算哈希,若最后存在 /?# 之一则不包括它们。
URLHash(s, N) – 从字符串计算哈希,计算到 URL 层级的 N 级,而不包括最后存在的 /?# 之一。层级与 URLHierarchy 相同。

farmFingerprint64

farmHash64

生成 64 位 FarmHash 或 Fingerprint 值。farmFingerprint64 是优选的稳定和可移植值。

这些函数分别使用来自所有可用方法Fingerprint64Hash64 方法。

参数

该函数接受可变数量的输入参数。参数可以是任何经过支持的数据类型。对于某些数据类型,即使参数的类型不同(不同大小的整数、相同数据的有名和无名的 Tuple、相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型),哈希函数计算的值也可能相同。

返回值

返回一个 UInt64 数据类型的哈希值。

示例

javaHash

计算来自 stringByteShortIntegerLong 的 JavaHash。这个哈希函数既不快也不具备良好的质量。使用它的唯一原因是当另一个系统已经使用此算法,并且您必须准确计算相同的结果。

请注意,Java 仅支持计算有符号整数哈希,因此如果您想计算无符号整数哈希,则必须将其转换为适当的有符号 ClickHouse 类型。

语法

返回值

一个 Int32 数据类型的哈希值。

示例

查询:

结果:

查询:

结果:

javaHashUTF16LE

从字符串中计算 JavaHash,假设它包含表示 UTF-16LE 编码字符串的字节。

语法

参数

  • stringUtf16le — UTF-16LE 编码的字符串。

返回值

一个 Int32 数据类型的哈希值。

示例

正确查询 UTF-16LE 编码字符串。

查询:

结果:

hiveHash

从字符串计算 HiveHash

这只是将符号位清零的 JavaHash。此函数在 Apache Hive 版本 3.0 之前使用。这个哈希函数既不快也不具备良好的质量。使用它的唯一原因是当另一个系统已经使用此算法,并且您必须准确计算相同的结果。

返回值

  • hiveHash 哈希值。Int32

示例

查询:

结果:

metroHash64

生成 64 位 MetroHash 哈希值。

参数

该函数接受可变数量的输入参数。参数可以是任何经过支持的数据类型。对于某些数据类型,即使参数的类型不同(不同大小的整数、相同数据的有名和无名的 Tuple、相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型),哈希函数计算的值也可能相同。

返回值

返回一个 UInt64 数据类型的哈希值。

示例

jumpConsistentHash

计算来自 UInt64 的 JumpConsistentHash。接受两个参数:一个 UInt64 类型的键和桶的数量。返回 Int32。有关更多信息,请参见链接:JumpConsistentHash

kostikConsistentHash

Konstantin 'kostik' Oblakov 提出的 O(1) 时间和空间一致哈希算法。之前称为 yandexConsistentHash

语法

别名:yandexConsistentHash(为向后兼容而保留)。

参数

  • input:一个 UInt64 类型的键 UInt64
  • n:桶的数量。UInt16

返回值

  • 一个 UInt16 数据类型的哈希值。

实现细节

当 n <= 32768 时,它是有效的。

示例

查询:

murmurHash2_32, murmurHash2_64

生成 MurmurHash2 哈希值。

参数

两个函数都接受可变数量的输入参数。参数可以是任何经过支持的数据类型。对于某些数据类型,即使参数的类型不同(不同大小的整数、相同数据的有名和无名的 Tuple、相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型),哈希函数计算的值也可能相同。

返回值

  • murmurHash2_32 函数返回类型为 UInt32 的哈希值。
  • murmurHash2_64 函数返回类型为 UInt64 的哈希值。

示例

gccMurmurHash

使用与 gcc 相同的哈希种子计算 64 位 MurmurHash2 哈希值。它在 Clang 和 GCC 构建之间是可移植的。

语法

参数

返回值

  • 计算出的哈希值。UInt64

示例

查询:

结果:

kafkaMurmurHash

使用与 Kafka 相同的哈希种子计算 32 位 MurmurHash2 哈希值,并且不包括最高位,以与 Default Partitioner 兼容。

语法

参数

返回值

  • 计算出的哈希值。UInt32

示例

查询:

结果:

murmurHash3_32, murmurHash3_64

生成 MurmurHash3 哈希值。

参数

两个函数都接受可变数量的输入参数。参数可以是任何经过支持的数据类型。对于某些数据类型,即使参数的类型不同(不同大小的整数、相同数据的有名和无名的 Tuple、相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型),哈希函数计算的值也可能相同。

返回值

  • murmurHash3_32 函数返回类型为 UInt32 的哈希值。
  • murmurHash3_64 函数返回类型为 UInt64 的哈希值。

示例

murmurHash3_128

生成 128 位 MurmurHash3 哈希值。

语法

参数

返回值

返回一个 128 位 MurmurHash3 哈希值。FixedString(16)

示例

查询:

结果:

xxh3

生成 64 位 xxh3 哈希值。

语法

参数

  • expr — 一系列 表达式 的任何数据类型。

返回值

返回一个 64 位 xxh3 哈希值。UInt64

示例

查询:

结果:

xxHash32, xxHash64

从字符串计算 xxHash。提供两种形式,32 位和 64 位。

返回值

备注

返回类型对于 xxHash32 将是 UInt32,而对于 xxHash64 将是 UInt64

示例

查询:

结果:

参见

ngramSimHash

将 ASCII 字符串拆分为 ngramsize 符号的 n-gram,并返回 n-gram simhash。区分大小写。

可用于检测bitHammingDistance 所示的半重复字符串。计算出的两个字符串的 simhashes 的汉明距离越小,这些字符串越可能相同。

语法

参数

  • string — 字符串。String
  • ngramsize — n-gram 的大小。可选。可能值:125 之间的任意数字。默认值:3UInt8

返回值

示例

查询:

结果:

ngramSimHashCaseInsensitive

将 ASCII 字符串拆分为 ngramsize 符号的 n-gram,并返回 n-gram simhash。不区分大小写。

可用于检测bitHammingDistance 所示的半重复字符串。计算出的两个字符串的 simhashes 的汉明距离越小,这些字符串越可能相同。

语法

参数

  • string — 字符串。String
  • ngramsize — n-gram 的大小。可选。可能值:125 之间的任意数字。默认值:3UInt8

返回值

示例

查询:

结果:

ngramSimHashUTF8

将 UTF-8 字符串拆分为 ngramsize 符号的 n-gram,并返回 n-gram simhash。区分大小写。

可用于检测bitHammingDistance 所示的半重复字符串。计算出的两个字符串的 simhashes 的汉明距离越小,这些字符串越可能相同。

语法

参数

  • string — 字符串。String
  • ngramsize — n-gram 的大小。可选。可能值:125 之间的任意数字。默认值:3UInt8

返回值

示例

查询:

结果:

ngramSimHashCaseInsensitiveUTF8

将一个 UTF-8 字符串分割为 ngramsize 符号的 n-gram,并返回 n-gram 的 simhash。不区分大小写。

可以用于检测半重复字符串,使用 bitHammingDistance。计算出的两个字符串的 simhashes 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。

语法

参数

  • string — 字符串。 String
  • ngramsize — n-gram 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8

返回值

示例

查询:

结果:

wordShingleSimHash

将一个 ASCII 字符串分割为 shinglesize 个单词的部分(shingles),并返回单词 shingle 的 simhash。区分大小写。

可以用于检测半重复字符串,使用 bitHammingDistance。计算出的两个字符串的 simhashes 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8

返回值

示例

查询:

结果:

wordShingleSimHashCaseInsensitive

将一个 ASCII 字符串分割为 shinglesize 个单词的部分(shingles),并返回单词 shingle 的 simhash。不区分大小写。

可以用于检测半重复字符串,使用 bitHammingDistance。计算出的两个字符串的 simhashes 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8

返回值

示例

查询:

结果:

wordShingleSimHashUTF8

将一个 UTF-8 字符串分割为 shinglesize 个单词的部分(shingles),并返回单词 shingle 的 simhash。区分大小写。

可以用于检测半重复字符串,使用 bitHammingDistance。计算出的两个字符串的 simhashes 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8

返回值

示例

查询:

结果:

wordShingleSimHashCaseInsensitiveUTF8

将一个 UTF-8 字符串分割为 shinglesize 个单词的部分(shingles),并返回单词 shingle 的 simhash。不区分大小写。

可以用于检测半重复字符串,使用 bitHammingDistance。计算出的两个字符串的 simhashes 之间的 汉明距离 越小,这两个字符串相同的可能性就越大。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8

返回值

示例

查询:

结果:

wyHash64

生成一个 64 位的 wyHash64 哈希值。

语法

参数

  • string — 字符串。 String

返回值

示例

查询:

结果:

ngramMinHash

将一个 ASCII 字符串分割为 ngramsize 符号的 n-grams,并为每个 n-gram 计算哈希值。使用 hashnum 个最小哈希计算最小哈希,并使用 hashnum 个最大哈希计算最大哈希。返回包含这些哈希的元组。区分大小写。

可以用于检测半重复字符串,使用 tupleHammingDistance。对于两个字符串:如果返回的哈希中的一个在两个字符串中相同,则认为这两个字符串是相同的。

语法

参数

  • string — 字符串。 String
  • ngramsize — n-gram 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

ngramMinHashCaseInsensitive

将一个 ASCII 字符串分割为 ngramsize 符号的 n-grams,并为每个 n-gram 计算哈希值。使用 hashnum 个最小哈希计算最小哈希,并使用 hashnum 个最大哈希计算最大哈希。返回包含这些哈希的元组。忽略大小写。

可以用于检测半重复字符串,使用 tupleHammingDistance。对于两个字符串:如果返回的哈希中的一个在两个字符串中相同,则认为这两个字符串是相同的。

语法

参数

  • string — 字符串。 String
  • ngramsize — n-gram 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

ngramMinHashUTF8

将一个 UTF-8 字符串分割为 ngramsize 符号的 n-grams,并为每个 n-gram 计算哈希值。使用 hashnum 个最小哈希计算最小哈希,并使用 hashnum 个最大哈希计算最大哈希。返回包含这些哈希的元组。区分大小写。

可以用于检测半重复字符串,使用 tupleHammingDistance。对于两个字符串:如果返回的哈希中的一个在两个字符串中相同,则认为这两个字符串是相同的。

语法

参数

  • string — 字符串。 String
  • ngramsize — n-gram 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

ngramMinHashCaseInsensitiveUTF8

将一个 UTF-8 字符串分割为 ngramsize 符号的 n-grams,并为每个 n-gram 计算哈希值。使用 hashnum 个最小哈希计算最小哈希,并使用 hashnum 个最大哈希计算最大哈希。返回包含这些哈希的元组。忽略大小写。

可以用于检测半重复字符串,使用 tupleHammingDistance。对于两个字符串:如果返回的哈希中的一个在两个字符串中相同,则认为这两个字符串是相同的。

语法

参数

  • string — 字符串。 String
  • ngramsize — n-gram 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

ngramMinHashArg

将一个 ASCII 字符串分割为 ngramsize 符号的 n-grams,并返回通过 ngramMinHash 函数计算出的具有相同输入的最小和最大哈希的 n-grams。区分大小写。

语法

参数

  • string — 字符串。 String
  • ngramsize — n-gram 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

ngramMinHashArgCaseInsensitive

将一个 ASCII 字符串分割为 ngramsize 符号的 n-grams,并返回通过 ngramMinHashCaseInsensitive 函数计算出的具有相同输入的最小和最大哈希的 n-grams。忽略大小写。

语法

参数

  • string — 字符串。 String
  • ngramsize — n-gram 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

ngramMinHashArgUTF8

将一个 UTF-8 字符串分割为 ngramsize 符号的 n-grams,并返回通过 ngramMinHashUTF8 函数计算出的具有相同输入的最小和最大哈希的 n-grams。区分大小写。

语法

参数

  • string — 字符串。 String
  • ngramsize — n-gram 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

ngramMinHashArgCaseInsensitiveUTF8

将一个 UTF-8 字符串分割为 ngramsize 符号的 n-grams,并返回通过 ngramMinHashCaseInsensitiveUTF8 函数计算出的具有相同输入的最小和最大哈希的 n-grams。忽略大小写。

语法

参数

  • string — 字符串。 String
  • ngramsize — n-gram 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

wordShingleMinHash

将一个 ASCII 字符串分割为 shinglesize 个单词的部分(shingles),并为每个单词 shingle 计算哈希值。使用 hashnum 个最小哈希计算最小哈希,并使用 hashnum 个最大哈希计算最大哈希。返回包含这些哈希的元组。区分大小写。

可以用于检测半重复字符串,使用 tupleHammingDistance。对于两个字符串:如果返回的哈希中的一个在两个字符串中相同,则认为这两个字符串是相同的。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

wordShingleMinHashCaseInsensitive

将一个 ASCII 字符串分割为 shinglesize 个单词的部分(shingles),并为每个单词 shingle 计算哈希值。使用 hashnum 个最小哈希计算最小哈希,并使用 hashnum 个最大哈希计算最大哈希。返回包含这些哈希的元组。忽略大小写。

可以用于检测半重复字符串,使用 tupleHammingDistance。对于两个字符串:如果返回的哈希中的一个在两个字符串中相同,则认为这两个字符串是相同的。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

wordShingleMinHashUTF8

将一个 UTF-8 字符串分割为 shinglesize 个单词的部分(shingles),并为每个单词 shingle 计算哈希值。使用 hashnum 个最小哈希计算最小哈希,并使用 hashnum 个最大哈希计算最大哈希。返回包含这些哈希的元组。区分大小写。

可以用于检测半重复字符串,使用 tupleHammingDistance。对于两个字符串:如果返回的哈希中的一个在两个字符串中相同,则认为这两个字符串是相同的。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

wordShingleMinHashCaseInsensitiveUTF8

将一个 UTF-8 字符串分割为 shinglesize 个单词的部分(shingles),并为每个单词 shingle 计算哈希值。使用 hashnum 个最小哈希计算最小哈希,并使用 hashnum 个最大哈希计算最大哈希。返回包含这些哈希的元组。忽略大小写。

可以用于检测半重复字符串,使用 tupleHammingDistance。对于两个字符串:如果返回的哈希中的一个在两个字符串中相同,则认为这两个字符串是相同的。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

wordShingleMinHashArg

将一个 ASCII 字符串分割为 shinglesize 个单词的部分(shingles),并返回通过 wordshingleMinHash 函数计算出的具有相同输入的最小和最大单词哈希的 shingles。区分大小写。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

wordShingleMinHashArgCaseInsensitive

将一个 ASCII 字符串分割为 shinglesize 个单词的部分(shingles),并返回通过 wordShingleMinHashCaseInsensitive 函数计算出的具有相同输入的最小和最大单词哈希的 shingles。忽略大小写。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

wordShingleMinHashArgUTF8

将一个 UTF-8 字符串分割为 shinglesize 个单词的部分(shingles),并返回通过 wordShingleMinHashUTF8 函数计算出的具有相同输入的最小和最大单词哈希的 shingles。区分大小写。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingle 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

wordShingleMinHashArgCaseInsensitiveUTF8

将 UTF-8 字符串分割为每个 shinglesize 个单词的部分(shingles),并返回通过相同输入计算的最小和最大单词哈希值,这些哈希值是通过 wordShingleMinHashCaseInsensitiveUTF8 函数得出的。忽略大小写。

语法

参数

  • string — 字符串。 String
  • shinglesize — 单词 shingles 的大小。可选。可能的值:从 125 的任何数字。默认值:3UInt8
  • hashnum — 用于计算结果的最小和最大哈希的数量。可选。可能的值:从 125 的任何数字。默认值:6UInt8

返回值

示例

查询:

结果:

sqidEncode

将数字编码为 Sqid,这是类似于 YouTube 的 ID 字符串。 输出字母表为 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789。 请勿将此函数用于哈希 - 生成的 ID 可解码回原始数字。

语法

别名:sqid

参数

  • 可变数量的 UInt8、UInt16、UInt32 或 UInt64 数字。

返回值

一个 sqid String

示例

sqidDecode

Sqid 解码回其原始数字。 如果输入字符串不是有效的 sqid,则返回空数组。

语法

参数

返回值

将 sqid 转换为数字的 Array(UInt64)

示例