Хэш-функции
Хэш-функции могут использоваться для детерминистического псевдослучайного перемешивания элементов.
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-складывания выполняется до 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 и 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 с библиотекой Rust BLAKE3. Функция довольно быстрая и показывает производительность примерно в два раза быстрее, чем 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. Чем меньше дистанция Хэмминга между рассчитанными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHash
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает хеш шингла слова simhash
. Учитывает регистр.
Может быть использовано для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше дистанция Хэмминга между рассчитанными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова-шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashCaseInsensitive
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает хеш шингла слова simhash
. Без учета регистра.
Может быть использовано для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше дистанция Хэмминга между рассчитанными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова-шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает хеш шингла слова simhash
. Учитывает регистр.
Может быть использовано для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше дистанция Хэмминга между рассчитанными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова-шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashCaseInsensitiveUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает хеш шингла слова simhash
. Без учета регистра.
Может быть использовано для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше дистанция Хэмминга между рассчитанными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
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.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashArgCaseInsensitive
Разделяет строку ASCII на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, рассчитанными с помощью функции ngramMinHashCaseInsensitive с такими же входными данными. Без учета регистра.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashArgUTF8
Разделяет строку UTF-8 на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, рассчитанными с помощью функции ngramMinHashUTF8 с такими же входными данными. Учитывает регистр.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashArgCaseInsensitiveUTF8
Разделяет строку UTF-8 на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, рассчитанными с помощью функции ngramMinHashCaseInsensitiveUTF8 с такими же входными данными. Без учета регистра.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
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.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashArgCaseInsensitive
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хешами слов, рассчитанными с помощью функции wordShingleMinHashCaseInsensitive с такими же входными данными. Без учета регистра.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова-шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashArgUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хешами слов, рассчитанными с помощью функции wordShingleMinHashUTF8 с такими же входными данными. Учитывает регистр.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова-шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashArgCaseInsensitiveUTF8
Разделяет строку UTF-8 на части (шинги) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хэшами слов, вычисленными с помощью функции wordShingleMinHashCaseInsensitiveUTF8 с теми же входными данными. Не учитывает регистр.
Синтаксис
Аргументы
string
— Строка. Строка.shinglesize
— Размер шинга. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
- Кортеж с двумя кортежами, каждый из которых содержит
hashnum
шинглов слов. Кортеж(Кортеж(Строка), Кортеж(Строка)).
Пример
Запрос:
Результат:
sqidEncode
Кодирует числа в Sqid, который представляет собой строку ID, подобную YouTube.
Выходной алфавит: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
.
Не используйте эту функцию для хеширования — сгенерированные ID можно декодировать обратно в исходные числа.
Синтаксис
Псевдоним: sqid
Аргументы
- Переменное количество чисел типа UInt8, UInt16, UInt32 или UInt64.
Возвращаемое значение
Sqid Строка.
Пример
sqidDecode
Декодирует Sqid обратно в исходные числа. Возвращает пустой массив, если входная строка не является допустимым sqid.
Синтаксис
Аргументы
- Sqid - Строка
Возвращаемое значение
Sqid, преобразованный в числа Массив(UInt64).
Пример
keccak256
Вычисляет хэш-строку Keccak-256 и возвращает полученный набор байтов в формате FixedString.
Синтаксис
Эта криптографическая хэш-функция широко используется в EVM-ориентированных блокчейнах.
Аргументы
- s - входная строка для вычисления хэша Keccak-256. Строка.
Возвращаемое значение
- Хэш Keccak-256 в виде массива байтов с типом FixedString(32). FixedString.
Пример
Используйте функцию hex, чтобы отформатировать результат в виде шестнадцатеричной закодированной строки.
Запрос:
Результат: