Приведённая ниже документация сгенерирована на основе системной таблицы
system.functions.alphaTokens
Добавленный в: v1.1.0 Выделяет подстроки из последовательных байтов в диапазонахa-z и A-Z и возвращает массив этих подстрок.
Синтаксис
splitByAlpha
Аргументы
s— Строка, которую нужно разбить.Stringmax_substrings— Необязательно. Еслиmax_substrings > 0, количество возвращаемых подстрок будет не большеmax_substrings, в противном случае функция вернёт максимально возможное число подстрок.Int64
s. Array(String)
Примеры
Пример использования
Query
Response
arrayStringConcat
Добавленный в: v1.1.0 Объединяет строковые представления значений, перечисленных в массиве, используя указанный разделитель; это необязательный параметр, который по умолчанию равен пустой строке. Синтаксисarray_to_string
Аргументы
arr— Массив, элементы которого нужно объединить.Array(T)separator— Необязательный параметр. Строка-разделитель. По умолчанию — пустая строка.const String
String
Примеры
Пример использования
Query
Response
extractAllGroupsVertical
Добавленный в: v20.5.0 Находит все группы в строке с помощью регулярного выражения и возвращает массив массивов, в котором каждый массив содержит совпавшие фрагменты из всех групп, сгруппированные по порядку их появления во входной строке. СинтаксисextractAllGroups
Аргументы
s— Входная строка, из которой нужно выполнить извлечение.StringилиFixedStringregexp— Регулярное выражение для поиска совпадений.const Stringилиconst FixedString
Array(Array(String))
Примеры
Пример использования
Query
Response
naiveBayesNgrams
Добавленный в: v26.7.0 Разбивает текст на n-граммы, используя ту же токенизацию, что и словарь Naive Bayes (структураNAIVE_BAYES): режим byte, codepoint или token, с необязательным дополнением границ. Используйте эту функцию, чтобы построить предагрегированные обучающие данные (ngram, class_id, count), которые использует такой словарь, — так обучающие n-граммы будут в точности совпадать с тем, что naiveBayesClassifier создаёт при выполнении запроса.
Синтаксис
text— Текст для разбиения на n-граммы.Stringn— Размер n-граммы, от 1 до 1024.const UIntmode— Режим токенизации: ‘byte’, ‘codepoint’ или ‘token’.const Stringstart_token— Необязательно. Граничный токен, добавляемый в начало входного текста (n-1) раз; число для ‘byte’/‘codepoint’, литерал для ‘token’. Пустое значение означает отсутствие дополнения.const Stringend_token— Необязательно. Граничный токен, добавляемый в конец входного текста (n-1) раз.const String
Array(String)
Примеры
Биграммы токенов
Query
Response
Query
Response
Query
Response
Query
Response
ngrams
Добавленный в: v21.11.0 Разбивает строку в кодировке UTF-8 на n-граммы длинойN.
Синтаксис
s— Входная строка.StringилиFixedStringN— Длина n-граммы.const UInt8/16/32/64
Array(String)
Примеры
Пример использования
Query
Response
reverseBySeparator
Добавленный в: v26.2.0 Меняет порядок подстрок в строке, разделённых указанным разделителем, на обратный. Эта функция разбивает строку по разделителю, обращает порядок получившихся частей и снова объединяет их с помощью того же разделителя. Это полезно при разборе доменных имён, путей к файлам и других иерархических данных, когда нужно обратить порядок компонентов. Примеры:- reverseBySeparator(‘www.google.com’) returns ‘com.google.www’
- reverseBySeparator(‘a/b/c’, ’/’) returns ‘c/b/a’
- reverseBySeparator(‘x::y::z’, ’::’) returns ‘z::y::x’
string— Входная строка, порядок частей которой нужно обратить.Stringseparator— Строка-разделитель, используемая для выделения частей. Если не указана, используется ’.’ (точка). По умолчанию: ’.’String
String
Примеры
Базовое реверсирование домена
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
splitByChar
Добавленный в: v1.1.0 Разбивает строку по указанному постоянному разделителюseparator, представляющему собой строку длиной ровно в один символ, на массив подстрок.
Пустые подстроки могут появляться, если разделитель находится в начале или в конце строки, либо если подряд встречается несколько разделителей.
Настройка
splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, будет ли оставшаясяся часть строки включена в последний элемент результирующего массива, если аргумент max_substrings > 0.- Разделитель находится в начале или в конце строки
- Подряд встречается несколько разделителей
- Исходная строка
sпуста
separator— Разделитель должен быть однобайтовым символом.Strings— Строка, которую нужно разделить.Stringmax_substrings— Необязательно. Еслиmax_substrings > 0, возвращаемый массив будет содержать не болееmax_substringsподстрок; в противном случае функция вернет максимально возможное количество подстрок. Значение по умолчанию —0.Int64
Array(String)
Примеры
Пример использования
Query
Response
splitByNonAlpha
Добавленный в: v21.9.0 Разбивает строку по пробельным символам и знакам пунктуации на массив подстрок.Настройка
splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, включается ли оставшаяся часть строки в последний элемент результирующего массива, если аргумент max_substrings > 0.s— Строка, которую нужно разделить.Stringmax_substrings— Необязательно. Еслиmax_substrings > 0, число возвращаемых подстрок не превыситmax_substrings, в противном случае функция вернет максимально возможное количество подстрок. Значение по умолчанию:0.Int64
s. Array(String)
Примеры
Пример использования
Query
Response
splitByRegexp
Добавленный в: v21.6.0 Разбивает строку по заданному регулярному выражению на массив подстрок. Если заданное регулярное выражение пустое, строка будет разбита на массив отдельных символов. Если для регулярного выражения не найдено ни одного совпадения, строка не будет разбита. Пустые подстроки могут появляться в следующих случаях:- совпадение непустого регулярного выражения находится в начале или в конце строки
- есть несколько последовательных совпадений непустого регулярного выражения
- исходная строка пуста, а регулярное выражение не пусто.
Настройка
splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, будет ли оставшаяся часть строки включена в последний элемент результирующего массива, если argument max_substrings > 0.regexp— Регулярное выражение. Константа.StringилиFixedStrings— Строка, которую нужно разделить.Stringmax_substrings— Необязательно. Еслиmax_substrings > 0, количество возвращаемых подстрок не будет превышатьmax_substrings, в противном случае функция вернёт столько подстрок, сколько возможно. Значение по умолчанию:0.Int64
s. Array(String)
Примеры
Пример использования
Query
Response
Query
Response
splitByString
Добавленный в: v1.1.0 Разбивает строку на массив подстрок, используя в качестве постоянногоseparator последовательность из нескольких символов.
Если строка separator пуста, строка s разбивается на массив отдельных символов.
Пустые подстроки могут появляться в следующих случаях:
- Непустой разделитель находится в начале или в конце строки
- Идут подряд несколько непустых разделителей
- Исходная строка
sпуста, а разделитель непустой
Настройка
splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, включается ли оставшаяся часть строки в последний элемент результирующего массива, если аргумент max_substrings > 0.separator— Разделитель.Strings— Строка, которую нужно разделить.Stringmax_substrings— Необязательный параметр. Еслиmax_substrings > 0, число возвращаемых подстрок не будет превышатьmax_substrings; в противном случае функция вернёт максимально возможное число подстрок. Значение по умолчанию:0.Int64
s Array(String)
Примеры
Пример использования
Query
Response
Query
Response
splitByWhitespace
Добавленный в: v21.9.0 Разбивает строку, разделённую пробельными символами, на массив подстрок.Настройка
splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, будет ли оставшаяся часть строки включена в последний элемент результирующего массива, если аргумент max_substrings > 0.s— Строка, которую нужно разделить.Stringmax_substrings— Необязательно. Еслиmax_substrings > 0, количество возвращаемых подстрок не будет превышатьmax_substrings, в противном случае функция вернет максимально возможное количество подстрок. Значение по умолчанию:0.Int64
s. Array(String)
Примеры
Пример использования
Query
Response
tokens
Добавленный в: v21.11.0 Разбивает строку на токены с помощью указанного токенизатора. Доступные токенизаторы:splitByNonAlphaразбивает строки по неалфавитно-цифровым ASCII-символам (см. также функцию splitByNonAlpha).splitByString(S)разбивает строки по заданным пользователем строкам-разделителямS(см. также функцию splitByString). Разделители можно указать с помощью необязательного параметра, например,tokens(value, 'splitByString', [', ', '; ', '\n', '\\']). Обратите внимание, что каждая строка может состоять из нескольких символов (', 'в примере). Если список разделителей явно не задан, по умолчанию используется один пробельный символ[' '].splitByRegexp(regexp[, match_tokens])разбивает строки согласно заданному пользователем регулярному выражениюregexp. Регулярное выражение обязательно, например,tokens(value, 'splitByRegexp', '[^\p{L}\p{N}#+]+'). Если необязательный аргументmatch_tokensоставлен со значением по умолчанию (false; также допускаются0/1),regexpявляется разделителем (см. также функцию splitByRegexp). Приmatch_tokens = trueвместо этого выполняется прямое сопоставление сregexp: каждое совпадение даёт не более одного токена — свою первую группу захвата либо всё совпадение целиком, если вregexpнет групп захвата, — а всё, что находится вне совпадений, отбрасывается; например,tokens('tag:hello tag:world', 'splitByRegexp', 'tag:(\w+)', true)возвращает['hello', 'world'].asciiCJKразбивает строки на токены, используя правила границ слов Unicode (аналогично UAX #29). ASCII-буквенно-цифровые символы и символы подчёркивания образуют токены с соединителями (:для букв,.и'для символов одного типа). Символы Unicode вне ASCII становятся односимвольными токенами.chineseсегментирует китайский текст на слова с помощью словаря и скрытой марковской модели (алгоритм основан на jieba; встроенные данные словаря и модели взяты из cppjieba). В отличие отasciiCJK, который рассматривает каждый символ вне ASCII как односимвольный токен,chineseгруппирует последовательные китайские символы в слова, что даёт более содержательные токены и повышает качество поиска по китайскому тексту. Необязательный аргументgranularityпринимает значениеcoarse_grained(по умолчанию) илиfine_grained; последнее дополнительно перечисляет перекрывающиеся подслова, повышая полноту поиска за счёт увеличения индекса.icu(locale)разбивает строки на токены-слова с помощью сегментации слов Unicode (UAX #29) из библиотеки ICU. Для письменностей без пробелов между словами (например, китайской, японской и тайской) ICU применяет сегментацию на основе словаря, поэтому такой текст разбивается на значимые слова.locale— это локаль ICU, передаваемая сегментатору (сегментация в основном определяется письменностью и словарём; локаль выбирает специфичные для локали настройки ICU); этот параметр обязателен и передаётся как отдельный аргумент, напримерtokens(value, 'icu', 'ja').japaneseразбивает японский текст на слова с помощью морфологического анализатора MeCab. Требует словаря, настроенного в конфигурации сервера (см. документацию по текстовому индексу).ngrams(N)разбивает строки наN-граммы одинаковой длины (см. также функцию ngrams). Длину n-граммы можно указать с помощью необязательного целочисленного параметра от 1 до 8, например,tokens(value, 'ngrams', 3). Если размер n-граммы явно не задан, по умолчанию используется 3.sparseGrams(min_length, max_length, min_cutoff_length)разбивает строки на n-граммы переменной длины: не менееmin_lengthи не болееmax_lengthсимволов включительно (см. также функцию sparseGrams). Если не указано иное, значенияmin_lengthиmax_lengthпо умолчанию равны 3 и 100. Если передан параметрmin_cutoff_length, возвращаются только n-граммы длиной не меньшеmin_cutoff_length. По сравнению сngrams(N), токенизаторsparseGramsсоздаёт N-граммы переменной длины, что позволяет гибче представлять исходный текст. Например,tokens(value, 'sparseGrams', 3, 5, 4)внутренне генерирует из входной строки 3-, 4- и 5-граммы, но возвращаются только 4- и 5-граммы.arrayне выполняет токенизацию, то есть каждое значение в строке является токеном (см. также функцию array). Для совместимости с другими системамиkeywordдоступен как псевдонимarray.
splitByString токены не образуют префиксный код, вероятно, следует отдавать предпочтение более длинным разделителям при сопоставлении.
Для этого передавайте разделители в порядке убывания длины.
Например, при separators = ['%21', '%'] строка %21abc будет токенизирована как ['abc'], тогда как при separators = ['%', '%21'] результатом токенизации будет ['21ac'] (что, вероятно, не соответствует ожидаемому результату).
Синтаксис
value— Входная строка.StringилиFixedStringtokenizer— Используемый токенизатор. Допустимые аргументы:splitByNonAlpha,splitByString,splitByRegexp,asciiCJK,chinese,icu,japanese,ngrams,sparseGramsиarray. Необязательный параметр; если явно не задан, по умолчанию используетсяsplitByNonAlpha.const Stringlocale— Имеет значение только в том случае, если аргументtokenizerравенicu: обязательная локаль, например'ja'.const Stringn— Имеет значение только в том случае, если аргументtokenizerравенngrams: необязательный параметр, определяющий длину n-грамм. Если явно не задан, по умолчанию используется3.const UInt8separators— Имеет значение только в том случае, если аргументtokenizerравенsplit: необязательный параметр, определяющий строки-разделители. Если явно не задан, по умолчанию используется[' '].const Array(String)regexp— Имеет значение только в том случае, если аргументtokenizerравенsplitByRegexp: обязательный параметр, определяющий регулярное выражение.const Stringmatch_tokens— Имеет значение только в том случае, если аргументtokenizerравенsplitByRegexp: необязательный параметр. Еслиfalse(по умолчанию),regexpявляется разделителем (разбиение выполняется как в функцииsplitByRegexp). Еслиtrue,regexpсопоставляется напрямую, и каждое совпадение даёт в качестве токена свою первую группу захвата (или всё совпадение, если вregexpгрупп нет).const Boolmin_length— Имеет значение только в том случае, если аргументtokenizerравенsparseGrams: необязательный параметр, определяющий минимальную длину граммы; значение по умолчанию — 3.const UInt8max_length— Имеет значение только в том случае, если аргументtokenizerравенsparseGrams: необязательный параметр, определяющий максимальную длину граммы; значение по умолчанию — 100.const UInt8min_cutoff_length— Имеет значение только в том случае, если аргументtokenizerравенsparseGrams: необязательный параметр, определяющий минимальную длину отсечения.const UInt8granularity— Имеет значение только в том случае, если аргументtokenizerравенchinese: необязательный параметр —coarse_grained(по умолчанию) илиfine_grained, — управляющий детализацией сегментации.const String
Array
Примеры
Токенизатор по умолчанию
Query
Response
Query
Response
Query
Response
tokensForLikePattern
Добавленный в: v26.3.0 Разбивает строку шаблона LIKE на токены с помощью указанного токенизатора. В отличие от функцииtokens, эта функция учитывает семантику шаблонов LIKE
(например, подстановочные символы в начале и в конце) и применяет правила,
специфичные для токенизатора, чтобы выделять значимые токены для сопоставления с шаблоном.
Она поддерживает те же наборы аргументов, что и функция tokens, но с некоторыми
исключениями: токенизаторы chinese и icu здесь не поддерживаются.
Токенизация шаблонов LIKE имеет смысл только для токенизаторов, которые
явно поддерживают семантику LIKE (supportsStringLike()). Вызов
tokensForLikePattern с неподдерживаемым токенизатором генерирует исключение BAD_ARGUMENTS;
вместо этого используйте обычную функцию tokens.
Дополнительные аргументы после tokenizer интерпретируются в соответствии с выбранным
токенизатором (например, n для ngrams, separators для
splitByString и min_length / max_length [/ min_cutoff_length]
для sparseGrams).
Эта функция в первую очередь предназначена для отладки и тестирования
и используется внутри системы для анализа поведения токенизации шаблонов LIKE.
Синтаксис
value— Входная строка.StringилиFixedStringtokenizer— Используемый токенизатор. Допустимые аргументы:splitByNonAlpha,splitByString,asciiCJK,ngrams,sparseGramsиarray. Необязательный параметр; если он не задан явно, по умолчанию используетсяsplitByNonAlpha.const Stringn— Актуально только для аргументаtokenizerсо значениемngrams: необязательный параметр, определяющий длину n-грамм. Если он не задан явно, по умолчанию используется3.const UInt8separators— Актуально только для аргументаtokenizerсо значениемsplit: необязательный параметр, определяющий строки-разделители. Если он не задан явно, по умолчанию используется[' '].const Array(String)min_length— Актуально только для аргументаtokenizerсо значениемsparseGrams: необязательный параметр, определяющий минимальную длину граммы; по умолчанию — 3.const UInt8max_length— Актуально только для аргументаtokenizerсо значениемsparseGrams: необязательный параметр, определяющий максимальную длину граммы; по умолчанию — 100.const UInt8min_cutoff_length— Актуально только для аргументаtokenizerсо значениемsparseGrams: необязательный параметр, определяющий минимальную длину отсечения.const UInt8
Array
Примеры
Токенизатор по умолчанию
Query
Response