ハッシュ関数
ハッシュ関数は要素の決定論的な擬似ランダムシャッフルに使用できます。
Simhashはハッシュ関数であり、近い(類似の)引数に対して近接したハッシュ値を返します。
ほとんどのハッシュ関数は、任意の数の引数を任意の型で受け入れます。
NULLのハッシュはNULLです。Nullableカラムの非NULLのハッシュを取得するには、タプルでラップします:
テーブルの全ての内容のハッシュを計算するには、sum(cityHash64(tuple(*)))
(または他のハッシュ関数)を使用します。tuple
はNULL値を持つ行がスキップされないことを保証します。sum
は行の順序が重要でないことを保証します。
halfMD5
すべての入力パラメータを文字列として解釈し、それぞれのためにMD5ハッシュ値を計算します。次にハッシュを組み合わせ、結果の文字列の最初の8バイトを取得し、それらをビッグエンディアンバイトオーダーのUInt64
として解釈します。
この関数は比較的遅く(1秒あたりプロセッサコアごとに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
返される値
- 160ビットの
RIPEMD-160
ハッシュ値で、FixedString(20)型です。
例
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と同じです。
返される値
128ビットのSipHash
ハッシュ値で、FixedString(16)型です。
例
クエリ:
結果:
sipHash128Keyed
sipHash128と同じですが、固定キーを使用せずに明示的なキー引数も取ります。
この128ビットのバリアントは、参照実装とは異なり、より弱いです。 このバージョンは、作成時にSipHashの公式な128ビット拡張が存在しなかったため存在します。 新しいプロジェクトは、おそらくsipHash128ReferenceKeyedを使用すべきです。
構文
引数
sipHash128と同じですが、最初の引数はキーを表す2つのUInt64値のタプルです。
返される値
128ビットのSipHash
ハッシュ値で、FixedString(16)型です。
例
クエリ:
結果:
sipHash128Reference
sipHash128と同じですが、SipHash初版の作者からの128ビットアルゴリズムを実装します。
構文
引数
sipHash128と同じです。
返される値
128ビットのSipHash
ハッシュ値で、FixedString(16)型です。
例
クエリ:
結果:
sipHash128ReferenceKeyed
sipHash128Referenceと同じですが、固定キーを使用せずに明示的なキー引数も取ります。
構文
引数
sipHash128Referenceと同じですが、最初の引数はキーを表す2つのUInt64値のタプルです。
返される値
128ビットのSipHash
ハッシュ値で、FixedString(16)型です。
例
クエリ:
結果:
cityHash64
64ビットのCityHashハッシュ値を生成します。
これは、高速な非暗号的ハッシュ関数です。文字列パラメータに対してはCityHashアルゴリズムを使用し、他のデータ型のパラメータに対しては実装特有の高速な非暗号的ハッシュ関数を使用します。この関数は、CityHashコンビネーターを使用して最終結果を取得します。
Googleは、CityHashがClickHouseに追加された後にアルゴリズムを変更しました。言い換えれば、ClickHouseのcityHash64とGoogleのアップストリームのCityHashは、現在異なる結果を生み出します。ClickHouseのcityHash64は、CityHash v1.0.2に相当します。
引数
この関数は、任意の数の入力パラメータを受け取ります。引数はサポートされているデータ型のいずれかであることができます。一部のデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算値が同じになることがあります(サイズが異なる整数、同じデータを持つ名前付きおよび名前なしの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と比較して約2倍のパフォーマンスを示しますが、SHA-256と同じ長さのハッシュを生成します。
引数
- s - BLAKE3ハッシュ計算のための入力文字列。String。
返される値
- BLAKE3ハッシュは、FixedString(32)型のバイト配列として返されます。FixedString。
例
hex関数を使用して、結果を16進エンコードされた文字列として表現します。
クエリ:
結果:
URLHash(url[, N])
URLから取得した文字列のための、高速で適度な品質の非暗号的ハッシュ関数です。Normalizationの種類を用いています。
URLHash(s)
– 末尾に1つのトレーリングシンボル/
,?
または#
がある場合、それを除去した文字列からハッシュを計算します。
URLHash(s, N)
– URL階層内のNレベルまでの文字列からハッシュを計算し、末尾に1つのトレーリングシンボル/
,?
または#
がある場合、それを除去します。
レベルはURLHierarchyと同じです。
farmFingerprint64
farmHash64
64ビットのFarmHashまたはFingerprint値を生成します。farmFingerprint64
が安定で移植性のある値には推奨されます。
これらの関数はそれぞれ、すべての利用可能なメソッドからFingerprint64
とHash64
メソッドを使用しています。
引数
この関数は、任意の数の入力パラメータを受け取ります。引数はサポートされているデータ型のいずれかであることができます。一部のデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算値が同じになることがあります(サイズが異なる整数、同じデータを持つ名前付きおよび名前なしのTuple
、同じデータを持つMap
および対応するArray(Tuple(key, value))
型)。
返される値
UInt64データ型のハッシュ値。
例
javaHash
文字列, Byte, Short, Integer, LongからJavaHashを計算します。 このハッシュ関数は、速くもなく、品質も良くありません。このアルゴリズムが他のシステムですでに使用されている場合、まったく同じ結果を計算するためだけに使用される理由があります。
Javaは符号付き整数のハッシュ計算のみをサポートしているため、符号なしの整数のハッシュを計算する場合は、適切な符号付きClickHouse型にキャストする必要があります。
構文
返される値
Int32
データ型のハッシュ値。
例
クエリ:
結果:
クエリ:
結果:
javaHashUTF16LE
文字列からJavaHashを計算し、UTF-16LEエンコーディングのバイトを表していると仮定します。
構文
引数
stringUtf16le
— UTF-16LEエンコーディングの文字列。
返される値
Int32
データ型のハッシュ値。
例
UTF-16LEエンコーディングされた文字列を使用した正しいクエリ。
クエリ:
結果:
hiveHash
文字列からHiveHash
を計算します。
これは単にJavaHashで符号ビットがゼロ化されたものです。この関数は、バージョン3.0より前のApache Hiveで使用されます。このハッシュ関数は速くもなく、品質が良くもありません。このアルゴリズムが他のシステムですでに使用されている場合、まったく同じ結果を計算するためだけに使用される理由があります。
返される値
hiveHash
ハッシュ値。Int32。
例
クエリ:
結果:
metroHash64
64ビットのMetroHashハッシュ値を生成します。
引数
この関数は、任意の数の入力パラメータを受け取ります。引数はサポートされているデータ型のいずれかであることができます。一部のデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算値が同じになることがあります(サイズが異なる整数、同じデータを持つ名前付きおよび名前なしの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
、同じデータを持つ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
、同じデータを持つ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-gramsに分割し、n-gram simhash
を返します。大文字と小文字を区別します。
bitHammingDistanceでの半重複文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。UInt64。
例
クエリ:
結果:
ngramSimHashCaseInsensitive
ASCII文字列をngramsize
記号のn-gramsに分割し、n-gram simhash
を返します。大文字と小文字を区別しません。
bitHammingDistanceでの半重複文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。UInt64。
例
クエリ:
結果:
ngramSimHashUTF8
UTF-8文字列をngramsize
記号のn-gramsに分割し、n-gram simhash
を返します。大文字と小文字を区別します。
bitHammingDistanceでの半重複文字列の検出に使用できます。計算された2つの文字列のsimhashes
のハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。UInt64。
例
クエリ:
結果:
ngramSimHashCaseInsensitiveUTF8
UTF-8 文字列を ngramsize
シンボルの n-グラムに分割し、n-グラムの simhash
を返します。大文字と小文字を区別しません。
bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashes
の Hamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。UInt64。
例
クエリ:
結果:
wordShingleSimHash
ASCII 文字列を shinglesize
単語の部分(シングル)に分割し、単語シングルの simhash
を返します。大文字と小文字を区別します。
bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashes
の Hamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。UInt64。
例
クエリ:
結果:
wordShingleSimHashCaseInsensitive
ASCII 文字列を shinglesize
単語の部分(シングル)に分割し、単語シングルの simhash
を返します。大文字と小文字を区別しません。
bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashes
の Hamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。UInt64。
例
クエリ:
結果:
wordShingleSimHashUTF8
UTF-8 文字列を shinglesize
単語の部分(シングル)に分割し、単語シングルの simhash
を返します。大文字と小文字を区別します。
bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashes
の Hamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。UInt64。
例
クエリ:
結果:
wordShingleSimHashCaseInsensitiveUTF8
UTF-8 文字列を shinglesize
単語の部分(シングル)に分割し、単語シングルの simhash
を返します。大文字と小文字を区別しません。
bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashes
の Hamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。
構文
引数
返される値
- ハッシュ値。UInt64。
例
クエリ:
結果:
wyHash64
64 ビットの wyHash64 ハッシュ値を生成します。
構文
引数
string
— 文字列。String。
返される値
- ハッシュ値。UInt64。
例
クエリ:
結果:
ngramMinHash
ASCII 文字列を ngramsize
シンボルの n-グラムに分割し、各 n-グラムのハッシュ値を計算します。最小ハッシュを計算するために hashnum
最小ハッシュを使用し、最大ハッシュを計算するために hashnum
最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別します。
tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。
構文
引数
string
— 文字列。String。ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
までの任意の数。デフォルト値:3
。UInt8。hashnum
— 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1
から25
までの任意の数。デフォルト値:6
。UInt8。
返される値
例
クエリ:
結果:
ngramMinHashCaseInsensitive
ASCII 文字列を ngramsize
シンボルの n-グラムに分割し、各 n-グラムのハッシュ値を計算します。最小ハッシュを計算するために hashnum
最小ハッシュを使用し、最大ハッシュを計算するために hashnum
最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別しません。
tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。
構文
引数
string
— 文字列。String。ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
までの任意の数。デフォルト値:3
。UInt8。hashnum
— 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1
から25
までの任意の数。デフォルト値:6
。UInt8。
返される値
例
クエリ:
結果:
ngramMinHashUTF8
UTF-8 文字列を n-グラムの ngramsize
シンボルに分割し、各 n-グラムのハッシュ値を計算します。最小ハッシュを計算するために hashnum
最小ハッシュを使用し、最大ハッシュを計算するために hashnum
最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別します。
tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。
構文
引数
string
— 文字列。String。ngramsize
— n-グラムのサイズ。オプション。可能な値:1
から25
までの任意の数。デフォルト値:3
。UInt8。hashnum
— 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1
から25
までの任意の数。デフォルト値:6
。UInt8。
返される値
例
クエリ:
結果:
ngramMinHashCaseInsensitiveUTF8
UTF-8 文字列を ngramsize
シンボルの n-グラムに分割し、各 n-グラムのハッシュ値を計算します。最小ハッシュを計算するために hashnum
最小ハッシュを使用し、最大ハッシュを計算するために hashnum
最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別しません。
tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。
構文
引数
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 文字列を shinglesize
単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。最小ハッシュを計算するために hashnum
最小ハッシュを使用し、最大ハッシュを計算するために hashnum
最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別します。
tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。
構文
引数
string
— 文字列。String。shinglesize
— 単語シングルのサイズ。オプション。可能な値:1
から25
までの任意の数。デフォルト値:3
。UInt8。hashnum
— 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1
から25
までの任意の数。デフォルト値:6
。UInt8。
返される値
例
クエリ:
結果:
wordShingleMinHashCaseInsensitive
ASCII 文字列を shinglesize
単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。最小ハッシュを計算するために hashnum
最小ハッシュを使用し、最大ハッシュを計算するために hashnum
最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別しません。
tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。
構文
引数
string
— 文字列。String。shinglesize
— 単語シングルのサイズ。オプション。可能な値:1
から25
までの任意の数。デフォルト値:3
。UInt8。hashnum
— 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1
から25
までの任意の数。デフォルト値:6
。UInt8。
返される値
例
クエリ:
結果:
wordShingleMinHashUTF8
UTF-8 文字列を shinglesize
単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。最小ハッシュを計算するために hashnum
最小ハッシュを使用し、最大ハッシュを計算するために hashnum
最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別します。
tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。
構文
引数
string
— 文字列。String。shinglesize
— 単語シングルのサイズ。オプション。可能な値:1
から25
までの任意の数。デフォルト値:3
。UInt8。hashnum
— 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1
から25
までの任意の数。デフォルト値:6
。UInt8。
返される値
例
クエリ:
結果:
wordShingleMinHashCaseInsensitiveUTF8
UTF-8 文字列を shinglesize
単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。最小ハッシュを計算するために hashnum
最小ハッシュを使用し、最大ハッシュを計算するために hashnum
最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別しません。
tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。
構文
引数
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
数値をSqidとしてエンコードします。これはYouTubeのようなID文字列です。
出力のアルファベットはabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
です。
この関数はハッシュ作成には使用しないでください。生成されたIDは元の数値にデコード可能です。
構文
エイリアス: sqid
引数
- UInt8、UInt16、UInt32、またはUInt64の数の可変数。
返される値
sqidのString。
例
sqidDecode
Sqidを元の数値にデコードします。 入力文字列が有効なsqidでない場合、空の配列を返します。
構文
引数
- sqid - String
返される値
数値に変換されたsqid Array(UInt64)。
例
keccak256
Keccak-256ハッシュ文字列を計算し、結果のバイトセットをFixedStringとして返します。
構文
この暗号化ハッシュ関数はEVMベースのブロックチェーンで多く使用されます。
引数
- s - Keccak-256ハッシュ計算のための入力文字列。String。
返される値
- 固定長32バイトの配列としてのKeccak-256ハッシュ。FixedString。
例
hex関数を使用して結果を16進数エンコードされた文字列としてフォーマットします。
クエリ:
結果: