문자열 분리·병합 함수
문자열 분리·병합 함수 (Splitting, Merging Functions)
문자열을 구분자·정규식·토크나이저로 분리하거나, 배열 요소를 문자열로 병합하는 함수들이에요. n-gram 생성, 네이브 베이즈 토큰화, LIKE 패턴 토큰화 같은 고급 기능도 포함해요.
출처: 문서
본문
참고: 아래 문서는
system.functions시스템 테이블에서 생성된 것이에요.
alphaTokens
도입: v1.1.0
a-z와 A-Z 범위의 연속된 바이트 하위 문자열을 선택하고, 선택된 하위 문자열의 배열을 반환해요.
구문 (Syntax)
alphaTokens(s[, max_substrings])
별칭 (Aliases): splitByAlpha
인자 (Arguments)
s— 분리할 문자열.Stringmax_substrings— 선택 사항.max_substrings > 0이면 반환되는 하위 문자열 수가max_substrings를 넘지 않고, 그렇지 않으면 가능한 한 많이 반환해요.Int64
반환 값 (Returned value)
s의 선택된 하위 문자열 배열. Array(String)
예시 (Examples)
SELECT alphaTokens('abca1abc');
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc'] │
└─────────────────────────┘
arrayStringConcat
도입: v1.1.0
배열에 나열된 값의 문자열 표현을 제공된 구분자로 연결해요. 선택 사항 매개변수로 기본값은 빈 문자열이에요.
구문 (Syntax)
arrayStringConcat(arr[, separator])
별칭 (Aliases): array_to_string
인자 (Arguments)
arr— 연결할 배열.Array(T)separator— 선택 사항. 구분 문자열. 기본은 빈 문자열.const String
반환 값 (Returned value)
연결된 문자열. String
예시 (Examples)
SELECT arrayStringConcat(['12/05/2021', '12:50:00'], ' ') AS DateString;
┌─DateString──────────┐
│ 12/05/2021 12:50:00 │
└─────────────────────┘
extractAllGroupsVertical
도입: v20.5.0
정규식을 사용해 문자열의 모든 그룹을 매치시키고, 각 배열이 입력 문자열에 나타난 순서대로 모든 그룹의 매치 조각을 담는 배열의 배열을 반환해요.
구문 (Syntax)
extractAllGroupsVertical(s, regexp)
별칭 (Aliases): extractAllGroups
인자 (Arguments)
s— 추출할 입력 문자열.String또는FixedStringregexp— 매치할 정규식.const String또는const FixedString
반환 값 (Returned value)
배열의 배열을 반환해요. 각 내부 배열은 한 번의 매치에서 캡처된 그룹을 담아요. 각 매치는 정규식의 캡처 그룹(그룹 1, 그룹 2 등)에 대응하는 요소들을 가진 배열을 생성해요. 매치를 찾지 못하면 빈 배열을 반환해요. Array(Array(String))
예시 (Examples)
WITH '< Server: nginx
< Date: Tue, 22 Jan 2019 00:26:14 GMT
< Content-Type: text/html; charset=UTF-8
< Connection: keep-alive
' AS s
SELECT extractAllGroupsVertical(s, '< ([\\w\\-]+): ([^\\r\\n]+)');
[['Server','nginx'],['Date','Tue, 22 Jan 2019 00:26:14 GMT'],['Content-Type','text/html; charset=UTF-8'],['Connection','keep-alive']]
naiveBayesNgrams
도입: v26.7.0
네이브 베이즈 사전과 같은 토큰화(NAIVE_BAYES 레이아웃)를 사용해 텍스트를 n-gram으로 분리해요: byte, codepoint, token 모드, 선택적 경계 패딩. 이를 사용해 그러한 사전이 소비하는 사전 집계된 (ngram, class_id, count) 훈련 데이터를 구성해서, 훈련 n-gram이 naiveBayesClassifier가 쿼리 시점에 만드는 것과 정확히 일치하게 할 수 있어요.
구문 (Syntax)
naiveBayesNgrams(text, n, mode[, start_token, end_token])
인자 (Arguments)
text— n-gram으로 분리할 텍스트.Stringn— n-gram 크기, 1에서 1024까지.const UIntmode— 토큰화 모드:'byte','codepoint','token'.const Stringstart_token— 선택 사항. 입력 앞에 (n-1)번 추가되는 경계 토큰.'byte'/'codepoint'에서는 숫자,'token'에서는 리터럴. 비어 있으면 패딩 없음.const Stringend_token— 선택 사항. 입력 뒤에 (n-1)번 추가되는 경계 토큰.const String
반환 값 (Returned value)
입력 텍스트의 n-gram. Array(String)
예시 (Examples)
토큰 바이그램
SELECT naiveBayesNgrams('the cat sat', 2, 'token');
['the cat','cat sat']
경계 패딩이 있는 토큰 바이그램
SELECT naiveBayesNgrams('cat', 2, 'token', '<s>', '</s>');
['<s> cat','cat </s>']
경계 패딩이 있는 바이트 바이그램(결과는 hex로 표시)
SELECT arrayMap(x -> hex(x), naiveBayesNgrams('xy', 2, 'byte', '0x01', '0xFF'));
['0178','7879','79FF']
경계 패딩이 있는 코드포인트 바이그램(결과는 hex로 표시)
SELECT arrayMap(x -> hex(x), naiveBayesNgrams('ab', 2, 'codepoint', '0x10FFFE', '0x10FFFF'));
['F48FBFBE61','6162','62F48FBFBF']
ngrams
도입: v21.11.0
UTF-8 문자열을 길이 N의 n-gram으로 분리해요.
구문 (Syntax)
ngrams(s, N)
인자 (Arguments)
s— 입력 문자열.String또는FixedStringN— n-gram 길이.const UInt8/16/32/64
반환 값 (Returned value)
n-gram이 담긴 배열. Array(String)
예시 (Examples)
SELECT ngrams('ClickHouse', 3);
['Cli','lic','ick','ckH','kHo','Hou','ous','use']
reverseBySeparator
도입: v26.2.0
지정된 구분자로 구분된 문자열에서 하위 문자열의 순서를 뒤집어요. 이 함수는 문자열을 구분자로 분리하고, 결과 부분들의 순서를 뒤집은 다음 같은 구분자로 다시 이어 붙여요. 도메인 이름, 파일 경로 또는 컴포넌트 순서를 뒤집어야 하는 다른 계층적 데이터를 파싱할 때 유용해요.
예시:
- reverseBySeparator(‘www.google.com’)은 ‘com.google.www’를 반환해요
- reverseBySeparator(‘a/b/c’, ’/’)은 ‘c/b/a’를 반환해요
- reverseBySeparator(‘x::y::z’, ’::’)은 ‘z::y::x’를 반환해요
구문 (Syntax)
reverseBySeparator(string[, separator])
인자 (Arguments)
string— 부분들의 순서를 뒤집을 입력 문자열.Stringseparator— 부분을 식별하는 구분 문자열. 제공하지 않으면'.'(점)을 사용해요. 기본값:'.'.String
반환 값 (Returned value)
원래 문자열의 부분들이 오른쪽에서 왼쪽 순서로 배치되고 같은 구분자로 이어진 문자열. String
예시 (Examples)
기본 도메인 뒤집기
SELECT reverseBySeparator('www.google.com')
com.google.www
경로 뒤집기
SELECT reverseBySeparator('a/b/c', '/')
c/b/a
사용자 지정 구분자
SELECT reverseBySeparator('x::y::z', '::')
z::y::x
점이 있는 경계 케이스
SELECT reverseBySeparator('.a.b.', '.')
.b.a.
단일 요소
SELECT reverseBySeparator('single')
single
빈 구분자
SELECT reverseBySeparator('abcde', '')
edcba
splitByChar
도입: v1.1.0
정확히 한 문자로 이뤄진 지정된 상수 문자열 separator로 구분된 문자열을 하위 문자열 배열로 분리해요. 구분자가 문자열의 시작이나 끝에 나타나거나, 구분자가 여러 번 연속되면 빈 하위 문자열이 선택될 수 있어요.
참고: splitby_max_substrings_includes_remaining_string(기본값:
0) 설정은 인자max_substrings > 0일 때 나머지 문자열이 결과 배열의 마지막 요소에 포함되는지 제어해요.
빈 하위 문자열이 선택될 수 있는 경우:
- 구분자가 문자열의 시작 또는 끝에 나타나는 경우
- 구분자가 여러 번 연속되는 경우
- 원래 문자열
s가 빈 경우
구문 (Syntax)
splitByChar(separator, s[, max_substrings])
인자 (Arguments)
separator— 구분자는 반드시 1바이트 문자여야 해요.Strings— 분리할 문자열.Stringmax_substrings— 선택 사항.max_substrings > 0이면 반환 배열에max_substrings개 이하의 하위 문자열이 담기고, 그렇지 않으면 가능한 한 많이 반환해요. 기본값은0.Int64
반환 값 (Returned value)
선택된 하위 문자열의 배열. Array(String)
예시 (Examples)
SELECT splitByChar(',', '1,2,3,abcde');
┌─splitByChar(',', '1,2,3,abcde')─┐
│ ['1','2','3','abcde'] │
└─────────────────────────────────┘
splitByNonAlpha
도입: v21.9.0
공백과 구두점 문자로 구분된 문자열을 하위 문자열 배열로 분리해요.
참고: splitby_max_substrings_includes_remaining_string(기본값:
0) 설정은 인자max_substrings > 0일 때 나머지 문자열이 결과 배열의 마지막 요소에 포함되는지 제어해요.
구문 (Syntax)
splitByNonAlpha(s[, max_substrings])
인자 (Arguments)
s— 분리할 문자열.Stringmax_substrings— 선택 사항.max_substrings > 0이면 반환되는 하위 문자열 수가max_substrings를 넘지 않고, 그렇지 않으면 가능한 한 많이 반환해요. 기본값:0.Int64
반환 값 (Returned value)
s의 선택된 하위 문자열 배열. Array(String)
예시 (Examples)
SELECT splitByNonAlpha('[email protected]');
['user','domain','com']
splitByRegexp
도입: v21.6.0
제공된 정규식으로 구분된 문자열을 하위 문자열 배열로 분리해요. 제공된 정규식이 비어 있으면 문자열을 단일 문자 배열로 분리해요. 정규식 매치를 찾지 못하면 문자열은 분리되지 않아요.
빈 하위 문자열이 선택될 수 있는 경우:
- 비어 있지 않은 정규식 매치가 문자열의 시작 또는 끝에 발생하는 경우
- 비어 있지 않은 정규식 매치가 여러 번 연속되는 경우
- 정규식이 비어 있지 않은데 원래 문자열이 빈 경우
참고: splitby_max_substrings_includes_remaining_string(기본값:
0) 설정은 인자max_substrings > 0일 때 나머지 문자열이 결과 배열의 마지막 요소에 포함되는지 제어해요.
구문 (Syntax)
splitByRegexp(regexp, s[, max_substrings])
인자 (Arguments)
regexp— 정규식. 상수.String또는FixedStrings— 분리할 문자열.Stringmax_substrings— 선택 사항.max_substrings > 0이면 반환되는 하위 문자열 수가max_substrings를 넘지 않고, 그렇지 않으면 가능한 한 많이 반환해요. 기본값:0.Int64
반환 값 (Returned value)
s의 선택된 하위 문자열 배열. Array(String)
예시 (Examples)
SELECT splitByRegexp('\\d+', 'a12bc23de345f');
┌─splitByRegexp('\\d+', 'a12bc23de345f')─┐
│ ['a','bc','de','f'] │
└────────────────────────────────────────┘
빈 정규식
SELECT splitByRegexp('', 'abcde');
┌─splitByRegexp('', 'abcde')─┐
│ ['a','b','c','d','e'] │
└────────────────────────────┘
splitByString
도입: v1.1.0
여러 문자로 이뤄진 상수 separator로 구분된 문자열을 하위 문자열 배열로 분리해요. 문자열 separator가 비어 있으면 문자열 s를 단일 문자 배열로 분리해요.
빈 하위 문자열이 선택될 수 있는 경우:
- 비어 있지 않은 구분자가 문자열의 시작 또는 끝에 발생하는 경우
- 비어 있지 않은 구분자가 여러 번 연속되는 경우
- 구분자가 비어 있지 않은데 원래 문자열
s가 빈 경우
참고: splitby_max_substrings_includes_remaining_string(기본값:
0) 설정은 인자max_substrings > 0일 때 나머지 문자열이 결과 배열의 마지막 요소에 포함되는지 제어해요.
구문 (Syntax)
splitByString(separator, s[, max_substrings])
인자 (Arguments)
separator— 구분자.Strings— 분리할 문자열.Stringmax_substrings— 선택 사항.max_substrings > 0이면 반환되는 하위 문자열 수가max_substrings를 넘지 않고, 그렇지 않으면 가능한 한 많이 반환해요. 기본값:0.Int64
반환 값 (Returned value)
s의 선택된 하위 문자열 배열. Array(String)
예시 (Examples)
SELECT splitByString(', ', '1, 2 3, 4,5, abcde');
┌─splitByString(', ', '1, 2 3, 4,5, abcde')─┐
│ ['1','2 3','4,5','abcde'] │
└───────────────────────────────────────────┘
빈 구분자
SELECT splitByString('', 'abcde');
┌─splitByString('', 'abcde')─┐
│ ['a','b','c','d','e'] │
└────────────────────────────┘
splitByWhitespace
도입: v21.9.0
공백 문자로 구분된 문자열을 하위 문자열 배열로 분리해요.
참고: splitby_max_substrings_includes_remaining_string(기본값:
0) 설정은 인자max_substrings > 0일 때 나머지 문자열이 결과 배열의 마지막 요소에 포함되는지 제어해요.
구문 (Syntax)
splitByWhitespace(s[, max_substrings])
인자 (Arguments)
s— 분리할 문자열.Stringmax_substrings— 선택 사항.max_substrings > 0이면 반환되는 하위 문자열 수가max_substrings를 넘지 않고, 그렇지 않으면 가능한 한 많이 반환해요. 기본값:0.Int64
반환 값 (Returned value)
s의 선택된 하위 문자열 배열. Array(String)
예시 (Examples)
SELECT splitByWhitespace(' 1! a, b. ');
['1!','a,','b.']
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— 유니코드 단어 경계 규칙(UAX #29와 유사)으로 문자열을 분리해요. ASCII 알파뉴메릭 문자와 밑줄은 연결자(:는 문자용,.,'는 같은 타입의 문자용)로 토큰을 형성해요. 비-ASCII 유니코드 문자는 단일 문자 토큰이 돼요.chinese— 사전과 은닉 마르코프 모델을 사용해 중국어 텍스트를 단어로 분절해요(알고리즘은 jieba를 따르고, 내장 사전·모델 데이터는 cppjieba에서 파생). 모든 비-ASCII 문자를 단일 문자 토큰으로 취급하는asciiCJK와 달리,chinese는 연속된 중국어 문자를 단어로 묶어 중국어 텍스트에 대해 더 의미 있는 토큰과 더 높은 검색 품질을 제공해요. 선택 사항granularity인자는coarse_grained(기본값) 또는fine_grained중 하나예요. 후자는 겹치는 하위 단어를 추가로 나열해 인덱스가 커지는 대신 재현율(recall)을 높여요.icu(locale)— ICU 라이브러리의 유니코드 단어 분절(UAX #29)을 사용해 문자열을 단어 토큰으로 분리해요. 단어 사이에 공백이 없는 문자(예: 중국어, 일본어, 태국어)에는 ICU가 사전 기반 분절을 적용하므로 그런 텍스트는 의미 있는 단어로 분리돼요.locale은 분절기에 전달되는 ICU 로케일(분절은 주로 문자·사전 중심이며, 로케일은 ICU의 로케일 특화 맞춤을 선택)이며 필수이고 별도 인자로 전달돼요. 예:tokens(value, 'icu', 'ja').japanese— MeCab 형태소 분석기를 사용해 일본어 텍스트를 단어로 분리해요. 서버 설정에 사전이 구성되어 있어야 해요(텍스트 인덱스 문서 참조).ngrams(N)— 문자열을 크기가 같은N-gram으로 분리해요(ngrams 함수도 참조). n-gram 길이는 1~8 사이의 선택 사항 정수 매개변수로 지정할 수 있어요. 예:tokens(value, 'ngrams', 3). 명시적으로 지정하지 않으면 기본 n-gram 크기는 3이에요.sparseGrams(min_length, max_length, min_cutoff_length)— 문자열을min_length이상max_length이하(포함) 문자 길이의 가변 길이 n-gram으로 분리해요(sparseGrams 함수도 참조). 명시적으로 지정하지 않으면min_length와max_length는 3과 100이에요. 매개변수min_cutoff_length를 제공하면 길이가min_cutoff_length이상인 n-gram만 반환돼요.ngrams(N)과 비교해sparseGrams토크나이저는 가변 길이 N-gram을 만들어 원본 텍스트를 더 유연하게 표현할 수 있어요. 예:tokens(value, 'sparseGrams', 3, 5, 4)는 내부적으로 입력 문자열에서 3-, 4-, 5-gram을 생성하지만 4-gram과 5-gram만 반환해요.array— 토큰화를 수행하지 않아요. 즉 각 행 값이 토큰이에요(array 함수도 참조). 다른 시스템과의 호환을 위해array의 별칭으로keyword를 사용할 수 있어요.
splitByString 토크나이저의 경우, 토큰이 프리픽스 코드를 형성하지 않으면 더 긴 구분자가 먼저 매치되길 원할 거예요. 그러려면 구분자를 길이 내림차순으로 전달하세요. 예를 들어 구분자가 ['%21', '%']면 문자열 %21abc는 ['abc']로, 구분자가 ['%', '%21']면 ['21ac'](아마 원하지 않는 결과)로 토큰화돼요.
구문 (Syntax)
tokens(value) -- 'splitByNonAlpha' tokenizer
tokens(value, 'splitByNonAlpha')
tokens(value, 'splitByString'[, separators])
tokens(value, 'splitByRegexp', regexp[, match_tokens])
tokens(value, 'asciiCJK')
tokens(value, 'chinese'[, granularity])
tokens(value, 'icu', locale)
tokens(value, 'japanese')
tokens(value, 'ngrams'[, n])
tokens(value, 'sparseGrams'[, min_length, max_length[, min_cutoff_length]])
tokens(value, 'array')
인자 (Arguments)
value— 입력 문자열.String또는FixedStringtokenizer— 사용할 토크나이저. 유효한 인자는splitByNonAlpha,splitByString,splitByRegexp,asciiCJK,chinese,icu,japanese,ngrams,sparseGrams,array예요. 선택 사항이며 명시적으로 설정하지 않으면splitByNonAlpha로 기본 설정돼요.const Stringlocale— 인자tokenizer가icu일 때만 관련. 필수 로케일. 예:'ja'.const Stringn— 인자tokenizer가ngrams일 때만 관련. ngram 길이를 정의하는 선택 사항 매개변수. 명시적으로 설정하지 않으면3으로 기본 설정돼요.const UInt8separators— 인자tokenizer가split일 때만 관련. 구분 문자열을 정의하는 선택 사항 매개변수. 명시적으로 설정하지 않으면[' ']으로 기본 설정돼요.const Array(String)regexp— 인자tokenizer가splitByRegexp일 때만 관련. 정규식을 정의하는 필수 매개변수.const Stringmatch_tokens— 인자tokenizer가splitByRegexp일 때만 관련. 선택 사항 매개변수.false(기본값)면regexp는 구분자예요(splitByRegexp함수처럼 분리).true면regexp가 직접 매치되고 각 매치는 첫 번째 캡처 그룹(캡처 그룹이 없으면 전체 매치)을 토큰으로 기여해요.const Boolmin_length— 인자tokenizer가sparseGrams일 때만 관련. 최소 gram 길이를 정의하는 선택 사항 매개변수, 기본 3.const UInt8max_length— 인자tokenizer가sparseGrams일 때만 관련. 최대 gram 길이를 정의하는 선택 사항 매개변수, 기본 100.const UInt8min_cutoff_length— 인자tokenizer가sparseGrams일 때만 관련. 최소 컷오프 길이를 정의하는 선택 사항 매개변수.const UInt8granularity— 인자tokenizer가chinese일 때만 관련. 분절 세밀도를 제어하는 선택 사항 매개변수로coarse_grained(기본값) 또는fine_grained중 하나.const String
반환 값 (Returned value)
입력 문자열에서 나온 토큰 배열. Array
예시 (Examples)
기본 토크나이저
SELECT tokens('test1,;\\ test2,;\\ test3,;\\ test4') AS tokens;
['test1','test2','test3','test4']
Ngram 토크나이저
SELECT tokens('abc def', 'ngrams', 3) AS tokens;
['abc','bc ','c d',' de','def']
match_tokens가 있는 splitByRegexp 토크나이저
SELECT tokens('tag:hello tag:world', 'splitByRegexp', 'tag:(\w+)', true) AS tokens;
['hello','world']
tokensForLikePattern
도입: v26.3.0
LIKE 패턴 문자열을 지정된 토크나이저를 사용해 토큰으로 분리해요.
tokens 함수와 달리 이 함수는 LIKE 패턴 의미론(앞·뒤 와일드카드 문자 등)을 알고 있으며, 패턴 매칭에 의미 있는 토큰을 추출하기 위해 토크나이저별 규칙을 적용해요.
tokens 함수와 같은 인자 집합을 지원하되, 몇 가지 예외가 있어요: chinese와 icu 토크나이저는 여기서 지원되지 않아요. LIKE 패턴 토큰화는 명시적으로 LIKE 의미론(supportsStringLike())에 참여하는 토크나이저에만 의미가 있어요. 지원되지 않는 토크나이저로 tokensForLikePattern을 호출하면 BAD_ARGUMENTS가 발생하니, 그땐 일반 tokens를 사용하세요.
tokenizer 뒤의 추가 인자는 선택된 토크나이저에 따라 해석돼요(예: ngrams의 n, splitByString의 separators, sparseGrams의 min_length/max_length[/min_cutoff_length`]).
이 함수는 주로 디버깅·테스트 목적으로 만들어졌으며, 내부적으로 LIKE 패턴의 토큰화 동작을 분석하는 데 사용돼요.
구문 (Syntax)
tokensForLikePattern(value[, tokenizer[, tokenizer_specific_arguments...]])
인자 (Arguments)
value— 입력 문자열.String또는FixedStringtokenizer— 사용할 토크나이저. 유효한 인자는splitByNonAlpha,splitByString,asciiCJK,ngrams,sparseGrams,array예요. 선택 사항이며 명시적으로 설정하지 않으면splitByNonAlpha로 기본 설정돼요.const Stringn— 인자tokenizer가ngrams일 때만 관련. ngram 길이를 정의하는 선택 사항 매개변수. 명시적으로 설정하지 않으면3으로 기본 설정돼요.const UInt8separators— 인자tokenizer가split일 때만 관련. 구분 문자열을 정의하는 선택 사항 매개변수. 명시적으로 설정하지 않으면[' ']으로 기본 설정돼요.const Array(String)min_length— 인자tokenizer가sparseGrams일 때만 관련. 최소 gram 길이를 정의하는 선택 사항 매개변수, 기본 3.const UInt8max_length— 인자tokenizer가sparseGrams일 때만 관련. 최대 gram 길이를 정의하는 선택 사항 매개변수, 기본 100.const UInt8min_cutoff_length— 인자tokenizer가sparseGrams일 때만 관련. 최소 컷오프 길이를 정의하는 선택 사항 매개변수.const UInt8
반환 값 (Returned value)
입력 문자열에서 나온 토큰 배열. Array
예시 (Examples)
기본 토크나이저
SELECT tokensForLikePattern('%test1,test2,test3%') AS tokens;
['test2']