メインコンテンツまでスキップ
メインコンテンツまでスキップ

ハッシュ関数

ハッシュ関数は要素の決定論的な擬似ランダムシャッフルに使用できます。

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倍の速度で動作します。

この関数は、すべての入力パラメータを文字列として解釈し、それぞれのためにハッシュ値を計算します。次に、次のアルゴリズムでハッシュを組み合わせます:

  1. 最初と2番目のハッシュ値を連結して配列にし、それをハッシュ化します。
  2. 以前に計算されたハッシュ値と3番目の入力パラメータのハッシュを、同様の方法でハッシュ化します。
  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が安定で移植性のある値には推奨されます。

これらの関数はそれぞれ、すべての利用可能なメソッドからFingerprint64Hash64メソッドを使用しています。

引数

この関数は、任意の数の入力パラメータを受け取ります。引数はサポートされているデータ型のいずれかであることができます。一部のデータ型では、引数の型が異なっていても、同じ値に対してハッシュ関数の計算値が同じになることがあります(サイズが異なる整数、同じデータを持つ名前付きおよび名前なしの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(後方互換性のために残されました)。

パラメータ

  • 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

64ビットのMurmurHash2ハッシュ値を、gccと同じハッシュシードを使用して計算します。ClangとGCCビルド間で移植可能です。

構文

引数

返される値

  • 計算されたハッシュ値。UInt64

クエリ:

結果:

kafkaMurmurHash

32ビットのMurmurHash2ハッシュ値を計算します。Kafkaと同じハッシュシードを使用します。そして、最高ビットを無視して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ビットの2種類を提案します。

返される値

注記

戻り値の型は、xxHash32UInt32xxHash64UInt64になります。

クエリ:

結果:

参考

ngramSimHash

ASCII文字列をngramsize記号のn-gramsに分割し、n-gram simhashを返します。大文字と小文字を区別します。

bitHammingDistanceでの半重複文字列の検出に使用できます。計算された2つの文字列のsimhashesのハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。

構文

引数

  • string — 文字列。String
  • ngramsize — n-gramのサイズ。オプション。値は1から25の任意の数。デフォルト値は3。UInt8

返される値

クエリ:

結果:

ngramSimHashCaseInsensitive

ASCII文字列をngramsize記号のn-gramsに分割し、n-gram simhashを返します。大文字と小文字を区別しません。

bitHammingDistanceでの半重複文字列の検出に使用できます。計算された2つの文字列のsimhashesのハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。

構文

引数

  • string — 文字列。String
  • ngramsize — n-gramのサイズ。オプション。値は1から25の任意の数。デフォルト値は3。UInt8

返される値

クエリ:

結果:

ngramSimHashUTF8

UTF-8文字列をngramsize記号のn-gramsに分割し、n-gram simhashを返します。大文字と小文字を区別します。

bitHammingDistanceでの半重複文字列の検出に使用できます。計算された2つの文字列のsimhashesのハミング距離が小さいほど、これらの文字列が同じである可能性が高くなります。

構文

引数

  • string — 文字列。String
  • ngramsize — n-gramのサイズ。オプション。値は1から25の任意の数。デフォルト値は3。UInt8

返される値

クエリ:

結果:

ngramSimHashCaseInsensitiveUTF8

UTF-8 文字列を ngramsize シンボルの n-グラムに分割し、n-グラムの simhash を返します。大文字と小文字を区別しません。

bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashesHamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。

構文

引数

  • string — 文字列。String
  • ngramsize — n-グラムのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8

返される値

クエリ:

結果:

wordShingleSimHash

ASCII 文字列を shinglesize 単語の部分(シングル)に分割し、単語シングルの simhash を返します。大文字と小文字を区別します。

bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashesHamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。

構文

引数

  • string — 文字列。String
  • shinglesize — 単語シングルのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8

返される値

クエリ:

結果:

wordShingleSimHashCaseInsensitive

ASCII 文字列を shinglesize 単語の部分(シングル)に分割し、単語シングルの simhash を返します。大文字と小文字を区別しません。

bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashesHamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。

構文

引数

  • string — 文字列。String
  • shinglesize — 単語シングルのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8

返される値

クエリ:

結果:

wordShingleSimHashUTF8

UTF-8 文字列を shinglesize 単語の部分(シングル)に分割し、単語シングルの simhash を返します。大文字と小文字を区別します。

bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashesHamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。

構文

引数

  • string — 文字列。String
  • shinglesize — 単語シングルのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8

返される値

クエリ:

結果:

wordShingleSimHashCaseInsensitiveUTF8

UTF-8 文字列を shinglesize 単語の部分(シングル)に分割し、単語シングルの simhash を返します。大文字と小文字を区別しません。

bitHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列の計算された simhashesHamming Distance が小さいほど、これらの文字列は同じである可能性が高くなります。

構文

引数

  • string — 文字列。String
  • shinglesize — 単語シングルのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8

返される値

クエリ:

結果:

wyHash64

64 ビットの wyHash64 ハッシュ値を生成します。

構文

引数

  • string — 文字列。String

返される値

クエリ:

結果:

ngramMinHash

ASCII 文字列を ngramsize シンボルの n-グラムに分割し、各 n-グラムのハッシュ値を計算します。最小ハッシュを計算するために hashnum 最小ハッシュを使用し、最大ハッシュを計算するために hashnum 最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別します。

tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。

構文

引数

  • string — 文字列。String
  • ngramsize — n-グラムのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

  • 2つのハッシュを含むタプル — 最小と最大。Tuple(UInt64, UInt64)。

クエリ:

結果:

ngramMinHashCaseInsensitive

ASCII 文字列を ngramsize シンボルの n-グラムに分割し、各 n-グラムのハッシュ値を計算します。最小ハッシュを計算するために hashnum 最小ハッシュを使用し、最大ハッシュを計算するために hashnum 最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別しません。

tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。

構文

引数

  • string — 文字列。String
  • ngramsize — n-グラムのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

  • 2つのハッシュを含むタプル — 最小と最大。Tuple(UInt64, UInt64)。

クエリ:

結果:

ngramMinHashUTF8

UTF-8 文字列を n-グラムの ngramsize シンボルに分割し、各 n-グラムのハッシュ値を計算します。最小ハッシュを計算するために hashnum 最小ハッシュを使用し、最大ハッシュを計算するために hashnum 最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別します。

tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。

構文

引数

  • string — 文字列。String
  • ngramsize — n-グラムのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

  • 2つのハッシュを含むタプル — 最小と最大。Tuple(UInt64, UInt64)。

クエリ:

結果:

ngramMinHashCaseInsensitiveUTF8

UTF-8 文字列を ngramsize シンボルの n-グラムに分割し、各 n-グラムのハッシュ値を計算します。最小ハッシュを計算するために hashnum 最小ハッシュを使用し、最大ハッシュを計算するために hashnum 最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別しません。

tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。

構文

引数

  • string — 文字列。String
  • ngramsize — n-グラムのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

  • 2つのハッシュを含むタプル — 最小と最大。Tuple(UInt64, UInt64)。

クエリ:

結果:

ngramMinHashArg

ASCII 文字列を ngramsize シンボルの n-グラムに分割し、同じ入力で ngramMinHash 関数によって計算された最小ハッシュおよび最大ハッシュの n-グラムを返します。大文字と小文字を区別します。

構文

引数

  • string — 文字列。String
  • ngramsize — n-グラムのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

クエリ:

結果:

ngramMinHashArgCaseInsensitive

ASCII 文字列を ngramsize シンボルの n-グラムに分割し、同じ入力で ngramMinHashCaseInsensitive 関数によって計算された最小ハッシュおよび最大ハッシュの n-グラムを返します。大文字と小文字を区別しません。

構文

引数

  • string — 文字列。String
  • ngramsize — n-グラムのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

クエリ:

結果:

ngramMinHashArgUTF8

UTF-8 文字列を ngramsize シンボルの n-グラムに分割し、同じ入力で ngramMinHashUTF8 関数によって計算された最小ハッシュおよび最大ハッシュの n-グラムを返します。大文字と小文字を区別します。

構文

引数

  • string — 文字列。String
  • ngramsize — n-グラムのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

クエリ:

結果:

ngramMinHashArgCaseInsensitiveUTF8

UTF-8 文字列を ngramsize シンボルの n-グラムに分割し、同じ入力で ngramMinHashCaseInsensitiveUTF8 関数によって計算された最小ハッシュおよび最大ハッシュの n-グラムを返します。大文字と小文字を区別しません。

構文

引数

  • string — 文字列。String
  • ngramsize — n-グラムのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

クエリ:

結果:

wordShingleMinHash

ASCII 文字列を shinglesize 単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。最小ハッシュを計算するために hashnum 最小ハッシュを使用し、最大ハッシュを計算するために hashnum 最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別します。

tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。

構文

引数

  • string — 文字列。String
  • shinglesize — 単語シングルのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

  • 2つのハッシュを含むタプル — 最小と最大。Tuple(UInt64, UInt64)。

クエリ:

結果:

wordShingleMinHashCaseInsensitive

ASCII 文字列を shinglesize 単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。最小ハッシュを計算するために hashnum 最小ハッシュを使用し、最大ハッシュを計算するために hashnum 最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別しません。

tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。

構文

引数

  • string — 文字列。String
  • shinglesize — 単語シングルのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

  • 2つのハッシュを含むタプル — 最小と最大。Tuple(UInt64, UInt64)。

クエリ:

結果:

wordShingleMinHashUTF8

UTF-8 文字列を shinglesize 単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。最小ハッシュを計算するために hashnum 最小ハッシュを使用し、最大ハッシュを計算するために hashnum 最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別します。

tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。

構文

引数

  • string — 文字列。String
  • shinglesize — 単語シングルのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

  • 2つのハッシュを含むタプル — 最小と最大。Tuple(UInt64, UInt64)。

クエリ:

結果:

wordShingleMinHashCaseInsensitiveUTF8

UTF-8 文字列を shinglesize 単語の部分(シングル)に分割し、各単語シングルのハッシュ値を計算します。最小ハッシュを計算するために hashnum 最小ハッシュを使用し、最大ハッシュを計算するために hashnum 最大ハッシュを使用します。これらのハッシュを含むタプルを返します。大文字と小文字を区別しません。

tupleHammingDistance を使用した半複製文字列の検出に使用できます。2つの文字列に対して:返されたハッシュの1つが両方の文字列で同じであれば、これらの文字列は同じであると考えます。

構文

引数

  • string — 文字列。String
  • shinglesize — 単語シングルのサイズ。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1 から 25 までの任意の数。デフォルト値:6UInt8

返される値

  • 2つのハッシュを含むタプル — 最小と最大。Tuple(UInt64, UInt64)。

クエリ:

結果:

wordShingleMinHashArgCaseInsensitiveUTF8

UTF-8文字列をshinglesizeの単語の部分(シングル)に分割し、同じ入力でwordShingleMinHashCaseInsensitiveUTF8関数によって計算された最小および最大の単語ハッシュを返します。大文字と小文字を区別しません。

構文

引数

  • string — 文字列。String
  • shinglesize — 単語シングルのサイズ。オプション。可能な値:1から25までの任意の数。デフォルト値:3UInt8
  • hashnum — 結果を計算するために使用される最小および最大ハッシュの数。オプション。可能な値:1から25までの任意の数。デフォルト値:6UInt8

返される値

クエリ:

結果:

sqidEncode

数値をSqidとしてエンコードします。これはYouTubeのようなID文字列です。 出力のアルファベットはabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789です。 この関数はハッシュ作成には使用しないでください。生成されたIDは元の数値にデコード可能です。

構文

エイリアス: sqid

引数

  • UInt8、UInt16、UInt32、またはUInt64の数の可変数。

返される値

sqidのString

sqidDecode

Sqidを元の数値にデコードします。 入力文字列が有効なsqidでない場合、空の配列を返します。

構文

引数

返される値

数値に変換されたsqid Array(UInt64)

keccak256

Keccak-256ハッシュ文字列を計算し、結果のバイトセットをFixedStringとして返します。

構文

この暗号化ハッシュ関数はEVMベースのブロックチェーンで多く使用されます。

引数

  • s - Keccak-256ハッシュ計算のための入力文字列。String

返される値

  • 固定長32バイトの配列としてのKeccak-256ハッシュ。FixedString

hex関数を使用して結果を16進数エンコードされた文字列としてフォーマットします。

クエリ:

結果: