ハッシュ関数
ハッシュ関数は、要素の決定論的擬似ランダムシャッフルに使用できます。
Simhashは、近い(類似の)引数に対して近似のハッシュ値を返すハッシュ関数です。
halfMD5
すべての入力パラメータを文字列として解釈し、それぞれのMD5ハッシュ値を計算します。次に、ハッシュを結合し、結果的な文字列のハッシュの最初の8バイトを取得し、それをビッグエンディアンのバイト順でUInt64
として解釈します。
この関数は比較的遅く(1秒あたりプロセッサコアごとに500万の短い文字列)、sipHash64関数を代わりに使用することを検討してください。
引数
この関数は可変数の入力パラメータを受け取ります。引数はサポートされるデータ型のいずれかであることができます。いくつかのデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算結果が同じになることがあります(異なるサイズの整数、同じデータを持つ命名されたTuple
と非命名の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
返り値
- タイプFixedString(20)の160ビット
RIPEMD-160
ハッシュ値。
例
hex関数を使用して、結果を16進エンコードされた文字列として表現します。
クエリ:
sipHash64
64ビット強力なSipHashハッシュ値を生成します。
これは暗号化ハッシュ関数です。MD5ハッシュ関数よりも少なくとも3倍速く動作します。
この関数はすべての入力パラメータを文字列として解釈しますおよびそれぞれのハッシュ値を計算します。その後、次のアルゴリズムによってハッシュを結合します。
- 最初のハッシュ値と2番目のハッシュ値が配列に連結され、それがハッシュされます。
- 前に計算されたハッシュ値と3番目の入力パラメータのハッシュが同様にハッシュされます。
- この計算は元の入力のすべての残りのハッシュ値に対して繰り返されます。
引数
この関数は、サポートされるデータ型の任意の可変数の入力パラメータを受け取ります。
返り値
UInt64データ型のハッシュ値。
計算されたハッシュ値は、異なる引数の型の同じ入力値に対して等しい場合があることに注意が必要です。これは、異なるサイズの整数型、同じデータを持つ命名および非命名のTuple
、同じデータを持つMap
および対応するArray(Tuple(key, value))
型に影響を与えます。
例
sipHash64Keyed
sipHash64と同様ですが、固定キーを使用せず、明示的なキー引数を受け取ります。
構文
引数
sipHash64と同様ですが、最初の引数はキーを表す2つのUInt64値のタプルです。
返り値
UInt64データ型のハッシュ値。
例
クエリ:
sipHash128
sipHash64のように、128ビットのハッシュ値を生成します。最終的なxor-folding状態は128ビットまで行います。
この128ビットのバリアントは、リファレンス実装とは異なり、より弱いです。このバージョンは、執筆時にSipHashの公式128ビット拡張が存在しなかったために存在します。新しいプロジェクトは、sipHash128Referenceを使用することを検討するべきです。
構文
引数
sipHash64と同様。
返り値
FixedString(16)型の128ビットSipHash
ハッシュ値。
例
クエリ:
結果:
sipHash128Keyed
sipHash128と同様ですが、固定キーを使用せず、明示的なキー引数を受け取ります。
この128ビットのバリアントは、リファレンス実装とは異なり、より弱いです。このバージョンは、執筆時にSipHashの公式128ビット拡張が存在しなかったために存在します。新しいプロジェクトは、sipHash128ReferenceKeyedを使用することを検討するべきです。
構文
引数
sipHash128と同様ですが、最初の引数はキーを表す2つのUInt64値のタプルです。
返り値
FixedString(16)型の128ビットSipHash
ハッシュ値。
例
クエリ:
結果:
sipHash128Reference
sipHash128と同様ですが、SipHashの元の著者からの128ビットアルゴリズムを実装しています。
構文
引数
sipHash128と同様。
返り値
FixedString(16)型の128ビットSipHash
ハッシュ値。
例
クエリ:
結果:
sipHash128ReferenceKeyed
sipHash128Referenceと同様ですが、固定キーを使用せず、明示的なキー引数を受け取ります。
構文
引数
sipHash128Referenceと同様ですが、最初の引数はキーを表す2つのUInt64値のタプルです。
返り値
FixedString(16)型の128ビットSipHash
ハッシュ値。
例
クエリ:
結果:
cityHash64
64ビットCityHashハッシュ値を生成します。
これは、非常に速い非暗号化ハッシュ関数です。文字列パラメータにはCityHashアルゴリズムを使用し、他のデータ型のパラメータには実装固有の高速非暗号化ハッシュ関数を使用します。この関数はCityHashの組み合わせメソッドを使用して最終結果を得ます。
Googleは、ClickHouseに追加された後にCityHashのアルゴリズムを変更しました。言い換えれば、ClickHouseのcityHash64とGoogleのアップストリームCityHashは現在異なる結果を生成します。ClickHouseのcityHash64はCityHash v1.0.2に対応しています。
引数
この関数は可変数の入力パラメータを受け取ります。引数はサポートされるデータ型のいずれかであることができます。いくつかのデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算結果が同じになることがあります(異なるサイズの整数、同じデータを持つ命名されたTuple
と非命名のTuple
、同じデータを持つMap
と対応するArray(Tuple(key, value))
型)。
返り値
UInt64データ型のハッシュ値。
例
コールの例:
次の例は、行の順序まで正確に全テーブルのチェックサムを計算する方法を示しています。
intHash32
任意の整数型の32ビットハッシュコードを計算します。 これは、数値に対して平均的な品質の比較的高速な非暗号化ハッシュ関数です。
構文
引数
int
— ハッシュする整数です。(U)Int*。
返り値
- 32ビットハッシュコード。UInt32。
例
クエリ:
結果:
intHash64
任意の整数型の64ビットハッシュコードを計算します。 これは、数値に対して平均的な品質の比較的高速な非暗号化ハッシュ関数です。 これはintHash32よりも速く動作します。
構文
引数
int
— ハッシュする整数です。(U)Int*。
返り値
- 64ビットハッシュコード。UInt64。
例
クエリ:
結果:
SHA1, SHA224, SHA256, SHA512, SHA512_256
文字列からSHA-1、SHA-224、SHA-256、SHA-512、SHA-512-256ハッシュを計算し、結果となるバイトセットをFixedStringとして返します。
構文
この関数はかなり遅く動作します(SHA-1はプロセッサコアごとに1秒あたり約500万の短い文字列を処理し、SHA-224とSHA-256は約220万を処理します)。特定のハッシュ関数が必要で、選択できない場合を除いて、この関数の使用をお勧めします。それでもこれらのケースでは、SELECT
クエリで適用するのではなく、オフラインでこの関数を適用し、テーブルに挿入する際に値を事前に計算することをお勧めします。
引数
s
— SHAハッシュ計算のための入力文字列。String。
返り値
- SHAハッシュとして16進未エンコードのFixedStringとして返されます。SHA-1はFixedString(20)、SHA-224はFixedString(28)、SHA-256はFixedString(32)、SHA-512はFixedString(64)として返されます。FixedString。
例
hex関数を使用して、結果を16進エンコードされた文字列として表現します。
クエリ:
結果:
BLAKE3
BLAKE3ハッシュ文字列を計算し、結果となるバイトセットをFixedStringとして返します。
構文
この暗号化ハッシュ関数は、BLAKE3 RustライブラリでClickHouseに統合されています。この関数はかなり速く、SHA-2と同じ長さのハッシュを生成しながら、SHA-2よりも約2倍のパフォーマンスを示します。
引数
- s - BLAKE3ハッシュ計算のための入力文字列。String。
返り値
- BLAKE3ハッシュとしてタイプFixedString(32)のバイト配列。FixedString。
例
hex関数を使用して、結果を16進エンコードされた文字列として表現します。
クエリ:
結果:
URLHash(url[, N])
URLから得られた文字列に対して、いくつかのタイプの正規化を使用した高速で適度な品質の非暗号化ハッシュ関数です。
URLHash(s)
– 終わりに/
,?
または#
のいずれかのトレーリングシンボルがある場合、それを除去して文字列からハッシュを計算します。
URLHash(s, N)
– トレーリングシンボルがある場合、NレベルのURL階層までの文字列からハッシュを計算します。
階層はURLHierarchyと同じです。
farmFingerprint64
farmHash64
64ビットFarmHashまたはフィンガープリント値を生成します。farmFingerprint64
は安定して移植可能な値のため好まれます。
これらの関数は、それぞれ利用可能なメソッドからFingerprint64
およびHash64
メソッドを使用します。
引数
この関数は可変数の入力パラメータを受け取ります。引数はサポートされるデータ型のいずれかであることができます。いくつかのデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算結果が同じになることがあります(異なるサイズの整数、同じデータを持つ命名されたTuple
と非命名のTuple
、同じデータを持つMap
と対応するArray(Tuple(key, value))
型)。
返り値
UInt64データ型のハッシュ値。
例
javaHash
文字列, バイト, ショート, 整数, ロングからJavaHashを計算します。 このハッシュ関数は速くもなく、良い品質を持っているわけでもありません。使用する唯一の理由は、このアルゴリズムが他のシステムで既に使用されている場合で、正確に同じ結果を計算する必要がある場合です。
Javaは符号付き整数のハッシュ計算のみをサポートしているため、符号なし整数のハッシュを計算する場合は、適切な符号付きClickHouse型にキャストする必要があります。
構文
返り値
Int32
データ型のハッシュ値。
例
クエリ:
結果:
クエリ:
結果:
javaHashUTF16LE
UTF-16LEエンコーディングで表される文字列からJavaHashを計算します。
構文
引数
stringUtf16le
— UTF-16LEエンコーディングの文字列。
返り値
Int32
データ型のハッシュ値。
例
UTF-16LEエンコードされた文字列を持つ正しいクエリ。
クエリ:
結果:
hiveHash
文字列からHiveHash
を計算します。
これは、符号ビットをゼロにしたJavaHashに過ぎません。この関数はApache Hiveバージョン3.0より前で使用されます。このハッシュ関数は速くもなく、良い品質を持っているわけでもありません。使用する唯一の理由は、このアルゴリズムが他のシステムで既に使用されている場合で、正確に同じ結果を計算する必要がある場合です。
返り値
hiveHash
ハッシュ値。Int32。
例
クエリ:
結果:
metroHash64
64ビットMetroHashハッシュ値を生成します。
引数
この関数は可変数の入力パラメータを受け取ります。引数はサポートされるデータ型のいずれかであることができます。いくつかのデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算結果が同じになることがあります(異なるサイズの整数、同じデータを持つ命名されたTuple
と非命名のTuple
、同じデータを持つMap
と対応するArray(Tuple(key, value))
型)。
返り値
UInt64データ型のハッシュ値。
例
jumpConsistentHash
UInt64からJumpConsistentHashを計算します。 2つの引数を受け入れます: UInt64型のキーとバケットの数。Int32を返します。 詳細については、次のリンクを参照してください: JumpConsistentHash
kostikConsistentHash
Konstantin 'kostik' OblakovによるO(1)時間とスペースの一貫したハッシュアルゴリズム。以前はyandexConsistentHash
でした。
構文
エイリアス: yandexConsistentHash
(後方互換性のために残されています)。
パラメータ
返り値
- UInt16データ型のハッシュ値。
実装の詳細
n <= 32768の場合にのみ効率的です。
例
クエリ:
murmurHash2_32, murmurHash2_64
MurmurHash2ハッシュ値を生成します。
引数
両方の関数は、可変数の入力パラメータを受け取ります。引数はサポートされるデータ型のいずれかであることができます。いくつかのデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算結果が同じになることがあります(異なるサイズの整数、同じデータを持つ命名されたTuple
と非命名のTuple
、同じデータを持つMap
と対応するArray(Tuple(key, value))
型)。
返り値
例
gccMurmurHash
64ビットMurmurHash2ハッシュ値を、gccと同じハッシュシードを使用して計算します。ClangおよびGCCビルド間でポータブルです。
構文
引数
par1, ...
— 任意のサポートされるデータ型の可変数のパラメータ。
返り値
- 計算されたハッシュ値。UInt64。
例
クエリ:
結果:
kafkaMurmurHash
32ビットMurmurHash2ハッシュ値をKafkaと同じハッシュシードを使用して計算し、Default Partitionerと互換性を持たせるために最高ビットを除外します。
構文
引数
par1, ...
— 任意のサポートされるデータ型の可変数のパラメータ。
返り値
- 計算されたハッシュ値。UInt32。
例
クエリ:
結果:
murmurHash3_32, murmurHash3_64
MurmurHash3ハッシュ値を生成します。
引数
両方の関数は、可変数の入力パラメータを受け取ります。引数はサポートされるデータ型のいずれかであることができます。いくつかのデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算結果が同じになることがあります(異なるサイズの整数、同じデータを持つ命名されたTuple
と非命名のTuple
、同じデータを持つMap
と対応するArray(Tuple(key, value))
型)。
返り値
例
murmurHash3_128
128ビットMurmurHash3ハッシュ値を生成します。
構文
引数
返り値
128ビットMurmurHash3
ハッシュ値。FixedString(16)。
例
クエリ:
結果:
xxh3
64ビットxxh3ハッシュ値を生成します。
構文
引数
expr
— 任意のデータ型の式のリスト。
返り値
64ビットxxh3
ハッシュ値。UInt64。
例
クエリ:
結果:
xxHash32, xxHash64
文字列からxxHash
を計算します。32ビットと64ビットの2つのフレーバーがあります。
返り値
- ハッシュ値。UInt32/64。
返り値の型は、xxHash32
の場合はUInt32
、xxHash64
の場合はUInt64
になります。
例
クエリ:
結果:
見よ
ngramSimHash
ASCII文字列をngramsize
シンボルのn-グラムに分割し、n-グラムsimhash
を返します。ケースに敏感です。
bitHammingDistanceを使用して、半複製文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返り値
- ハッシュ値。UInt64。
例
クエリ:
結果:
ngramSimHashCaseInsensitive
ASCII文字列をngramsize
シンボルのn-グラムに分割し、n-グラムsimhash
を返します。ケースに無関係です。
bitHammingDistanceを使用して、半複製文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返り値
- ハッシュ値。UInt64。
例
クエリ:
結果:
ngramSimHashUTF8
UTF-8文字列をngramsize
シンボルのn-グラムに分割し、n-グラムsimhash
を返します。ケースに敏感です。
bitHammingDistanceを使用して、半複製文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返り値
- ハッシュ値。UInt64。
例
クエリ:
結果:
ngramSimHashCaseInsensitiveUTF8
UTF-8文字列をngramsize
シンボルのn-グラムに分割し、n-グラムのsimhash
を返します。大文字と小文字を区別しません。
bitHammingDistanceを使った半重複文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。 UInt64.
例
クエリ:
結果:
wordShingleSimHash
ASCII文字列をshinglesize
単語の部分(シングル)に分割し、単語シングルのsimhash
を返します。大文字と小文字を区別します。
bitHammingDistanceを使った半重複文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。 UInt64.
例
クエリ:
結果:
wordShingleSimHashCaseInsensitive
ASCII文字列をshinglesize
単語の部分(シングル)に分割し、単語シングルのsimhash
を返します。大文字と小文字を区別しません。
bitHammingDistanceを使った半重複文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。 UInt64.
例
クエリ:
結果:
wordShingleSimHashUTF8
UTF-8文字列をshinglesize
単語の部分(シングル)に分割し、単語シングルのsimhash
を返します。大文字と小文字を区別します。
bitHammingDistanceを使った半重複文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。 UInt64.
例
クエリ:
結果:
wordShingleSimHashCaseInsensitiveUTF8
UTF-8文字列をshinglesize
単語の部分(シングル)に分割し、単語シングルのsimhash
を返します。大文字と小文字を区別しません。
bitHammingDistanceを使った半重複文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。 UInt64.
例
クエリ:
結果:
wyHash64
64ビットのwyHash64ハッシュ値を生成します。
構文
引数
string
— 文字列。 String.
返される値
- ハッシュ値。 UInt64.
例
クエリ:
結果:
ngramMinHash
ASCII文字列をngramsize
シンボルのn-グラムに分割し、各n-グラムのハッシュ値を計算します。hashnum
最小ハッシュを使用して最小ハッシュを計算し、hashnum
最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュのタプルを返します。大文字と小文字を区別します。
tupleHammingDistanceを使った半重複文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが2つの文字列で同じ場合、それらの文字列は同じであると考えます。
構文
引数
string
— 文字列。 String.ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。 UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。 UInt8.
返される値
例
クエリ:
結果:
ngramMinHashCaseInsensitive
ASCII文字列をngramsize
シンボルのn-グラムに分割し、各n-グラムのハッシュ値を計算します。hashnum
最小ハッシュを使用して最小ハッシュを計算し、hashnum
最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュのタプルを返します。大文字と小文字を区別しません。
tupleHammingDistanceを使った半重複文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが2つの文字列で同じ場合、それらの文字列は同じであると考えます。
構文
引数
string
— 文字列。 String.ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
ngramMinHashUTF8
UTF-8文字列をngramsize
シンボルのn-グラムに分割し、各n-グラムのハッシュ値を計算します。hashnum
最小ハッシュを使用して最小ハッシュを計算し、hashnum
最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュのタプルを返します。大文字と小文字を区別します。
tupleHammingDistanceを使った半重複文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが2つの文字列で同じ場合、それらの文字列は同じであると考えます。
構文
引数
string
— 文字列。 String.ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
ngramMinHashCaseInsensitiveUTF8
UTF-8文字列をngramsize
シンボルのn-グラムに分割し、各n-グラムのハッシュ値を計算します。hashnum
最小ハッシュを使用して最小ハッシュを計算し、hashnum
最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュのタプルを返します。大文字と小文字を区別しません。
tupleHammingDistanceを使った半重複文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが2つの文字列で同じ場合、それらの文字列は同じであると考えます。
構文
引数
string
— 文字列。 String.ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
ngramMinHashArg
ASCII文字列をngramsize
シンボルのn-グラムに分割し、同じ入力でngramMinHash関数で計算された最小および最大ハッシュ付きのn-グラムを返します。大文字と小文字を区別します。
構文
引数
string
— 文字列。 String.ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
ngramMinHashArgCaseInsensitive
ASCII文字列をngramsize
シンボルのn-グラムに分割し、同じ入力でngramMinHashCaseInsensitive関数で計算された最小および最大ハッシュ付きのn-グラムを返します。大文字と小文字を区別しません。
構文
引数
string
— 文字列。 String.ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
ngramMinHashArgUTF8
UTF-8文字列をngramsize
シンボルのn-グラムに分割し、同じ入力でngramMinHashUTF8関数で計算された最小および最大ハッシュ付きのn-グラムを返します。大文字と小文字を区別します。
構文
引数
string
— 文字列。 String.ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
ngramMinHashArgCaseInsensitiveUTF8
UTF-8文字列をngramsize
シンボルのn-グラムに分割し、同じ入力でngramMinHashCaseInsensitiveUTF8関数で計算された最小および最大ハッシュ付きのn-グラムを返します。大文字と小文字を区別しません。
構文
引数
string
— 文字列。 String.ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
wordShingleMinHash
ASCII文字列を単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。hashnum
最小ハッシュを使用して最小ハッシュを計算し、hashnum
最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュのタプルを返します。大文字と小文字を区別します。
tupleHammingDistanceを使った半重複文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが2つの文字列で同じ場合、それらの文字列は同じであると考えます。
構文
引数
string
— 文字列。 String.shinglesize
— 単語シングルのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
wordShingleMinHashCaseInsensitive
ASCII文字列を単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。hashnum
最小ハッシュを使用して最小ハッシュを計算し、hashnum
最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュのタプルを返します。大文字と小文字を区別しません。
tupleHammingDistanceを使った半重複文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが2つの文字列で同じ場合、それらの文字列は同じであると考えます。
構文
引数
string
— 文字列。 String.shinglesize
— 単語シングルのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
wordShingleMinHashUTF8
UTF-8文字列を単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。hashnum
最小ハッシュを使用して最小ハッシュを計算し、hashnum
最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュのタプルを返します。大文字と小文字を区別します。
tupleHammingDistanceを使った半重複文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが2つの文字列で同じ場合、それらの文字列は同じであると考えます。
構文
引数
string
— 文字列。 String.shinglesize
— 単語シングルのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
wordShingleMinHashCaseInsensitiveUTF8
UTF-8文字列を単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。hashnum
最小ハッシュを使用して最小ハッシュを計算し、hashnum
最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュのタプルを返します。大文字と小文字を区別しません。
tupleHammingDistanceを使った半重複文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが2つの文字列で同じ場合、それらの文字列は同じであると考えます。
構文
引数
string
— 文字列。 String.shinglesize
— 単語シングルのサイズ。オプション。可能な値:1
から25
の任意の数。デフォルト値:3
。UInt8.hashnum
— 結果を計算するために使用される最小ハッシュと最大ハッシュの数。オプション。可能な値:1
から25
の任意の数。デフォルト値:6
。UInt8.
返される値
例
クエリ:
結果:
wordShingleMinHashArgCaseInsensitiveUTF8
UTF-8文字列をshinglesize
単語ごとの部分(シングル)に分割し、同じ入力のwordShingleMinHashCaseInsensitiveUTF8関数で計算された最小および最大の単語ハッシュを持つシングルを返します。大文字と小文字は区別されません。
構文
引数
string
— 文字列。 String。shinglesize
— 単語シングルのサイズ。省略可能。可能な値:1
から25
の任意の数。デフォルト値:3
。 UInt8。hashnum
— 結果を計算するために使用される最小および最大ハッシュの数。省略可能。可能な値:1
から25
の任意の数。デフォルト値:6
。 UInt8。
返される値
例
クエリ:
結果:
sqidEncode
数値をYoutbeのようなID文字列としてエンコードします。
出力アルファベットはabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
です。
この関数をハッシュ化に使用しないでください - 生成されたIDは元の数値にデコードできます。
構文
エイリアス: sqid
引数
- UInt8、UInt16、UInt32またはUInt64の数値の可変数。
返される値
sqidのString。
例
sqidDecode
Sqidを元の数値にデコードします。 入力文字列が有効なsqidでない場合、空の配列を返します。
構文
引数
- sqid - String
返される値
数値に変換されたsqid Array(UInt64)。
例