mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 10:52:30 +00:00
1949 lines
73 KiB
Markdown
1949 lines
73 KiB
Markdown
---
|
||
slug: /ja/sql-reference/functions/hash-functions
|
||
sidebar_position: 85
|
||
sidebar_label: Hash
|
||
---
|
||
|
||
# ハッシュ関数
|
||
|
||
ハッシュ関数は、要素の決定的な擬似ランダムシャッフルに使用できます。
|
||
|
||
Simhashは、類似した引数に対して近いハッシュ値を返すハッシュ関数です。
|
||
|
||
## halfMD5
|
||
|
||
すべての入力パラメータを文字列として[解釈](../functions/type-conversion-functions.md/#type_conversion_functions-reinterpretAsString)し、それぞれに対して[MD5](https://en.wikipedia.org/wiki/MD5)ハッシュ値を計算します。その後、ハッシュを結合し、結果の文字列のハッシュの最初の8バイトを取り出して、ビッグエンディアンバイトオーダーで`UInt64`として解釈します。
|
||
|
||
```sql
|
||
halfMD5(par1, ...)
|
||
```
|
||
|
||
この関数は比較的遅いです(1秒あたり500万の短い文字列をプロセッサコアごとに処理します)。
|
||
代わりに[sipHash64](#siphash64)関数の使用を検討してください。
|
||
|
||
**引数**
|
||
|
||
この関数は可変数の入力パラメータを取ります。引数は[サポートされているデータ型](../data-types/index.md)のいずれかであり得ます。異なる型の引数でも、同じ値に対して計算されるハッシュ関数の値が同じになる場合があります(異なるサイズの整数、同じデータを持つ名前付きおよび名前なしの`Tuple`、対応するデータを持つ`Map`および`Array(Tuple(key, value))`型など)。
|
||
|
||
**返される値**
|
||
|
||
[UInt64](../data-types/int-uint.md)データ型のハッシュ値。
|
||
|
||
**例**
|
||
|
||
```sql
|
||
SELECT halfMD5(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS halfMD5hash, toTypeName(halfMD5hash) AS type;
|
||
```
|
||
|
||
```response
|
||
┌────────halfMD5hash─┬─type───┐
|
||
│ 186182704141653334 │ UInt64 │
|
||
└────────────────────┴────────┘
|
||
```
|
||
|
||
## MD4
|
||
|
||
文字列からMD4を計算し、結果のバイトセットをFixedString(16)として返します。
|
||
|
||
## MD5
|
||
|
||
文字列からMD5を計算し、結果のバイトセットをFixedString(16)として返します。
|
||
特定のMD5が必要でない場合、暗号化的に確かな128ビットハッシュが必要な場合には、代わりに‘sipHash128’関数を使用してください。
|
||
md5sumユーティリティと同じ結果を得たい場合は、lower(hex(MD5(s)))を使用してください。
|
||
|
||
## RIPEMD160
|
||
|
||
[RIPEMD-160](https://en.wikipedia.org/wiki/RIPEMD)ハッシュ値を生成します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
RIPEMD160(input)
|
||
```
|
||
|
||
**パラメータ**
|
||
|
||
- `input`: 入力文字列。[String](../data-types/string.md)
|
||
|
||
**返される値**
|
||
|
||
- 160ビットの`RIPEMD-160` ハッシュ値、[FixedString(20)](../data-types/fixedstring.md)型。
|
||
|
||
**例**
|
||
|
||
結果を16進エンコードされた文字列として表すには、[hex](../functions/encoding-functions.md/#hex)関数を使用します。
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'));
|
||
```
|
||
|
||
```response
|
||
┌─HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))─┐
|
||
│ 37F332F68DB77BD9D7EDD4969571AD671CF9DD3B │
|
||
└───────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## sipHash64
|
||
|
||
64ビットの[SipHash](https://en.wikipedia.org/wiki/SipHash)ハッシュ値を生成します。
|
||
|
||
```sql
|
||
sipHash64(par1,...)
|
||
```
|
||
|
||
これは暗号化ハッシュ関数です。少なくとも[MD5](#md5)ハッシュ関数の3倍の速さで動作します。
|
||
|
||
この関数はすべての入力パラメータを文字列として[解釈](../functions/type-conversion-functions.md/#type_conversion_functions-reinterpretAsString)し、各パラメータごとにハッシュ値を計算します。次に、以下のアルゴリズムでハッシュを結合します。
|
||
|
||
1. 最初と二番目のハッシュ値を連結し、結果をハッシュします。
|
||
2. 前回計算されたハッシュ値と第三の入力パラメータのハッシュを同様にハッシュします。
|
||
3. この計算を元の入力の残りのすべてのハッシュ値に対して繰り返します。
|
||
|
||
**引数**
|
||
|
||
この関数は任意の[サポートされているデータ型](../data-types/index.md)の可変数の入力パラメータを取ります。
|
||
|
||
**返される値**
|
||
|
||
[UInt64](../data-types/int-uint.md)データ型のハッシュ値。
|
||
|
||
同じ入力値でも異なる引数型の場合、計算されるハッシュ値が等しい場合があることに注意してください。例えば、異なるサイズの整数、同じデータを持つ名前あり・なしの`Tuple`、同じデータを持つ`Map`と対応する`Array(Tuple(key, value))`型です。
|
||
|
||
**例**
|
||
|
||
```sql
|
||
SELECT sipHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;
|
||
```
|
||
|
||
```response
|
||
┌──────────────SipHash─┬─type───┐
|
||
│ 11400366955626497465 │ UInt64 │
|
||
└──────────────────────┴────────┘
|
||
```
|
||
|
||
## sipHash64Keyed
|
||
|
||
[sipHash64](#siphash64)と同様ですが、固定キーを使う代わりに明示的なキー引数を追加で取ります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
sipHash64Keyed((k0, k1), par1,...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
[sipHash64](#siphash64)と同様ですが、最初の引数はキーを表す二つの`UInt64`値のタプルです。
|
||
|
||
**返される値**
|
||
|
||
[UInt64](../data-types/int-uint.md)データ型のハッシュ値。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT sipHash64Keyed((506097522914230528, 1084818905618843912), array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;
|
||
```
|
||
|
||
```response
|
||
┌─────────────SipHash─┬─type───┐
|
||
│ 8017656310194184311 │ UInt64 │
|
||
└─────────────────────┴────────┘
|
||
```
|
||
|
||
## sipHash128
|
||
|
||
[sipHash64](#siphash64)と同様ですが、128ビットのハッシュ値を生成します。最終的なxor折りたたみ状態は128ビットまで実行されます。
|
||
|
||
:::note
|
||
この128ビットのバリアントはリファレンス実装とは異なり、弱いです。
|
||
これは、書かれた当時、SipHashの公式な128ビット拡張が存在しなかったためです。
|
||
新しいプロジェクトではおそらく[sipHash128Reference](#siphash128reference)を使用すべきです。
|
||
:::
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
sipHash128(par1,...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
[sipHash64](#siphash64)と同様。
|
||
|
||
**返される値**
|
||
|
||
128ビットの`SipHash`ハッシュ値。[FixedString(16)](../data-types/fixedstring.md)型。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT hex(sipHash128('foo', '\x01', 3));
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─hex(sipHash128('foo', '', 3))────┐
|
||
│ 9DE516A64A414D4B1B609415E4523F24 │
|
||
└──────────────────────────────────┘
|
||
```
|
||
|
||
## sipHash128Keyed
|
||
|
||
[sipHash128](#siphash128)と同様ですが、固定キーを使用する代わりに明示的なキー引数を追加で取ります。
|
||
|
||
:::note
|
||
この128ビットのバリアントはリファレンス実装とは異なり、弱いです。
|
||
これは、書かれた当時、SipHashの公式な128ビット拡張が存在しなかったためです。
|
||
新しいプロジェクトではおそらく[sipHash128ReferenceKeyed](#siphash128referencekeyed)を使用すべきです。
|
||
:::
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
sipHash128Keyed((k0, k1), par1,...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
[sipHash128](#siphash128)と同様ですが、最初の引数はキーを表す二つの`UInt64`値のタプルです。
|
||
|
||
**返される値**
|
||
|
||
128ビットの`SipHash`ハッシュ値。[FixedString(16)](../data-types/fixedstring.md)型。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT hex(sipHash128Keyed((506097522914230528, 1084818905618843912),'foo', '\x01', 3));
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─hex(sipHash128Keyed((506097522914230528, 1084818905618843912), 'foo', '', 3))─┐
|
||
│ B8467F65C8B4CFD9A5F8BD733917D9BF │
|
||
└───────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## sipHash128Reference
|
||
|
||
[sipHash128](#siphash128)と同様ですが、SipHashのオリジナル作者による128ビットアルゴリズムを実装しています。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
sipHash128Reference(par1,...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
[sipHash128](#siphash128)と同様。
|
||
|
||
**返される値**
|
||
|
||
128ビットの`SipHash`ハッシュ値。[FixedString(16)](../data-types/fixedstring.md)型。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT hex(sipHash128Reference('foo', '\x01', 3));
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─hex(sipHash128Reference('foo', '', 3))─┐
|
||
│ 4D1BE1A22D7F5933C0873E1698426260 │
|
||
└────────────────────────────────────────┘
|
||
```
|
||
|
||
## sipHash128ReferenceKeyed
|
||
|
||
[sipHash128Reference](#siphash128reference)と同様ですが、固定キーを使用する代わりに明示的なキー引数を追加で取ります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
sipHash128ReferenceKeyed((k0, k1), par1,...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
[sipHash128Reference](#siphash128reference)と同様ですが、最初の引数はキーを表す二つの`UInt64`値のタプルです。
|
||
|
||
**返される値**
|
||
|
||
128ビットの`SipHash`ハッシュ値。[FixedString(16)](../data-types/fixedstring.md)型。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT hex(sipHash128ReferenceKeyed((506097522914230528, 1084818905618843912),'foo', '\x01', 3));
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─hex(sipHash128ReferenceKeyed((506097522914230528, 1084818905618843912), 'foo', '', 3))─┐
|
||
│ 630133C9722DC08646156B8130C4CDC8 │
|
||
└────────────────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## cityHash64
|
||
|
||
64ビットの[CityHash](https://github.com/google/cityhash)ハッシュ値を生成します。
|
||
|
||
```sql
|
||
cityHash64(par1,...)
|
||
```
|
||
|
||
これは高速な非暗号化ハッシュ関数です。文字列パラメータにはCityHashアルゴリズムを使用し、他のデータ型のパラメータには実装固有の高速非暗号化ハッシュ関数を使用します。この関数はCityHashのコンビネータを使用して最終結果を得ます。
|
||
|
||
GoogleがCityHashのアルゴリズムをClickHouseに追加された後に変更したことに注意してください。つまり、ClickHouseのcityHash64とGoogleの上流のCityHashは異なる結果を生成します。ClickHouseのcityHash64はCityHash v1.0.2に対応しています。
|
||
|
||
**引数**
|
||
|
||
この関数は可変数の入力パラメータを取ります。引数は[サポートされているデータ型](../data-types/index.md)のいずれかであり得ます。異なる型の引数でも、同じ値に対して計算されるハッシュ関数の値が同じになる場合があります(異なるサイズの整数、同じデータを持つ名前付きおよび名前なしの`Tuple`、同じデータを持つ`Map`および対応する`Array(Tuple(key, value))`型)。
|
||
|
||
**返される値**
|
||
|
||
[UInt64](../data-types/int-uint.md)データ型のハッシュ値。
|
||
|
||
**例**
|
||
|
||
呼び出し例:
|
||
|
||
```sql
|
||
SELECT cityHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS CityHash, toTypeName(CityHash) AS type;
|
||
```
|
||
|
||
```response
|
||
┌─────────────CityHash─┬─type───┐
|
||
│ 12072650598913549138 │ UInt64 │
|
||
└──────────────────────┴────────┘
|
||
```
|
||
|
||
次の例は、行順序までの精度でテーブル全体のチェックサムを計算する方法を示しています:
|
||
|
||
```sql
|
||
SELECT groupBitXor(cityHash64(*)) FROM table
|
||
```
|
||
|
||
## intHash32
|
||
|
||
任意の型の整数から32ビットのハッシュコードを計算します。
|
||
これは、数値用の平均的な品質の高速な非暗号化ハッシュ関数です。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
intHash32(int)
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `int` — ハッシュ化する整数。[(U)Int*](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 32ビットのハッシュコード。[UInt32](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT intHash32(42);
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─intHash32(42)─┐
|
||
│ 1228623923 │
|
||
└───────────────┘
|
||
```
|
||
|
||
## intHash64
|
||
|
||
任意の型の整数から64ビットのハッシュコードを計算します。
|
||
これは、数値用の平均的な品質の高速な非暗号化ハッシュ関数です。
|
||
[intHash32](#inthash32)よりも高速に動作します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
intHash64(int)
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `int` — ハッシュ化する整数。[(U)Int*](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 64ビットのハッシュコード。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT intHash64(42);
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌────────intHash64(42)─┐
|
||
│ 11490350930367293593 │
|
||
└──────────────────────┘
|
||
```
|
||
|
||
## SHA1, SHA224, SHA256, SHA512, SHA512_256
|
||
|
||
文字列からSHA-1, SHA-224, SHA-256, SHA-512, SHA-512-256のハッシュを計算し、結果のバイトセットを[FixedString](../data-types/fixedstring.md)として返します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
SHA1('s')
|
||
...
|
||
SHA512('s')
|
||
```
|
||
|
||
この関数は比較的遅いです(SHA-1は1秒あたり500万の短い文字列をプロセッサコアごとに処理し、SHA-224とSHA-256は約220万を処理します)。
|
||
この関数を使用するのは、特定のハッシュ関数が必要であり、選択ができない場合のみをお勧めします。
|
||
このような場合でも、テーブルに挿入する際にオフラインで関数を適用し、値を事前に計算することをお勧めします。
|
||
|
||
**引数**
|
||
|
||
- `s` — SHAハッシュ計算のための入力文字列。[String](../data-types/string.md)。
|
||
|
||
**返される値**
|
||
|
||
- SHAハッシュを16進数非エンコードされたFixedStringとして返します。SHA-1はFixedString(20)として、SHA-224はFixedString(28)、SHA-256はFixedString(32)、SHA-512はFixedString(64)です。[FixedString](../data-types/fixedstring.md)。
|
||
|
||
**例**
|
||
|
||
結果を16進エンコードされた文字列として表すには、[hex](../functions/encoding-functions.md/#hex)関数を使用します。
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT hex(SHA1('abc'));
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─hex(SHA1('abc'))─────────────────────────┐
|
||
│ A9993E364706816ABA3E25717850C26C9CD0D89D │
|
||
└──────────────────────────────────────────┘
|
||
```
|
||
|
||
## BLAKE3
|
||
|
||
BLAKE3ハッシュ文字列を計算し、結果のバイトセットを[FixedString](../data-types/fixedstring.md)として返します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
BLAKE3('s')
|
||
```
|
||
|
||
この暗号化ハッシュ関数はBLAKE3 Rustライブラリと統合されています。この関数はかなり速く、SHA-2と比較して約2倍の性能を示し、SHA-256と同じ長さのハッシュを生成します。
|
||
|
||
**引数**
|
||
|
||
- s - BLAKE3ハッシュ計算のための入力文字列。[String](../data-types/string.md)。
|
||
|
||
**返される値**
|
||
|
||
- BLAKE3ハッシュを型FixedString(32)のバイト配列として返します。[FixedString](../data-types/fixedstring.md)。
|
||
|
||
**例**
|
||
|
||
結果を16進エンコードされた文字列として表すには、[hex](../functions/encoding-functions.md/#hex)関数を使用します。
|
||
|
||
クエリ:
|
||
```sql
|
||
SELECT hex(BLAKE3('ABC'))
|
||
```
|
||
|
||
結果:
|
||
```sql
|
||
┌─hex(BLAKE3('ABC'))───────────────────────────────────────────────┐
|
||
│ D1717274597CF0289694F75D96D444B992A096F1AFD8E7BBFA6EBB1D360FEDFC │
|
||
└──────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## URLHash(url\[, N\])
|
||
|
||
文字列をURLから取得し、ある種の正規化を行った後、高速で質の良い非暗号化ハッシュ関数を計算します。
|
||
`URLHash(s)` – 終わりに`/`、`?`、`#`のいずれかの追加入力シンボルがある場合、それを除いた状態で文字列からハッシュを計算します。
|
||
`URLHash(s, N)` – 終わりに`/`、`?`、`#`のいずれかの追加入力シンボルがある場合、それを除いた状態でURL階層のNレベルまでハッシュを計算します。
|
||
レベルはURLHierarchyと同じです。
|
||
|
||
## farmFingerprint64
|
||
|
||
## farmHash64
|
||
|
||
64ビットの[FarmHash](https://github.com/google/farmhash)またはFingerprint値を生成します。`farmFingerprint64`は、安定していてポータブルな値が好ましい場合にお勧めします。
|
||
|
||
```sql
|
||
farmFingerprint64(par1, ...)
|
||
farmHash64(par1, ...)
|
||
```
|
||
|
||
これらの関数は、[使用可能なすべてのメソッド](https://github.com/google/farmhash/blob/master/src/farmhash.h)から、それぞれ`Fingerprint64`と`Hash64`メソッドを使用します。
|
||
|
||
**引数**
|
||
|
||
この関数は可変数の入力パラメータを取ります。引数は[サポートされているデータ型](../data-types/index.md)のいずれかであり得ます。異なる型の引数でも、同じ値に対して計算されるハッシュ関数の値が同じになる場合があります(異なるサイズの整数、同じデータを持つ名前付きおよび名前なしの`Tuple`、同じデータを持つ`Map`および対応する`Array(Tuple(key, value))`型)。
|
||
|
||
**返される値**
|
||
|
||
[UInt64](../data-types/int-uint.md)データ型のハッシュ値。
|
||
|
||
**例**
|
||
|
||
```sql
|
||
SELECT farmHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmHash, toTypeName(FarmHash) AS type;
|
||
```
|
||
|
||
```response
|
||
┌─────────────FarmHash─┬─type───┐
|
||
│ 17790458267262532859 │ UInt64 │
|
||
└──────────────────────┴────────┘
|
||
```
|
||
|
||
## javaHash
|
||
|
||
Javaの[String](http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/478a4add975b/src/share/classes/java/lang/String.java#l1452)からJavaHashを計算します,
|
||
[Byte](https://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/478a4add975b/src/share/classes/java/lang/Byte.java#l405),
|
||
[Short](https://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/478a4add975b/src/share/classes/java/lang/Short.java#l410),
|
||
[Integer](https://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/478a4add975b/src/share/classes/java/lang/Integer.java#l959),
|
||
[Long](https://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/478a4add975b/src/share/classes/java/lang/Long.java#l1060).
|
||
このハッシュ関数は速くもなく、高品質でもありません。このアルゴリズムが他のシステムで既に使用されていて、全く同じ結果を計算する必要がある場合にのみ使う理由があります。
|
||
|
||
Javaは符号付き整数のハッシュしか計算をサポートしていないことに注意してください。符号なし整数のハッシュを計算したい場合は、適切な符号付きClickHouse型にキャストする必要があります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
SELECT javaHash('')
|
||
```
|
||
|
||
**返される値**
|
||
|
||
`Int32`データ型のハッシュ値。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT javaHash(toInt32(123));
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─javaHash(toInt32(123))─┐
|
||
│ 123 │
|
||
└────────────────────────┘
|
||
```
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT javaHash('Hello, world!');
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─javaHash('Hello, world!')─┐
|
||
│ -1880044555 │
|
||
└───────────────────────────┘
|
||
```
|
||
|
||
## javaHashUTF16LE
|
||
|
||
文字列からJavaHashを計算し、それがUTF-16LEエンコーディングであるバイトを持つと仮定します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
javaHashUTF16LE(stringUtf16le)
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `stringUtf16le` — UTF-16LEエンコーディングされた文字列。
|
||
|
||
**返される値**
|
||
|
||
`Int32`データ型のハッシュ値。
|
||
|
||
**例**
|
||
|
||
UTF-16LEエンコードされた文字列を用いた正しいクエリ。
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'));
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'))─┐
|
||
│ 3556498 │
|
||
└──────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## hiveHash
|
||
|
||
文字列から`HiveHash`を計算します。
|
||
|
||
```sql
|
||
SELECT hiveHash('')
|
||
```
|
||
|
||
これは、符号ビットをゼロ化したただの[JavaHash](#javahash)です。この関数は、[Apache Hive](https://en.wikipedia.org/wiki/Apache_Hive)バージョン3.0以前で使用されます。このハッシュ関数は速くも高品質でもありません。このアルゴリズムが他のシステムですでに使用されていて、完全に同じ結果を計算する必要がある場合にのみ使用する理由があります。
|
||
|
||
**返される値**
|
||
|
||
- `hiveHash`ハッシュ値。[Int32](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT hiveHash('Hello, world!');
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─hiveHash('Hello, world!')─┐
|
||
│ 267439093 │
|
||
└───────────────────────────┘
|
||
```
|
||
|
||
## metroHash64
|
||
|
||
64ビットの[MetroHash](http://www.jandrewrogers.com/2015/05/27/metrohash/)ハッシュ値を生成します。
|
||
|
||
```sql
|
||
metroHash64(par1, ...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
この関数は可変数の入力パラメータを取ります。引数は[サポートされているデータ型](../data-types/index.md)のいずれかであり得ます。異なる型の引数でも、同じ値に対して計算されるハッシュ関数の値が同じになる場合があります(異なるサイズの整数、同じデータを持つ名前付きおよび名前なしの`Tuple`、同じデータを持つ`Map`および対応する`Array(Tuple(key, value))`型)。
|
||
|
||
**返される値**
|
||
|
||
[UInt64](../data-types/int-uint.md)データ型のハッシュ値。
|
||
|
||
**例**
|
||
|
||
```sql
|
||
SELECT metroHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MetroHash, toTypeName(MetroHash) AS type;
|
||
```
|
||
|
||
```response
|
||
┌────────────MetroHash─┬─type───┐
|
||
│ 14235658766382344533 │ UInt64 │
|
||
└──────────────────────┴────────┘
|
||
```
|
||
|
||
## jumpConsistentHash
|
||
|
||
UInt64からJumpConsistentHashを計算します。
|
||
2つの引数を受け取ります: `UInt64`型のキーとバケット数。返されるのは`Int32`です。
|
||
詳細は、リンクをご覧ください: [JumpConsistentHash](https://arxiv.org/pdf/1406.2294.pdf)
|
||
|
||
## kostikConsistentHash
|
||
|
||
Konstantin 'kostik' OblakovによるO(1)時間および空間の一貫性ハッシュアルゴリズム。以前は`yandexConsistentHash`。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
kostikConsistentHash(input, n)
|
||
```
|
||
|
||
別名: `yandexConsistentHash`(後方互換性のために残されています)。
|
||
|
||
**パラメータ**
|
||
|
||
- `input`: `UInt64`型のキー。[UInt64](../data-types/int-uint.md)。
|
||
- `n`: バケット数。[UInt16](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- [UInt16](../data-types/int-uint.md)データ型のハッシュ値。
|
||
|
||
**実装の細部**
|
||
|
||
n <= 32768の場合にのみ効率的です。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT kostikConsistentHash(16045690984833335023, 2);
|
||
```
|
||
|
||
```response
|
||
┌─kostikConsistentHash(16045690984833335023, 2)─┐
|
||
│ 1 │
|
||
└───────────────────────────────────────────────┘
|
||
```
|
||
|
||
## murmurHash2_32, murmurHash2_64
|
||
|
||
[MurmurHash2](https://github.com/aappleby/smhasher)ハッシュ値を生成します。
|
||
|
||
```sql
|
||
murmurHash2_32(par1, ...)
|
||
murmurHash2_64(par1, ...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
両方の関数は可変数の入力パラメータを取ります。引数は[サポートされているデータ型](../data-types/index.md)のいずれかであり得ます。異なる型の引数でも、同じ値に対して計算されるハッシュ関数の値が同じになる場合があります(異なるサイズの整数、同じデータを持つ名前付きおよび名前なしの`Tuple`、同じデータを持つ`Map`および対応する`Array(Tuple(key, value))`型)。
|
||
|
||
**返される値**
|
||
|
||
- `murmurHash2_32`関数は[UInt32](../data-types/int-uint.md)データ型のハッシュ値を返します。
|
||
- `murmurHash2_64`関数は[UInt64](../data-types/int-uint.md)データ型のハッシュ値を返します。
|
||
|
||
**例**
|
||
|
||
```sql
|
||
SELECT murmurHash2_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;
|
||
```
|
||
|
||
```response
|
||
┌──────────MurmurHash2─┬─type───┐
|
||
│ 11832096901709403633 │ UInt64 │
|
||
└──────────────────────┴────────┘
|
||
```
|
||
|
||
## gccMurmurHash
|
||
|
||
[gcc](https://github.com/gcc-mirror/gcc/blob/41d6b10e96a1de98e90a7c0378437c3255814b16/libstdc%2B%2B-v3/include/bits/functional_hash.h#L191)と同じハッシュシードを使用して64ビットの[MurmurHash2](https://github.com/aappleby/smhasher)ハッシュ値を計算します。ClangとGCCのビルド間で互換性があります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
gccMurmurHash(par1, ...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `par1, ...` — [サポートされているデータ型](../data-types/index.md/#data_types)のいずれかである可変数のパラメータ。
|
||
|
||
**返される値**
|
||
|
||
- 計算されたハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT
|
||
gccMurmurHash(1, 2, 3) AS res1,
|
||
gccMurmurHash(('a', [1, 2, 3], 4, (4, ['foo', 'bar'], 1, (1, 2)))) AS res2
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─────────────────res1─┬────────────────res2─┐
|
||
│ 12384823029245979431 │ 1188926775431157506 │
|
||
└──────────────────────┴─────────────────────┘
|
||
```
|
||
|
||
## kafkaMurmurHash
|
||
|
||
[Kafka](https://github.com/apache/kafka/blob/461c5cfe056db0951d9b74f5adc45973670404d7/clients/src/main/java/org/apache/kafka/common/utils/Utils.java#L482)と同じハッシュシードを使用して32ビットの[MurmurHash2](https://github.com/aappleby/smhasher)ハッシュ値を計算し、[Default Partitioner](https://github.com/apache/kafka/blob/139f7709bd3f5926901a21e55043388728ccca78/clients/src/main/java/org/apache/kafka/clients/producer/internals/BuiltInPartitioner.java#L328)と互換性があるように最上位ビットを持ちません。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
MurmurHash(par1, ...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `par1, ...` — [サポートされているデータ型](../data-types/index.md/#data_types)のいずれかである可変数のパラメータ。
|
||
|
||
**返される値**
|
||
|
||
- 計算されたハッシュ値。[UInt32](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT
|
||
kafkaMurmurHash('foobar') AS res1,
|
||
kafkaMurmurHash(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS res2
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌───────res1─┬─────res2─┐
|
||
│ 1357151166 │ 85479775 │
|
||
└────────────┴──────────┘
|
||
```
|
||
|
||
## murmurHash3_32, murmurHash3_64
|
||
|
||
[MurmurHash3](https://github.com/aappleby/smhasher)ハッシュ値を生成します。
|
||
|
||
```sql
|
||
murmurHash3_32(par1, ...)
|
||
murmurHash3_64(par1, ...)
|
||
```
|
||
|
||
**引数**
|
||
|
||
両方の関数は可変数の入力パラメータを取ります。引数は[サポートされているデータ型](../data-types/index.md)のいずれかであり得ます。異なる型の引数でも、同じ値に対して計算されるハッシュ関数の値が同じになる場合があります(異なるサイズの整数、同じデータを持つ名前付きおよび名前なしの`Tuple`、同じデータを持つ`Map`および対応する`Array(Tuple(key, value))`型)。
|
||
|
||
**返される値**
|
||
|
||
- `murmurHash3_32`関数は[UInt32](../data-types/int-uint.md)データ型のハッシュ値を返します。
|
||
- `murmurHash3_64`関数は[UInt64](../data-types/int-uint.md)データ型のハッシュ値を返します。
|
||
|
||
**例**
|
||
|
||
```sql
|
||
SELECT murmurHash3_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;
|
||
```
|
||
|
||
```response
|
||
┌─MurmurHash3─┬─type───┐
|
||
│ 2152717 │ UInt32 │
|
||
└─────────────┴────────┘
|
||
```
|
||
|
||
## murmurHash3_128
|
||
|
||
128ビットの[MurmurHash3](https://github.com/aappleby/smhasher)ハッシュ値を生成します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
murmurHash3_128(expr)
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `expr` — [式](../syntax.md/#syntax-expressions)のリスト。[String](../data-types/string.md)。
|
||
|
||
**返される値**
|
||
|
||
128ビットの`MurmurHash3`ハッシュ値。[FixedString(16)](../data-types/fixedstring.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT hex(murmurHash3_128('foo', 'foo', 'foo'));
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─hex(murmurHash3_128('foo', 'foo', 'foo'))─┐
|
||
│ F8F7AD9B6CD4CF117A71E277E2EC2931 │
|
||
└───────────────────────────────────────────┘
|
||
```
|
||
|
||
## xxh3
|
||
|
||
64ビットの[xxh3](https://github.com/Cyan4973/xxHash)ハッシュ値を生成します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
xxh3(expr)
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `expr` — 任意のデータ型の[式](../syntax.md/#syntax-expressions)のリスト。
|
||
|
||
**返される値**
|
||
|
||
64ビットの`xxh3`ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT xxh3('Hello', 'world')
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─xxh3('Hello', 'world')─┐
|
||
│ 5607458076371731292 │
|
||
└────────────────────────┘
|
||
```
|
||
|
||
## xxHash32, xxHash64
|
||
|
||
文字列から`xxHash`を計算します。32ビットと64ビットの2つのフレーバーがあります。
|
||
|
||
```sql
|
||
SELECT xxHash32('')
|
||
|
||
OR
|
||
|
||
SELECT xxHash64('')
|
||
```
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt32/64](../data-types/int-uint.md)。
|
||
|
||
:::note
|
||
戻り型は`xxHash32`の場合`UInt32`、`xxHash64`の場合`UInt64`になります。
|
||
:::
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT xxHash32('Hello, world!');
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─xxHash32('Hello, world!')─┐
|
||
│ 834093149 │
|
||
└───────────────────────────┘
|
||
```
|
||
|
||
**関連項目**
|
||
|
||
- [xxHash](http://cyan4973.github.io/xxHash/)。
|
||
|
||
## ngramSimHash
|
||
|
||
ASCII文字列を`ngramsize`シンボルのn-gramに分割し、n-gramの`simhash`を返します。大文字小文字を区別します。
|
||
|
||
[bitHammingDistance](../functions/bit-functions.md/#bithammingdistance)を使用して、半重複文字列を検出するために使用できます。計算された2つの文字列の`simhashes`の[ハミング距離](https://en.wikipedia.org/wiki/Hamming_distance)が小さいほど、それらの文字列は同じ可能性が高くなります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramSimHash(string[, ngramsize])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramSimHash('ClickHouse') AS Hash;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌───────Hash─┐
|
||
│ 1627567969 │
|
||
└────────────┘
|
||
```
|
||
|
||
## ngramSimHashCaseInsensitive
|
||
|
||
ASCII文字列を`ngramsize`シンボルのn-gramに分割し、n-gramの`simhash`を返します。大文字小文字を区別しません。
|
||
|
||
[bitHammingDistance](../functions/bit-functions.md/#bithammingdistance)を使用して、半重複文字列を検出するために使用できます。計算された2つの文字列の`simhashes`の[ハミング距離](https://en.wikipedia.org/wiki/Hamming_distance)が小さいほど、それらの文字列は同じ可能性が高くなります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramSimHashCaseInsensitive(string[, ngramsize])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramSimHashCaseInsensitive('ClickHouse') AS Hash;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌──────Hash─┐
|
||
│ 562180645 │
|
||
└───────────┘
|
||
```
|
||
|
||
## ngramSimHashUTF8
|
||
|
||
UTF-8文字列を`ngramsize`シンボルのn-gramに分割し、n-gramの`simhash`を返します。大文字小文字を区別します。
|
||
|
||
[bitHammingDistance](../functions/bit-functions.md/#bithammingdistance)を使用して、半重複文字列を検出するために使用できます。計算された2つの文字列の`simhashes`の[ハミング距離](https://en.wikipedia.org/wiki/Hamming_distance)が小さいほど、それらの文字列は同じ可能性が高くなります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramSimHashUTF8(string[, ngramsize])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramSimHashUTF8('ClickHouse') AS Hash;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌───────Hash─┐
|
||
│ 1628157797 │
|
||
└────────────┘
|
||
```
|
||
|
||
## ngramSimHashCaseInsensitiveUTF8
|
||
|
||
UTF-8文字列を`ngramsize`シンボルのn-gramに分割し、n-gramの`simhash`を返します。大文字小文字を区別しません。
|
||
|
||
[bitHammingDistance](../functions/bit-functions.md/#bithammingdistance)を使用して、半重複文字列を検出するために使用できます。計算された2つの文字列の`simhashes`の[ハミング距離](https://en.wikipedia.org/wiki/Hamming_distance)が小さいほど、それらの文字列は同じ可能性が高くなります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramSimHashCaseInsensitiveUTF8(string[, ngramsize])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramSimHashCaseInsensitiveUTF8('ClickHouse') AS Hash;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌───────Hash─┐
|
||
│ 1636742693 │
|
||
└────────────┘
|
||
```
|
||
|
||
## wordShingleSimHash
|
||
|
||
ASCII文字列を`shinglesize`単語の部分(シングル)に分割して、単語シングルの`simhash`を返します。大文字小文字を区別します。
|
||
|
||
[bitHammingDistance](../functions/bit-functions.md/#bithammingdistance)を使用して、半重複文字列を検出するために使用できます。計算された2つの文字列の`simhashes`の[ハミング距離](https://en.wikipedia.org/wiki/Hamming_distance)が小さいほど、それらの文字列は同じ可能性が高くなります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleSimHash(string[, shinglesize])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleSimHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌───────Hash─┐
|
||
│ 2328277067 │
|
||
└────────────┘
|
||
```
|
||
|
||
## wordShingleSimHashCaseInsensitive
|
||
|
||
ASCII文字列を`shinglesize`単語の部分(シングル)に分割して、単語シングルの`simhash`を返します。大文字小文字を区別しません。
|
||
|
||
[bitHammingDistance](../functions/bit-functions.md/#bithammingdistance)を使用して、半重複文字列を検出するために使用できます。計算された2つの文字列の`simhashes`の[ハミング距離](https://en.wikipedia.org/wiki/Hamming_distance)が小さいほど、それらの文字列は同じ可能性が高くなります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleSimHashCaseInsensitive(string[, shinglesize])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleSimHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌───────Hash─┐
|
||
│ 2194812424 │
|
||
└────────────┘
|
||
```
|
||
|
||
## wordShingleSimHashUTF8
|
||
|
||
UTF-8文字列を`shinglesize`単語の部分(シングル)に分割して、単語シングルの`simhash`を返します。大文字小文字を区別します。
|
||
|
||
[bitHammingDistance](../functions/bit-functions.md/#bithammingdistance)を使用して、半重複文字列を検出するために使用できます。計算された2つの文字列の`simhashes`の[ハミング距離](https://en.wikipedia.org/wiki/Hamming_distance)が小さいほど、それらの文字列は同じ可能性が高くなります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleSimHashUTF8(string[, shinglesize])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleSimHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌───────Hash─┐
|
||
│ 2328277067 │
|
||
└────────────┘
|
||
```
|
||
|
||
## wordShingleSimHashCaseInsensitiveUTF8
|
||
|
||
UTF-8文字列を`shinglesize`単語の部分(シングル)に分割して、単語シングルの`simhash`を返します。大文字小文字を区別しません。
|
||
|
||
[bitHammingDistance](../functions/bit-functions.md/#bithammingdistance)を使用して、半重複文字列を検出するために使用できます。計算された2つの文字列の`simhashes`の[ハミング距離](https://en.wikipedia.org/wiki/Hamming_distance)が小さいほど、それらの文字列は同じ可能性が高くなります。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleSimHashCaseInsensitiveUTF8(string[, shinglesize])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleSimHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌───────Hash─┐
|
||
│ 2194812424 │
|
||
└────────────┘
|
||
```
|
||
|
||
## wyHash64
|
||
|
||
64ビットの[wyHash64](https://github.com/wangyi-fudan/wyhash)ハッシュ値を生成します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wyHash64(string)
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
|
||
**返される値**
|
||
|
||
- ハッシュ値。[UInt64](../data-types/int-uint.md)。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wyHash64('ClickHouse') AS Hash;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─────────────────Hash─┐
|
||
│ 12336419557878201794 │
|
||
└──────────────────────┘
|
||
```
|
||
|
||
## ngramMinHash
|
||
|
||
ASCII文字列を`ngramsize`シンボルのn-gramに分割し、各n-gramのハッシュ値を計算します。`hashnum`個の最小ハッシュを使用して最小ハッシュを計算し、`hashnum`個の最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュを含むタプルを返します。大文字小文字を区別します。
|
||
|
||
[tupleHammingDistance](../functions/tuple-functions.md/#tuplehammingdistance)を使用して、半重複文字列を検出するために使用できます。2つの文字列の場合: 返されるハッシュのいずれかが両方の文字列で同じである場合、それらの文字列は同じであると考えます。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramMinHash(string[, ngramsize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 2つのハッシュを持つタプル — 最小と最大。[Tuple](../data-types/tuple.md)([UInt64](../data-types/int-uint.md), [UInt64](../data-types/int-uint.md))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramMinHash('ClickHouse') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple──────────────────────────────────────┐
|
||
│ (18333312859352735453,9054248444481805918) │
|
||
└────────────────────────────────────────────┘
|
||
```
|
||
|
||
## ngramMinHashCaseInsensitive
|
||
|
||
ASCII文字列を`ngramsize`シンボルのn-gramに分割し、各n-gramのハッシュ値を計算します。`hashnum`個の最小ハッシュを使用して最小ハッシュを計算し、`hashnum`個の最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュを含むタプルを返します。大文字小文字を区別しません。
|
||
|
||
[tupleHammingDistance](../functions/tuple-functions.md/#tuplehammingdistance)を使用して、半重複文字列を検出するために使用できます。2つの文字列の場合: 返されるハッシュのいずれかが両方の文字列で同じである場合、それらの文字列は同じであると考えます。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramMinHashCaseInsensitive(string[, ngramsize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 2つのハッシュを持つタプル — 最小と最大。[Tuple](../data-types/tuple.md)([UInt64](../data-types/int-uint.md), [UInt64](../data-types/int-uint.md))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramMinHashCaseInsensitive('ClickHouse') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple──────────────────────────────────────┐
|
||
│ (2106263556442004574,13203602793651726206) │
|
||
└────────────────────────────────────────────┘
|
||
```
|
||
|
||
## ngramMinHashUTF8
|
||
|
||
UTF-8文字列を`ngramsize`シンボルのn-gramに分割し、各n-gramのハッシュ値を計算します。`hashnum`個の最小ハッシュを使用して最小ハッシュを計算し、`hashnum`個の最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュを含むタプルを返します。大文字小文字を区別します。
|
||
|
||
[tupleHammingDistance](../functions/tuple-functions.md/#tuplehammingdistance)を使用して、半重複文字列を検出するために使用できます。2つの文字列の場合: 返されるハッシュのいずれかが両方の文字列で同じである場合、それらの文字列は同じであると考えます。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramMinHashUTF8(string[, ngramsize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 2つのハッシュを持つタプル — 最小と最大。[Tuple](../data-types/tuple.md)([UInt64](../data-types/int-uint.md), [UInt64](../data-types/int-uint.md))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramMinHashUTF8('ClickHouse') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple──────────────────────────────────────┐
|
||
│ (18333312859352735453,6742163577938632877) │
|
||
└────────────────────────────────────────────┘
|
||
```
|
||
|
||
## ngramMinHashCaseInsensitiveUTF8
|
||
|
||
UTF-8文字列を`ngramsize`シンボルのn-gramに分割し、各n-gramのハッシュ値を計算します。`hashnum`個の最小ハッシュを使用して最小ハッシュを計算し、`hashnum`個の最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュを含むタプルを返します。大文字小文字を区別しません。
|
||
|
||
[tupleHammingDistance](../functions/tuple-functions.md/#tuplehammingdistance)を使用して、半重複文字列を検出するために使用できます。2つの文字列の場合: 返されるハッシュのいずれかが両方の文字列で同じである場合、それらの文字列は同じであると考えます。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramMinHashCaseInsensitiveUTF8(string [, ngramsize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 2つのハッシュを持つタプル — 最小と最大。[Tuple](../data-types/tuple.md)([UInt64](../data-types/int-uint.md), [UInt64](../data-types/int-uint.md))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramMinHashCaseInsensitiveUTF8('ClickHouse') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple───────────────────────────────────────┐
|
||
│ (12493625717655877135,13203602793651726206) │
|
||
└─────────────────────────────────────────────┘
|
||
```
|
||
|
||
## ngramMinHashArg
|
||
|
||
ASCII文字列を`ngramsize`シンボルのn-gramに分割し、最小および最大ハッシュを計算する[ngramMinHash](#ngramminhash)関数で同じ入力を用いて計算されたn-gramsを返します。大文字小文字を区別します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramMinHashArg(string[, ngramsize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 各`hashnum`個のn-gramsを持つ2つのタプルを含むタプル。[Tuple](../data-types/tuple.md)([Tuple](../data-types/tuple.md)([String](../data-types/string.md)), [Tuple](../data-types/tuple.md)([String](../data-types/string.md)))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramMinHashArg('ClickHouse') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
|
||
│ (('ous','ick','lic','Hou','kHo','use'),('Hou','lic','ick','ous','ckH','Cli')) │
|
||
└───────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## ngramMinHashArgCaseInsensitive
|
||
|
||
ASCII文字列を`ngramsize`シンボルのn-gramに分割し、最小および最大ハッシュを計算する[ngramMinHashCaseInsensitive](#ngramminhashcaseinsensitive)関数で同じ入力を用いて計算されたn-gramsを返します。大文字小文字を区別しません。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramMinHashArgCaseInsensitive(string[, ngramsize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 各`hashnum`個のn-gramsを持つ2つのタプルを含むタプル。[Tuple](../data-types/tuple.md)([Tuple](../data-types/tuple.md)([String](../data-types/string.md)), [Tuple](../data-types/tuple.md)([String](../data-types/string.md)))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramMinHashArgCaseInsensitive('ClickHouse') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
|
||
│ (('ous','ick','lic','kHo','use','Cli'),('kHo','lic','ick','ous','ckH','Hou')) │
|
||
└───────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## ngramMinHashArgUTF8
|
||
|
||
UTF-8文字列を`ngramsize`シンボルのn-gramに分割し、最小および最大ハッシュを計算する[ngramMinHashUTF8](#ngramminhashutf8)関数で同じ入力を用いて計算されたn-gramsを返します。大文字小文字を区別します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramMinHashArgUTF8(string[, ngramsize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 各`hashnum`個のn-gramsを持つ2つのタプルを含むタプル。[Tuple](../data-types/tuple.md)([Tuple](../data-types/tuple.md)([String](../data-types/string.md)), [Tuple](../data-types/tuple.md)([String](../data-types/string.md)))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramMinHashArgUTF8('ClickHouse') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
|
||
│ (('ous','ick','lic','Hou','kHo','use'),('kHo','Hou','lic','ick','ous','ckH')) │
|
||
└───────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## ngramMinHashArgCaseInsensitiveUTF8
|
||
|
||
UTF-8文字列を`ngramsize`シンボルのn-gramに分割し、最小および最大ハッシュを計算する[ngramMinHashCaseInsensitiveUTF8](#ngramminhashcaseinsensitiveutf8)関数で同じ入力を用いて計算されたn-gramsを返します。大文字小文字を区別しません。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
ngramMinHashArgCaseInsensitiveUTF8(string[, ngramsize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `ngramsize` — n-gramのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 各`hashnum`個のn-gramsを持つ2つのタプルを含むタプル。[Tuple](../data-types/tuple.md)([Tuple](../data-types/tuple.md)([String](../data-types/string.md)), [Tuple](../data-types/tuple.md)([String](../data-types/string.md)))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT ngramMinHashArgCaseInsensitiveUTF8('ClickHouse') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
|
||
│ (('ckH','ous','ick','lic','kHo','use'),('kHo','lic','ick','ous','ckH','Hou')) │
|
||
└───────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## wordShingleMinHash
|
||
|
||
ASCII文字列を`shinglesize`単語の部分(シングル)に分割して、各単語シングルのハッシュ値を計算します。`hashnum`個の最小ハッシュを使用して最小ハッシュを計算し、`hashnum`個の最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュを含むタプルを返します。大文字小文字を区別します。
|
||
|
||
[tupleHammingDistance](../functions/tuple-functions.md/#tuplehammingdistance)を使用して、半重複文字列を検出するために使用できます。2つの文字列の場合: 返されるハッシュのいずれかが両方の文字列で同じである場合、それらの文字列は同じであると考えます。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleMinHash(string[, shinglesize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 2つのハッシュを持つタプル — 最小と最大。[Tuple](../data-types/tuple.md)([UInt64](../data-types/int-uint.md), [UInt64](../data-types/int-uint.md))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleMinHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple──────────────────────────────────────┐
|
||
│ (16452112859864147620,5844417301642981317) │
|
||
└────────────────────────────────────────────┘
|
||
```
|
||
|
||
## wordShingleMinHashCaseInsensitive
|
||
|
||
ASCII文字列を`shinglesize`単語の部分(シングル)に分割して、各単語シングルのハッシュ値を計算します。`hashnum`個の最小ハッシュを使用して最小ハッシュを計算し、`hashnum`個の最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュを含むタプルを返します。大文字小文字を区別しません。
|
||
|
||
[tupleHammingDistance](../functions/tuple-functions.md/#tuplehammingdistance)を使用して、半重複文字列を検出するために使用できます。2つの文字列の場合: 返されるハッシュのいずれかが両方の文字列で同じである場合、それらの文字列は同じであると考えます。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleMinHashCaseInsensitive(string[, shinglesize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果の計算に使用される最小および最大ハッシュの数。オプション。可能な値は`1`から`25`までの任意の数。デフォルト値: `6`。[UInt8](../data-types/int-uint.md)।
|
||
|
||
**返される値**
|
||
|
||
- 2つのハッシュを持つタプル — 最小と最大。[Tuple](../data-types/tuple.md)([UInt64](../data-types/int-uint.md), [UInt64](../data-types/int-uint.md))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleMinHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple─────────────────────────────────────┐
|
||
│ (3065874883688416519,1634050779997673240) │
|
||
└───────────────────────────────────────────┘
|
||
```
|
||
|
||
## wordShingleMinHashUTF8
|
||
|
||
UTF-8文字列を`shinglesize`単語の部分(シングル)に分割して、各単語シングルのハッシュ値を計算します。`hashnum`個の最小ハッシュを使用して最小ハッシュを計算し、`hashnum`個の最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュを含むタプルを返します。大文字小文字を区別します。
|
||
は[tupleHammingDistance](../functions/tuple-functions.md/#tuplehammingdistance)を使用して、半重複文字列の検出に使用できます。2つの文字列に対して、返されたハッシュの1つが両方の文字列で同じであれば、それらの文字列は同じであると考えます。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleMinHashUTF8(string[, shinglesize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。 [String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`3`。 [UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果を計算するために使用される最小および最大ハッシュの数。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`6`。 [UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 2つのハッシュ(最小および最大)のタプル。 [Tuple](../data-types/tuple.md)([UInt64](../data-types/int-uint.md), [UInt64](../data-types/int-uint.md))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleMinHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple──────────────────────────────────────┐
|
||
│ (16452112859864147620,5844417301642981317) │
|
||
└────────────────────────────────────────────┘
|
||
```
|
||
|
||
## wordShingleMinHashCaseInsensitiveUTF8
|
||
|
||
UTF-8文字列を`shinglesize`単語の部分(シングル)に分割し、各単語シングルに対するハッシュ値を計算します。`hashnum`の最小ハッシュを使用して最小ハッシュを計算し、`hashnum`の最大ハッシュを使用して最大ハッシュを計算します。これらのハッシュを含むタプルを返します。大文字小文字を区別しません。
|
||
|
||
は[tupleHammingDistance](../functions/tuple-functions.md/#tuplehammingdistance)を使用して、半重複文字列の検出に使用できます。2つの文字列に対して、返されたハッシュの1つが両方の文字列で同じであれば、それらの文字列は同じであると考えます。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleMinHashCaseInsensitiveUTF8(string[, shinglesize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果を計算するために使用される最小および最大ハッシュの数。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- 2つのハッシュ(最小および最大)のタプル。[Tuple](../data-types/tuple.md)([UInt64](../data-types/int-uint.md), [UInt64](../data-types/int-uint.md))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleMinHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple─────────────────────────────────────┐
|
||
│ (3065874883688416519,1634050779997673240) │
|
||
└───────────────────────────────────────────┘
|
||
```
|
||
|
||
## wordShingleMinHashArg
|
||
|
||
ASCII文字列を`shinglesize`単語の部分(シングル)に分割し、同じ入力で[wordshingleMinHash](#wordshingleminhash)関数によって計算された最小および最大ワードハッシュを持つシングルを返します。大文字小文字を区別します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleMinHashArg(string[, shinglesize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果を計算するために使用される最小および最大ハッシュの数。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- `hashnum`ワードシングルを含む2つのタプル。 [Tuple](../data-types/tuple.md)([Tuple](../data-types/tuple.md)([String](../data-types/string.md)), [Tuple](../data-types/tuple.md)([String](../data-types/string.md)))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleMinHashArg('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple─────────────────────────────────────────────────────────────────┐
|
||
│ (('OLAP','database','analytical'),('online','oriented','processing')) │
|
||
└───────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## wordShingleMinHashArgCaseInsensitive
|
||
|
||
ASCII文字列を`shinglesize`単語の部分(シングル)に分割し、同じ入力で[wordShingleMinHashCaseInsensitive](#wordshingleminhashcaseinsensitive)関数によって計算された最小および最大ワードハッシュを持つシングルを返します。大文字小文字を区別しません。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleMinHashArgCaseInsensitive(string[, shinglesize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果を計算するために使用される最小および最大ハッシュの数。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- `hashnum`ワードシングルを含む2つのタプル。[Tuple](../data-types/tuple.md)([Tuple](../data-types/tuple.md)([String](../data-types/string.md)), [Tuple](../data-types/tuple.md)([String](../data-types/string.md)))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleMinHashArgCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple──────────────────────────────────────────────────────────────────┐
|
||
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
|
||
└────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## wordShingleMinHashArgUTF8
|
||
|
||
UTF-8文字列を`shinglesize`単語の部分(シングル)に分割し、同じ入力で[wordShingleMinHashUTF8](#wordshingleminhashutf8)関数によって計算された最小および最大ワードハッシュを持つシングルを返します。大文字小文字を区別します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleMinHashArgUTF8(string[, shinglesize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果を計算するために使用される最小および最大ハッシュの数。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- `hashnum`ワードシングルを含む2つのタプル。[Tuple](../data-types/tuple.md)([Tuple](../data-types/tuple.md)([String](../data-types/string.md)), [Tuple](../data-types/tuple.md)([String](../data-types/string.md)))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleMinHashArgUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple─────────────────────────────────────────────────────────────────┐
|
||
│ (('OLAP','database','analytical'),('online','oriented','processing')) │
|
||
└───────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## wordShingleMinHashArgCaseInsensitiveUTF8
|
||
|
||
UTF-8文字列を`shinglesize`単語の部分(シングル)に分割し、同じ入力で[wordShingleMinHashCaseInsensitiveUTF8](#wordshingleminhashcaseinsensitiveutf8)関数によって計算された最小および最大ワードハッシュを持つシングルを返します。大文字小文字を区別しません。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
wordShingleMinHashArgCaseInsensitiveUTF8(string[, shinglesize, hashnum])
|
||
```
|
||
|
||
**引数**
|
||
|
||
- `string` — 文字列。[String](../data-types/string.md)。
|
||
- `shinglesize` — 単語シングルのサイズ。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`3`。[UInt8](../data-types/int-uint.md)。
|
||
- `hashnum` — 結果を計算するために使用される最小および最大ハッシュの数。省略可能。可能な値:`1`から`25`までの任意の数。デフォルト値:`6`。[UInt8](../data-types/int-uint.md)。
|
||
|
||
**返される値**
|
||
|
||
- `hashnum`ワードシングルを含む2つのタプル。[Tuple](../data-types/tuple.md)([Tuple](../data-types/tuple.md)([String](../data-types/string.md)), [Tuple](../data-types/tuple.md)([String](../data-types/string.md)))。
|
||
|
||
**例**
|
||
|
||
クエリ:
|
||
|
||
```sql
|
||
SELECT wordShingleMinHashArgCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
|
||
```
|
||
|
||
結果:
|
||
|
||
```response
|
||
┌─Tuple──────────────────────────────────────────────────────────────────┐
|
||
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
|
||
└────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## sqidEncode
|
||
|
||
番号を[Sqid](https://sqids.org/)としてエンコードします。これはYouTubeのようなID文字列です。
|
||
出力アルファベットは `abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789` です。
|
||
ハッシュのためにこの関数を使用しないでください - 生成されたIDは元の番号にデコード可能です。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
sqidEncode(number1, ...)
|
||
```
|
||
|
||
エイリアス: `sqid`
|
||
|
||
**引数**
|
||
|
||
- 可変個数のUInt8, UInt16, UInt32またはUInt64の番号。
|
||
|
||
**返される値**
|
||
|
||
sqid [String](../data-types/string.md)。
|
||
|
||
**例**
|
||
|
||
```sql
|
||
SELECT sqidEncode(1, 2, 3, 4, 5);
|
||
```
|
||
|
||
```response
|
||
┌─sqidEncode(1, 2, 3, 4, 5)─┐
|
||
│ gXHfJ1C6dN │
|
||
└───────────────────────────┘
|
||
```
|
||
|
||
## sqidDecode
|
||
|
||
[Sqid](https://sqids.org/)を元の番号にデコードします。入力文字列が有効なsqidでない場合は、空の配列を返します。
|
||
|
||
**構文**
|
||
|
||
```sql
|
||
sqidDecode(sqid)
|
||
```
|
||
|
||
**引数**
|
||
|
||
- sqid - [String](../data-types/string.md)
|
||
|
||
**返される値**
|
||
|
||
数値に変換されたsqid [Array(UInt64)](../data-types/array.md)。
|
||
|
||
**例**
|
||
|
||
```sql
|
||
SELECT sqidDecode('gXHfJ1C6dN');
|
||
```
|
||
|
||
```response
|
||
┌─sqidDecode('gXHfJ1C6dN')─┐
|
||
│ [1,2,3,4,5] │
|
||
└──────────────────────────┘
|
||
```
|