Хеш-функции
Хеш-функции могут использоваться для детерминированной псевдослучайной перетасовки элементов.
Simhash — это хеш-функция, которая возвращает близкие значения хеша для близких (похожих) аргументов.
halfMD5
Интерпретирует все входные параметры как строки и вычисляет значение хеша MD5 для каждого из них. Затем комбинирует хеши, берет первые 8 байтов хеша результирующей строки и интерпретирует их как UInt64
в порядке байтов big-endian.
Функция относительно медленная (5 миллионов коротких строк в секунду на один процессорный ядро). Рекомендуется использовать функцию 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, чтобы представить результат в виде шестнадцатеричной строки.
Запрос:
sipHash64
Генерирует 64-битное значение хеша SipHash.
Это криптографическая хеш-функция. Она работает как минимум в три раза быстрее, чем хеш-функция MD5.
Функция интерпретирует все входные параметры как строки и вычисляет значение хеша для каждого из них. Затем она комбинирует хеши по следующему алгоритму:
- Первое и второе значения хеша конкатенируются в массив, который затем хешируется.
- Предварительно вычисленное значение хеша и хеш третьего входного параметра хешируются аналогичным образом.
- Этот расчет повторяется для всех оставшихся значений хеша из оригинального входа.
Аргументы
Функция принимает переменное количество входных параметров любого из поддерживаемых типов данных.
Возвращаемое значение
Значение хеша типа UInt64.
Обратите внимание, что вычисленные значения хеша могут быть равными для одних и тех же входных значений различных типов аргументов. Это влияет на, например, целочисленные типы разных размеров, именованные и неименованные Tuple
с одними и теми же данными, Map
и соответствующий тип Array(Tuple(key, value))
с одинаковыми данными.
Пример
sipHash64Keyed
То же самое, что и sipHash64, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.
Синтаксис
Аргументы
То же самое, что и sipHash64, но первый аргумент — это кортеж из двух значений UInt64, представляющих ключ.
Возвращаемое значение
Значение хеша типа UInt64.
Пример
Запрос:
sipHash128
Как sipHash64, но генерирует 128-битное значение хеша, т.е. финальное состояние xor-folding выполняется до 128 бит.
Этот 128-битный вариант отличается от эталонной реализации и является более слабым. Эта версия существует, потому что на момент ее написания не было официального 128-битного расширения для SipHash. Новым проектам, вероятно, следует использовать sipHash128Reference.
Синтаксис
Аргументы
То же самое, что для sipHash64.
Возвращаемое значение
128-битное значение хеша SipHash
типа FixedString(16).
Пример
Запрос:
Результат:
sipHash128Keyed
То же самое, что и sipHash128, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.
Этот 128-битный вариант отличается от эталонной реализации и является более слабым. Эта версия существует, потому что на момент ее написания не было официального 128-битного расширения для SipHash. Новым проектам, вероятно, следует использовать sipHash128ReferenceKeyed.
Синтаксис
Аргументы
То же самое, что и sipHash128, но первый аргумент — это кортеж из двух значений UInt64, представляющих ключ.
Возвращаемое значение
128-битное значение хеша SipHash
типа FixedString(16).
Пример
Запрос:
Результат:
sipHash128Reference
Как sipHash128, но реализует 128-битный алгоритм от оригинальных авторов SipHash.
Синтаксис
Аргументы
То же самое, что и для sipHash128.
Возвращаемое значение
128-битное значение хеша SipHash
типа FixedString(16).
Пример
Запрос:
Результат:
sipHash128ReferenceKeyed
То же самое, что и sipHash128Reference, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.
Синтаксис
Аргументы
То же самое, что и sipHash128Reference, но первый аргумент — это кортеж из двух значений UInt64, представляющих ключ.
Возвращаемое значение
128-битное значение хеша SipHash
типа FixedString(16).
Пример
Запрос:
Результат:
cityHash64
Генерирует 64-битное значение хеша CityHash.
Это быстрое некриптографическое значение хеша. Он использует алгоритм CityHash для строковых параметров и конкретно реализованный быстрый некриптографический хеш для параметров с другими типами данных. Функция использует комбинированный CityHash для получения окончательных результатов.
Обратите внимание, что Google изменил алгоритм CityHash после того, как его добавили в ClickHouse. Другими словами, cityHash64 ClickHouse и upstream CityHash Google теперь производят разные результаты. cityHash64 ClickHouse соответствует 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 обрабатывает около 5 миллионов коротких строк в секунду на одно процессорное ядро, в то время как SHA-224 и SHA-256 обрабатывают около 2.2 миллиона).
Рекомендуется использовать эту функцию только в случаях, когда вам нужна конкретная хеш-функция и вы не можете ее выбрать.
Даже в этих случаях мы рекомендуем применять функцию офлайн и предвычислять значения при их вставке в таблицу, вместо применения в SELECT
запросах.
Аргументы
s
— Входная строка для вычисления SHA хеша. String.
Возвращаемое значение
- SHA хеш в виде шестнадцатеричной неподеленной FixedString. SHA-1 возвращает как FixedString(20), SHA-224 как FixedString(28), SHA-256 — FixedString(32), SHA-512 — FixedString(64). FixedString.
Пример
Используйте функцию hex, чтобы представить результат в виде шестнадцатеричной строки.
Запрос:
Результат:
BLAKE3
Вычисляет хеш-строку BLAKE3 и возвращает результирующий набор байтов как FixedString.
Синтаксис
Эта криптографическая хеш-функция интегрирована в ClickHouse с библиотекой BLAKE3 на Rust. Функция довольно быстрая и демонстрирует примерно в два раза большую производительность по сравнению с SHA-2, при этом генерируя хеши того же размера, что и SHA-256.
Аргументы
- s - входная строка для вычисления хеша BLAKE3. String.
Возвращаемое значение
- Хеш BLAKE3 в виде массива байтов с типом FixedString(32). FixedString.
Пример
Используйте функцию hex, чтобы представить результат в виде шестнадцатеричной строки.
Запрос:
Результат:
URLHash(url[, N])
Быстрая, приемлемого качества некриптографическая хеш-функция для строки, полученной из URL с использованием некоторого типа нормализации.
URLHash(s)
– вычисляет хеш из строки без одного из завершающих символов /
,?
или #
на конце, если они присутствуют.
URLHash(s, N)
– вычисляет хеш из строки до уровня N в иерархии URL, без одного из завершающих символов /
,?
или #
на конце, если они присутствуют.
Уровни такие же, как в URLHierarchy.
farmFingerprint64
farmHash64
Генерирует 64-битное значение FarmHash или Fingerprint. Для стабильного и переносимого значения предпочтителен farmFingerprint64
.
Эти функции используют методы Fingerprint64
и Hash64
соответственно из всех доступных методов.
Аргументы
Функция принимает переменное количество входных параметров. Аргументы могут быть любого из поддерживаемых типов данных. Для некоторых типов данных вычисленное значение хеш-функции может быть одинаковым для одних и тех же значений, даже если типы аргументов различаются (целые числа разных размеров, именованные и неименованные Tuple
с одинаковыми данными, Map
и соответствующий тип Array(Tuple(key, value))
с одинаковыми данными).
Возвращаемое значение
Значение хеша типа UInt64.
Пример
javaHash
Вычисляет JavaHash из строки, Byte, Short, Integer, Long. Эта хеш-функция не быстрая и не имеет хорошего качества. Единственная причина для ее использования — это когда этот алгоритм уже используется в другой системе, и вам нужно вычислить точно такой же результат.
Обратите внимание, что Java поддерживает вычисление только хеша для знаковых целых чисел, поэтому если вам нужно вычислить хеш для беззнаковых целых чисел, вы должны привести их к соответствующим знаковым типам ClickHouse.
Синтаксис
Возвращаемое значение
Значение хеша типа Int32
.
Пример
Запрос:
Результат:
Запрос:
Результат:
javaHashUTF16LE
Вычисляет JavaHash из строки, предполагая, что она содержит байты, представляющие строку в кодировке UTF-16LE.
Синтаксис
Аргументы
stringUtf16le
— строка в кодировке UTF-16LE.
Возвращаемое значение
Значение хеша типа Int32
.
Пример
Правильный запрос со строкой в кодировке UTF-16LE.
Запрос:
Результат:
hiveHash
Вычисляет HiveHash
из строки.
Это просто JavaHash с обнуленным знаком. Эта функция используется в Apache Hive для версий до 3.0. Эта хеш-функция не быстрая и не имеет хорошего качества. Единственная причина для ее использования — это когда этот алгоритм уже используется в другой системе, и вам нужно вычислить точно такой же результат.
Возвращаемое значение
- значение хеша
hiveHash
. Int32.
Пример
Запрос:
Результат:
metroHash64
Генерирует 64-битное значение MetroHash хеш.
Аргументы
Функция принимает переменное количество входных параметров. Аргументы могут быть любого из поддерживаемых типов данных. Для некоторых типов данных вычисленное значение хеш-функции может быть одинаковым для одних и тех же значений, даже если типы аргументов различаются (целые числа разных размеров, именованные и неименованные Tuple
с одинаковыми данными, Map
и соответствующий тип Array(Tuple(key, value))
с одинаковыми данными).
Возвращаемое значение
Значение хеша типа UInt64.
Пример
jumpConsistentHash
Вычисляет JumpConsistentHash из UInt64. Принимает два аргумента: ключ типа UInt64 и количество бакетов. Возвращает Int32. Для получения дополнительной информации см. ссылку: JumpConsistentHash
kostikConsistentHash
Алгоритм согласованного хеширования с O(1) по времени и пространству от Константина "kostik" Облакова. Ранее yandexConsistentHash
.
Синтаксис
Псевдоним: yandexConsistentHash
(оставлен для обратной совместимости).
Параметры
Возвращаемое значение
- Значение типа 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.
Синтаксис
Аргументы
par1, ...
— Переменное количество параметров, которые могут быть любым из поддерживаемых типов данных.
Возвращаемое значение
- Вычисленное значение хеша. UInt64.
Пример
Запрос:
Результат:
kafkaMurmurHash
Вычисляет 32-битное значение MurmurHash2 хеша с использованием того же семени хеша, что и Kafka и без самого высокого бита, чтобы быть совместимым с Default Partitioner.
Синтаксис
Аргументы
par1, ...
— Переменное количество параметров, которые могут быть любым из поддерживаемых типов данных.
Возвращаемое значение
- Вычисленное значение хеша. 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 бита.
Возвращаемое значение
- Значение хеша. UInt32/64.
Тип возвращаемого значения будет UInt32
для xxHash32
и UInt64
для xxHash64
.
Пример
Запрос:
Результат:
См. также
ngramSimHash
Разбивает строку ASCII на n-граммы размером ngramsize
символов и возвращает n-грамму simhash
. Чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковые.
Синтаксис
Аргументы
string
— строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Значение хеша. UInt64.
Пример
Запрос:
Результат:
ngramSimHashCaseInsensitive
Разбивает строку ASCII на n-граммы размером ngramsize
символов и возвращает n-грамму simhash
. Не чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковые.
Синтаксис
Аргументы
string
— строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Значение хеша. UInt64.
Пример
Запрос:
Результат:
ngramSimHashUTF8
Разбивает строку UTF-8 на n-граммы размером ngramsize
символов и возвращает n-грамму simhash
. Чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковые.
Синтаксис
Аргументы
string
— строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Значение хеша. UInt64.
Пример
Запрос:
Результат:
ngramSimHashCaseInsensitiveUTF8
Разделяет строку UTF-8 на n-граммы размером ngramsize
символов и возвращает n-граммный simhash
. Не чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между рассчитанными simhashes
двух строк, тем больше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хэш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHash
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает хэш шингла. Чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между рассчитанными simhashes
двух строк, тем больше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хэш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashCaseInsensitive
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает хэш шингла. Не чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между рассчитанными simhashes
двух строк, тем больше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хэш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает хэш шингла. Чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между рассчитанными simhashes
двух строк, тем больше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хэш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashCaseInsensitiveUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает хэш шингла. Не чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между рассчитанными simhashes
двух строк, тем больше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хэш-значение. UInt64.
Пример
Запрос:
Результат:
wyHash64
Создает 64-битное wyHash64 хэш-значение.
Синтаксис
Аргументы
string
— Строка. String.
Возвращаемое значение
- Хэш-значение. UInt64.
Пример
Запрос:
Результат:
ngramMinHash
Разделяет строку ASCII на n-граммы размером ngramsize
символов и вычисляет хэш-значения для каждой n-граммы. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Возвращает кортеж с этими хэшами. Чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хэшей одинаков для обеих строк, мы считаем, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashCaseInsensitive
Разделяет строку ASCII на n-граммы размером ngramsize
символов и вычисляет хэш-значения для каждой n-граммы. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Возвращает кортеж с этими хэшами. Не чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хэшей одинаков для обеих строк, мы считаем, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashUTF8
Разделяет строку UTF-8 на n-граммы размером ngramsize
символов и вычисляет хэш-значения для каждой n-граммы. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Возвращает кортеж с этими хэшами. Чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хэшей одинаков для обеих строк, мы считаем, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashCaseInsensitiveUTF8
Разделяет строку UTF-8 на n-граммы размером ngramsize
символов и вычисляет хэш-значения для каждой n-граммы. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Возвращает кортеж с этими хэшами. Не чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хэшей одинаков для обеих строк, мы считаем, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashArg
Разделяет строку ASCII на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хэшами, рассчитанными функцией ngramMinHash с теми же входными данными. Чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
- Кортеж с двумя кортежами, каждый из которых содержит по
hashnum
n-грамм. Tuple(Tuple(String), Tuple(String)).
Пример
Запрос:
Результат:
ngramMinHashArgCaseInsensitive
Разделяет строку ASCII на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хэшами, рассчитанными функцией ngramMinHashCaseInsensitive с теми же входными данными. Не чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
- Кортеж с двумя кортежами, каждый из которых содержит по
hashnum
n-грамм. Tuple(Tuple(String), Tuple(String)).
Пример
Запрос:
Результат:
ngramMinHashArgUTF8
Разделяет строку UTF-8 на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хэшами, рассчитанными функцией ngramMinHashUTF8 с теми же входными данными. Чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
- Кортеж с двумя кортежами, каждый из которых содержит по
hashnum
n-грамм. Tuple(Tuple(String), Tuple(String)).
Пример
Запрос:
Результат:
ngramMinHashArgCaseInsensitiveUTF8
Разделяет строку UTF-8 на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хэшами, рассчитанными функцией ngramMinHashCaseInsensitiveUTF8 с теми же входными данными. Не чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
- Кортеж с двумя кортежами, каждый из которых содержит по
hashnum
n-грамм. Tuple(Tuple(String), Tuple(String)).
Пример
Запрос:
Результат:
wordShingleMinHash
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и вычисляет хэш-значения для каждого слова шингла. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Возвращает кортеж с этими хэшами. Чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хэшей одинаков для обеих строк, мы считаем, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashCaseInsensitive
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и вычисляет хэш-значения для каждого слова шингла. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Возвращает кортеж с этими хэшами. Не чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хэшей одинаков для обеих строк, мы считаем, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и вычисляет хэш-значения для каждого слова шингла. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Возвращает кортеж с этими хэшами. Чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хэшей одинаков для обеих строк, мы считаем, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashCaseInsensitiveUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и вычисляет хэш-значения для каждого слова шингла. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Возвращает кортеж с этими хэшами. Не чувствителен к регистру.
Может использоваться для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хэшей одинаков для обеих строк, мы считаем, что эти строки совпадают.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashArg
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хэшами, рассчитанными функцией wordshingleMinHash с теми же входными данными. Чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
- Кортеж с двумя кортежами, каждый из которых содержит по
hashnum
слов шинглов. Tuple(Tuple(String), Tuple(String)).
Пример
Запрос:
Результат:
wordShingleMinHashArgCaseInsensitive
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хэшами, рассчитанными функцией wordShingleMinHashCaseInsensitive с теми же входными данными. Не чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
- Кортеж с двумя кортежами, каждый из которых содержит по
hashnum
слов шинглов. Tuple(Tuple(String), Tuple(String)).
Пример
Запрос:
Результат:
wordShingleMinHashArgUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хэшами, рассчитанными функцией wordShingleMinHashUTF8 с теми же входными данными. Чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
- Кортеж с двумя кортежами, каждый из которых содержит по
hashnum
слов шинглов. Tuple(Tuple(String), Tuple(String)).
Пример
Запрос:
Результат:
wordShingleMinHashArgCaseInsensitiveUTF8
Разделяет строку UTF-8 на части (шинглы) по shinglesize
слов и возвращает шинглы с минимальными и максимальными хешами слов, рассчитанными с помощью функции wordShingleMinHashCaseInsensitiveUTF8 с тем же вводом. Регистронезависимая.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер шингла слова. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
sqidEncode
Кодирует числа в Sqid, который представляет собой строку ID, подобную YouTube.
Выходной алфавит: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
.
Не используйте эту функцию для хеширования - сгенерированные идентификаторы могут быть декодированы обратно в оригинальные числа.
Синтаксис
Псевдоним: sqid
Аргументы
- Произвольное количество чисел UInt8, UInt16, UInt32 или UInt64.
Возвращаемое значение
Строка sqid String.
Пример
sqidDecode
Декодирует Sqid обратно в оригинальные числа. Возвращает пустой массив, если входная строка не является действительным sqid.
Синтаксис
Аргументы
- Sqid - String
Возвращаемое значение
Sqid, преобразованный в числа Array(UInt64).
Пример