대소문자를 구분하지 않는 검색은 영어의 소문자-대문자 규칙을 따릅니다. 예를 들어 영어에서 대문자
i는
I이지만, 터키어에서는 İ입니다. 따라서 영어 이외의 언어에서는 예상과 다른 결과가 나올 수 있습니다.haystack이라고 함)과 검색 문자열(이 섹션에서는 needle이라고 함)이 모두 단일 바이트로 인코딩된 텍스트라고 가정합니다. 이 가정이
위반되어도 예외는 발생하지 않으며 결과는 정의되지 않습니다. UTF-8로 인코딩된 문자열 검색은 일반적으로 별도의 함수
변형으로 제공됩니다. 마찬가지로 UTF-8 함수 변형을 사용하더라도 입력 문자열이 UTF-8로 인코딩된 텍스트가 아니면 예외는 발생하지 않으며
결과는 정의되지 않습니다. 또한 자동 유니코드 정규화는 수행되지 않지만, 이를 위해
normalizeUTF8*() 함수를 사용할 수 있습니다.
일반 문자열 함수와 문자열 내 치환 함수는 별도로 설명합니다.
아래 문서는
system.functions 시스템 테이블에서 생성되었습니다.countMatches
버전별 동작 차이이 함수의 동작은 ClickHouse 버전에 따라 달라집니다.
- 버전 < v25.6에서는 패턴이 빈 문자열과 일치할 수 있더라도 첫 번째 빈 일치에서 개수 계산을 중단합니다.
- 버전 >= 25.6에서는 빈 일치가 발생해도 함수 실행을 계속합니다. 기존 동작은 설정
count_matches_stop_at_empty_match = true를 사용해 복원할 수 있습니다;
UInt64
예시
연속된 숫자 개수 세기
Query
Response
countMatchesCaseInsensitive
countMatches와 비슷하지만 대소문자를 구분하지 않고 일치를 수행합니다.
구문
haystack— 검색할 문자열입니다.Stringpattern— 정규식 패턴입니다.const String
UInt64
예시
대소문자를 구분하지 않고 개수 세기
Query
Response
countSubstrings
haystack에서 부분 문자열 needle이 나타나는 횟수를 반환합니다.
구문
haystack— 검색이 수행되는 문자열입니다. String 또는 Enum입니다. -needle— 검색할 부분 문자열입니다. String. -start_pos—haystack에서 검색을 시작할 위치(1부터 시작)입니다. UInt. 선택 사항입니다.
UInt64
예시
사용 예시
Query
Response
Query
Response
countSubstringsCaseInsensitive
countSubstrings와 같지만 대소문자를 구분하지 않고 개수를 셉니다.
구문
haystack— 검색이 수행되는 문자열입니다.String또는Enumneedle— 검색할 부분 문자열입니다.Stringstart_pos— 선택 사항입니다. 검색을 시작할haystack내 위치(1부터 시작)입니다.UInt*
haystack에서 needle가 나타나는 횟수를 반환합니다. UInt64
예시
사용 예시
Query
Response
Query
Response
countSubstringsCaseInsensitiveUTF8
countSubstrings와 동일하지만, 대소문자를 구분하지 않고 개수를 세며 haystack가 UTF-8 문자열이라고 가정합니다.
구문
haystack— 검색이 수행되는 UTF-8 문자열입니다.String또는Enumneedle— 검색할 부분 문자열입니다.Stringstart_pos— 선택 사항입니다.haystack에서 검색을 시작할 위치(1부터 시작)입니다.UInt*
haystack에서 needle이 나타나는 횟수를 반환합니다. UInt64
예시
사용 예시
Query
Response
Query
Response
extract
haystack— 추출할 문자열입니다.Stringpattern— 일반적으로 캡처 그룹을 포함하는 정규식입니다.const String
String
예시
이메일에서 도메인 추출
Query
Response
Query
Response
extractAll
extract와 비슷하지만, 문자열에서 정규식과 일치하는 모든 항목을 배열로 반환합니다.
‘haystack’이 ‘pattern’ 정규식과 일치하지 않으면 빈 배열을 반환합니다.
정규식에 캡처 그룹(하위 패턴)이 있으면, 이 함수는 입력 문자열에서 첫 번째 캡처 그룹과 일치하는 내용을 찾습니다.
구문
haystack— 조각을 추출할 원본 문자열입니다.Stringpattern— 필요에 따라 캡처 그룹을 포함할 수 있는 정규식입니다.const String
Array(String)
예시
모든 숫자 추출
Query
Response
Query
Response
extractAllGroupsHorizontal
s— 추출 대상 입력 문자열입니다.String또는FixedStringregexp— 매칭에 사용할 정규식입니다.const String또는const FixedString
Array(Array(String))
예시
사용 예시
Query
Response
extractGroups
extractAllGroupsHorizontal 또는 extractAllGroupsVertical을 사용하십시오.
구문
s— 추출할 대상 입력 문자열입니다.String또는FixedStringregexp— 정규식입니다. 캡처 그룹을 하나 이상 포함해야 합니다. 상수여야 합니다.const String또는const FixedString
1부터 N까지, 여기서 N은 regexp의 캡처 그룹 수)을 담은 배열을 반환합니다. 일치하는 항목이 없으면 빈 배열을 반환합니다. Array(String)
예시
사용 예시
Query
Response
hasAllTokens
hasAnyTokens와 유사하지만, needle 문자열 또는 배열의 모든 토큰이 input 문자열과 일치하면 1을, 그렇지 않으면 0을 반환합니다. input이 컬럼인 경우, 해당 조건을 만족하는 모든 행을 반환합니다.
최적의 성능을 위해 컬럼
input에는 텍스트 인덱스가 정의되어 있어야 합니다.
텍스트 인덱스가 정의되어 있지 않으면 함수는 브루트 포스(전체 스캔) 방식으로 컬럼을 스캔하며, 이는 인덱스 조회보다 훨씬 느립니다.input인수(항상), 그리고needle인수(String로 지정된 경우)는 텍스트 인덱스에 지정된 토크나이저를 사용해 처리됩니다. 컬럼에 텍스트 인덱스가 정의되어 있지 않으면 대신splitByNonAlpha토크나이저가 사용됩니다.needle인수가 Array(String) 타입이면 각 배열 요소가 토큰으로 간주되며, 추가 토큰화는 수행되지 않습니다.
hasAllToken
인수
input— 입력 컬럼.String또는FixedString또는Array(String)또는Array(FixedString)needles— 검색할 토큰.String또는Array(String)tokenizer— 사용할 토크나이저입니다. 유효한 인수는splitByNonAlpha,splitByString,asciiCJK,ngrams,sparseGrams,array입니다. 선택 사항이며, 명시적으로 설정하지 않으면 기본값으로splitByNonAlpha가 사용됩니다.const String
UInt8
예시
문자열 needle을 사용한 기본 사용법
Query
Response
Query
Response
tokens 함수를 사용하여 needle 생성
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasAnyTokens
needle 문자열 또는 배열의 토큰 중 하나 이상이 input 문자열과 일치하면 1을, 그렇지 않으면 0을 반환합니다. input이 컬럼인 경우 해당 조건을 만족하는 모든 행을 반환합니다.
최적의 성능을 위해 컬럼(column)
input에는 텍스트 인덱스(text index)가 정의되어 있어야 합니다.
텍스트 인덱스가 정의되어 있지 않으면 이 함수는 컬럼에 대해 브루트 포스(전체 스캔)를 수행하며, 이는 인덱스 조회보다 몇 자릿수나 더 느립니다.input인수(항상)와needle인수(String로 지정된 경우)는 텍스트 인덱스에 지정된 토크나이저를 사용해 처리합니다. 컬럼에 텍스트 인덱스가 정의되어 있지 않으면splitByNonAlpha토크나이저를 대신 사용합니다.needle인수가 Array(String) 타입이면 각 배열 요소를 토큰으로 간주하며, 추가 토큰화는 수행되지 않습니다.
hasAnyToken
인수
input— 입력 컬럼입니다.String또는FixedString또는Nullable(String)또는Nullable(FixedString)또는Array(String)또는Array(FixedString)또는Array(Nullable(String))또는Array(Nullable(FixedString))needles— 검색 대상 토큰입니다.String또는Array(String)tokenizer— 사용할 토크나이저입니다. 유효한 인수는splitByNonAlpha,splitByString,asciiCJK,ngrams,sparseGrams,array입니다. 선택 사항이며, 명시적으로 설정하지 않으면splitByNonAlpha가 기본값으로 사용됩니다.const String
1을, 없으면 0을 반환합니다. UInt8
예시
문자열 needle을 사용한 기본 사용법
Query
Response
Query
Response
tokens 함수를 사용하여 needle 생성
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasPhrase
input 인수와 phrase 인수를 모두 토큰화합니다.
토크나이저 인수는 splitByNonAlpha, splitByString, ngrams, asciiCJK 중 하나여야 합니다.
토크나이저를 지정하지 않으면 기본적으로 splitByNonAlpha 토크나이저를 사용합니다.
hasToken, hasAnyTokens, hasAllTokens와 달리 hasPhrase는 토큰이 같은 순서로 나타나야 하며,
그 사이에 다른 토큰이 끼어들어서는 안 됩니다. 예를 들어 hasPhrase('the quick brown fox', 'quick fox')는 0을 반환합니다.
이는 “quick”와 “fox” 사이에 “brown”이 있기 때문입니다.
구문
matchPhrase
인수
input— 입력 컬럼입니다.String또는FixedStringphrase— 검색할 구문입니다.const Stringtokenizer— 사용할 토크나이저입니다. 선택 사항이며, 기본값은splitByNonAlpha입니다.const String
1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
구문 일치
Query
Response
Query
Response
hasSubsequence
needle이 haystack의 부분 수열이면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
기본 부분 수열 확인
Query
Response
Query
Response
hasSubsequenceCaseInsensitive
hasSubsequence와 같지만 대소문자를 구분하지 않고 검색합니다.
구문
needle이 haystack의 부분 수열이면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
hasSubsequenceCaseInsensitiveUTF8
hasSubsequenceUTF8와 동일하지만 대소문자를 구분하지 않고 검색합니다.
구문
needle이 haystack의 부분 수열이면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
hasSubsequenceUTF8
hasSubsequence와 유사하지만, 검색 대상 문자열과 needle이 UTF-8로 인코딩된 문자열이라고 가정합니다.
구문
needle이 검색 대상 문자열의 부분수열이면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
Query
Response
hasToken
[0-9A-Za-z_](숫자, ASCII 문자, 밑줄)로 이루어진 가능한 가장 긴 부분 문자열로 정의됩니다.
구문
haystack— 검색 대상 문자열입니다.Stringtoken— 찾을 토큰입니다.const String
1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
토큰 검색
Query
Response
hasTokenCaseInsensitive
- 없음.
hasTokenCaseInsensitiveOrNull
- 없음.
hasTokenOrNull
hasToken과 비슷하지만, token 형식이 올바르지 않으면 NULL을 반환합니다.
구문
haystack— 검색 대상 문자열입니다. 상수여야 합니다.Stringtoken— 검색할 토큰입니다.const String
1, 찾지 못하면 0을 반환하며, 토큰 형식이 올바르지 않으면 NULL을 반환합니다. Nullable(UInt8)
예시
사용 예시
Query
Response
highlight
haystack— 검색 대상 텍스트입니다.String또는FixedStringneedles— 강조 표시할 검색어 배열입니다.const Array(String)open_tag— 각 일치 항목 앞에 삽입할 여는 태그입니다. 기본값:<em>.const Stringclose_tag— 각 일치 항목 뒤에 삽입할 닫는 태그입니다. 기본값:</em>.const String
String
예시
기본 강조
Query
Response
Query
Response
ilike
like와 같지만 대소문자를 구분하지 않고 검색합니다.
구문
haystack— 검색을 수행할 String입니다.String또는FixedStringpattern— 일치 여부를 판단할 LIKE 패턴입니다.String
1을, 그렇지 않으면 0을 반환합니다(대소문자를 구분하지 않음). UInt8
예시
사용 예시
Query
Response
like
haystack가 LIKE 표현식 pattern과 일치하는지 여부를 반환합니다.
LIKE 표현식에는 일반 문자와 다음 메타기호를 포함할 수 있습니다.
%는 임의 개수의 임의 문자(0개 포함)를 나타냅니다._는 임의의 단일 문자를 나타냅니다.\는 리터럴%,_,\를 이스케이프하는 데 사용됩니다.
_는 UTF-8에서 2바이트로 표현되는 유니코드 코드 포인트 ¥와 일치합니다.
haystack 또는 LIKE 표현식이 올바른 UTF-8이 아니면 동작은 정의되지 않습니다.
유니코드 정규화는 자동으로 수행되지 않으므로, 필요하면 normalizeUTF8* 함수를 사용할 수 있습니다.
리터럴 %, _, \(LIKE 메타문자)과 일치시키려면 앞에 백슬래시를 붙이십시오: \%, \_, \\.
백슬래시는 %, _, \가 아닌 다른 문자 앞에 오면 특별한 의미를 잃고(즉, 리터럴로 해석되고) 처리됩니다.
ClickHouse에서는 문자열 안의 백슬래시도 따옴표로 묶어야 하므로, 실제로는
\\%, \\_, \\\\라고 작성해야 합니다.%needle% 형태의 LIKE 표현식에서는 이 함수가 position 함수만큼 빠릅니다.
그 외의 모든 LIKE 표현식은 내부적으로 정규식으로 변환되며, match 함수와 비슷한 성능으로 실행됩니다.
구문
haystack— 검색할 문자열입니다.String또는FixedStringpattern— 매칭할LIKE패턴입니다.%(임의 개수의 문자와 일치),_(단일 문자와 일치), 이스케이프용\를 포함할 수 있습니다.String
LIKE 패턴과 일치하면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
Query
Response
Query
Response
locate
position과 같지만 인수 haystack와 locate의 순서만 서로 바뀝니다.
버전에 따라 달라지는 동작이 함수의 동작은 ClickHouse 버전에 따라 달라집니다.
- 버전 < v24.3에서는
locate가 함수position의 별칭이었으며, 인수(haystack, needle[, start_pos])를 받았습니다. - 버전 >= 24.3에서는
locate가 별도의 함수이며(MySQL과의 호환성을 높이기 위해), 인수(needle, haystack[, start_pos])를 받습니다. 이전 동작은 설정function_locate_has_mysql_compatible_argument_order = false를 사용해 복원할 수 있습니다.
needle— 검색할 부분 문자열입니다.Stringhaystack— 검색이 수행되는 문자열입니다.String또는Enumstart_pos— 선택 사항입니다.haystack에서 검색을 시작할 위치(1부터 시작)입니다.UInt
0을 반환합니다. UInt64
예시
기본 사용법
Query
Response
match
¥는 내부적으로 2바이트를 사용하지만, 매칭 시에는 단일 코드포인트로 처리됩니다.
정규식에는 NULL 바이트가 포함되어서는 안 됩니다.
haystack 또는 pattern이 올바른 UTF-8이 아니면 동작은 정의되지 않습니다.
re2의 기본 동작과 달리 .은 줄바꿈과도 일치합니다. 이를 비활성화하려면 패턴 앞에 (?-s)를 추가하십시오.
패턴은 앵커링되지 않습니다. 전체 문자열과 일치시키려면 ^와 $를 사용해 패턴에 직접 앵커를 지정하십시오.
부분 문자열을 검색하기만 하면 되는 경우에는 like 또는 position 함수를 대신 사용할 수 있으며, 이 함수들이 이 함수보다 훨씬 빠르게 동작합니다.
대체 연산자 구문: haystack REGEXP pattern.
구문
REGEXP_MATCHES
인수
haystack— 패턴을 검색할 문자열입니다.Stringpattern— 정규식 패턴입니다.const String
1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
기본 패턴 매칭
Query
Response
Query
Response
Query
Response
multiFuzzyMatchAllIndices
multiFuzzyMatchAny와 비슷하지만, 상수 편집 거리 내에서 입력 문자열과 일치하는 모든 인덱스의 배열을 임의의 순서로 반환합니다.
구문
haystack— 검색을 수행할String입니다.Stringdistance— 퍼지 매칭의 최대 편집 거리입니다.UInt8pattern— 일치 여부를 확인할 패턴의 배열입니다.Array(String)
검색 대상 문자열과 임의의 순서로 일치하는 모든 패턴의 인덱스(1부터 시작) 배열을 반환합니다. 일치하는 항목이 없으면 빈 배열을 반환합니다. Array(UInt64)
예시
사용 예시
Query
Response
multiFuzzyMatchAny
multiMatchAny와 유사하지만, 고정된 편집 거리 내에서 패턴 중 하나라도 검색 대상 문자열과 일치하면 1을 반환합니다.
이 함수는 hyperscan 라이브러리의 실험적 기능에 의존하므로, 일부 예외적인 경우에는 느릴 수 있습니다.
성능은 편집 거리 값과 사용된 패턴에 따라 달라지지만, 비퍼지 변형과 비교하면 항상 더 많은 비용이 듭니다.
hyperscan의 제한으로 인해
multiFuzzyMatch*() 함수 계열은 UTF-8 정규식을 지원하지 않습니다(UTF-8 정규식을 바이트 시퀀스로 처리합니다).haystack— 검색 대상 문자열입니다.Stringdistance— fuzzy matching의 최대 편집 거리입니다.UInt8pattern— 선택 사항입니다. 일치 여부를 확인할 패턴 배열입니다.Array(String)
검색 대상 문자열과 일치하면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
multiFuzzyMatchAnyIndex
multiFuzzyMatchAny와 비슷하지만, 고정된 편집 거리 내에서 검색 대상 문자열과 일치하는 임의의 인덱스를 반환합니다.
구문
haystack— 검색이 수행되는 String입니다.Stringdistance— 퍼지 매칭의 최대 편집 거리입니다.UInt8pattern— 매칭할 패턴의 배열입니다.Array(String)
haystack과 일치하는 패턴이 있으면 해당 패턴의 인덱스(1부터 시작)를 반환하고, 없으면 0을 반환합니다. UInt64
예시
사용 예시
Query
Response
multiMatchAllIndices
multiMatchAny와 비슷하지만, 검색 대상 문자열과 임의의 순서로 일치하는 모든 인덱스의 배열을 반환합니다.
구문
Array(UInt64)
예시
사용 예시
Query
Response
multiMatchAny
multiSearchAny 함수를 대신 사용할 수 있습니다. 이 함수가 훨씬 더 빠르게 동작합니다.
구문
haystack— 패턴을 검색할 대상String.Stringpattern1[, pattern2, ...]— 하나 이상의 정규식 패턴으로 구성된 배열.Array(String)
1, 그렇지 않으면 0을 반환합니다. UInt8
예시
여러 패턴 매칭
Query
Response
Query
Response
multiMatchAnyIndex
multiMatchAny와 비슷하지만, haystack에서 일치하는 임의의 인덱스를 반환합니다.
구문
haystack— 검색을 수행할 String입니다.Stringpattern— 매칭할 정규식입니다.Array(String)
UInt64
예시
사용 예시
Query
Response
multiSearchAllPositions
position과 유사하지만, haystack 문자열에서 여러 needle 부분 문자열의 위치(바이트 단위, 1부터 시작)를 배열로 반환합니다.
모든 multiSearch*() 함수는 최대 2^8개의 needle만 지원합니다.
구문
haystack— 검색을 수행할 String입니다.Stringneedle1[, needle2, ...]— 검색할 하나 이상의 부분 문자열로 이루어진 배열입니다.Array(String)
0을 반환합니다. Array(UInt64)
예시
여러 needle 검색
Query
Response
multiSearchAllPositionsCaseInsensitive
multiSearchAllPositions와 같지만 대소문자를 구분하지 않습니다.
구문
haystack— 검색을 수행할 haystack입니다.Stringneedle1[, needle2, ...]— 검색할 하나 이상의 부분 문자열로 이루어진 배열입니다.Array(String)
0을 반환합니다. Array(UInt64)
예시
대소문자를 구분하지 않는 다중 검색
Query
Response
multiSearchAllPositionsCaseInsensitiveUTF8
multiSearchAllPositionsUTF8와 같지만 대소문자를 구분하지 않습니다.
구문
haystack— 검색을 수행할 UTF-8 인코딩 문자열입니다.Stringneedle— 검색할 UTF-8 인코딩 needle입니다.Array(String)
Array
예시
대소문자를 구분하지 않는 UTF-8 검색
Query
Response
multiSearchAllPositionsUTF8
multiSearchAllPositions와 같지만 haystack과 needle 부분 문자열을 UTF-8로 인코딩된 문자열로 가정합니다.
구문
haystack— 검색이 수행되는 UTF-8 인코딩 문자열입니다.Stringneedle1[, needle2, ...]— 검색할 UTF-8 인코딩 부분 문자열의 배열입니다.Array(String)
0을 반환합니다. Array
예시
UTF-8 다중 검색
Query
Response
multiSearchAny
multiSearchAnyCaseInsensitive, multiSearchAnyUTF8 및 multiSearchAnyCaseInsensitiveUTF8는 이 함수의 대소문자를 구분하지 않는 변형 및/또는 UTF-8 변형을 제공합니다.
구문
haystack— 검색을 수행할 String입니다.Stringneedle1[, needle2, ...]— 검색할 하위 문자열의 배열입니다.Array(String)
1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
하나 이상 일치 검색
Query
Response
multiSearchAnyCaseInsensitive
haystack— 검색을 수행할String입니다.Stringneedle— 검색할 부분 문자열들입니다.Array(String)
1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
대소문자를 구분하지 않는 검색
Query
Response
multiSearchAnyCaseInsensitiveUTF8
haystack— 검색이 수행되는 UTF-8 문자열입니다.Stringneedle— 검색할 UTF-8 부분 문자열들입니다.Array(String)
1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
UTF-8 문자열 ‘Здравствуйте’가 주어졌을 때 소문자 ‘з’가 포함되어 있는지 확인합니다
Query
Response
multiSearchAnyUTF8
haystack과 needle 부분 문자열은 UTF-8로 인코딩된 문자열이라고 가정합니다.
구문
haystack— 검색이 수행되는 UTF-8 문자열입니다.Stringneedle— 검색할 UTF-8 부분 문자열들입니다.Array(String)
1을, 없으면 0을 반환합니다. UInt8
예시
UTF-8 문자열 ‘你好,世界’ (‘Hello, world’)가 주어졌을 때, 문자열에 你 또는 界 문자가 포함되어 있는지 확인합니다
Query
Response
multiSearchFirstIndex
haystack— 검색할 대상 문자열입니다.Stringneedles— 검색할 문자열 배열입니다.Array(String)
haystack에서 처음 발견된 needle의 1부터 시작하는 인덱스(needles 배열 내 위치)를 반환합니다. 발견된 needle이 없으면 0을 반환합니다. 검색은 대소문자를 구분합니다. UInt64
예시
사용 예시
Query
Response
Query
Response
Query
Response
multiSearchFirstIndexCaseInsensitive
haystack에서 가장 왼쪽에 있는 needle_i가 발견되면 그 인덱스 i(1부터 시작)를 반환하고, 그렇지 않으면 0을 반환합니다.
대소문자를 구분하지 않습니다.
구문
haystack— 검색이 수행되는 haystack입니다.Stringneedle— 검색할 부분 문자열들입니다.Array(String)
needle의 인덱스(1부터 시작)를 반환합니다. 일치하는 항목이 없으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
multiSearchFirstIndexCaseInsensitiveUTF8
haystack— 검색 대상 문자열입니다.Stringneedles— 검색할 문자열 배열입니다.Array(String)
haystack에서 처음 발견된 needle의 1부터 시작하는 인덱스(needles 배열 내 위치)를 반환합니다. 어떤 needle도 발견되지 않으면 0을 반환합니다. 검색은 대소문자를 구분하지 않으며 UTF-8 문자 인코딩을 지원합니다. UInt64
예시
사용 예시
Query
Response
Query
Response
Query
Response
multiSearchFirstIndexUTF8
haystack에서 가장 왼쪽에서 찾은 needle_i의 인덱스 i(1부터 시작)를 반환하며, 찾지 못하면 0을 반환합니다.
haystack와 needle은 UTF-8로 인코딩된 문자열이라고 가정합니다.
구문
haystack— 검색할 UTF-8 문자열입니다.Stringneedle— 검색할 UTF-8 부분 문자열의 배열입니다.Array(String)
needle 중 가장 먼저 발견된 항목의 인덱스(1부터 시작)를 반환합니다. 일치하는 항목이 없으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
multiSearchFirstPosition
position과 유사하지만, 여러 needle 문자열 중 하나와 일치하는 haystack 문자열에서 가장 앞쪽 일치 위치의 오프셋(leftmost offset)을 반환합니다.
함수 multiSearchFirstPositionCaseInsensitive, multiSearchFirstPositionUTF8, multiSearchFirstPositionCaseInsensitiveUTF8는 이 함수의 대소문자 비구분 및/또는 UTF-8 변형을 제공합니다.
구문
haystack— 검색을 수행할 String입니다.Stringneedle1[, needle2, ...]— 검색할 하나 이상의 부분 문자열로 이루어진 배열입니다.Array(String)
haystack 문자열에서 여러 needle 문자열 중 하나와 일치하는 가장 왼쪽 오프셋을 반환합니다. 일치하는 항목이 없으면 0을 반환합니다. UInt64
예시
첫 번째 위치 검색
Query
Response
multiSearchFirstPositionCaseInsensitive
haystack— 검색이 수행되는 String입니다.Stringneedle— 검색할 needle의 배열입니다.Array(String)
needle 문자열 중 하나와 일치하는 haystack 문자열에서 가장 먼저 일치하는 위치의 오프셋을 반환합니다. 일치하는 항목이 없으면 0을 반환합니다. UInt64
예시
대소문자를 구분하지 않는 첫 번째 위치
Query
Response
multiSearchFirstPositionCaseInsensitiveUTF8
haystack과 needle이 UTF-8 문자열이라고 가정하고 대소문자를 구분하지 않습니다.
구문
haystack— 검색을 수행할 UTF-8 문자열입니다.Stringneedle— 검색할 UTF-8 needle의 배열입니다.Array(String)
needle 문자열 중 하나와 일치하는 haystack 문자열에서 가장 왼쪽에 있는 일치 위치의 오프셋을 반환합니다. 일치하는 항목이 없으면 0을 반환합니다. UInt64
예시
주어진 needle 중 하나와 일치하는 UTF-8 문자열 ‘Здравствуй, мир’ (‘Hello, world’)에서 가장 왼쪽 일치 위치의 오프셋 찾기
Query
Response
multiSearchFirstPositionUTF8
haystack과 needle이 UTF-8 문자열이라고 가정합니다.
구문
haystack— 검색을 수행할 UTF-8 문자열입니다.Stringneedle— 검색할 UTF-8 부분 문자열 배열입니다.Array(String)
needle 문자열 중 하나와 일치하는 haystack 문자열 내 가장 왼쪽 오프셋입니다. 일치하는 항목이 없으면 0을 반환합니다. UInt64
예시
주어진 needle 중 하나와 일치하는 UTF-8 문자열 ‘Здравствуй, мир’ (‘Hello, world’)에서 가장 왼쪽 오프셋 찾기
Query
Response
ngramDistance
ngramDistanceCaseInsensitive, ngramDistanceUTF8, ngramDistanceCaseInsensitiveUTF8 함수를 사용하십시오.
구문
0과 1 사이의 Float32 값을 반환합니다. 반환 값이 작을수록 두 문자열의 유사도가 높습니다. Float32
예시
4-그램 거리 계산
Query
Response
ngramDistanceCaseInsensitive
ngramDistance의 대소문자 비구분 버전을 제공합니다.
대소문자를 구분하지 않고 두 문자열 사이의 4-그램 거리를 계산합니다.
반환 값이 작을수록 두 문자열의 유사도가 높습니다.
구문
0과 1 사이의 Float32 값을 반환합니다. Float32
예시
대소문자를 구분하지 않는 4-그램 거리
Query
Response
ngramDistanceCaseInsensitiveUTF8
ngramDistance의 대소문자를 구분하지 않는 UTF-8 변형을 제공합니다.
needle 및 haystack 문자열은 UTF-8로 인코딩된 문자열이라고 가정하며, 대소문자를 구분하지 않습니다.
대소문자를 구분하지 않고 두 UTF-8 문자열 사이의 3-그램 거리를 계산합니다.
반환 값이 작을수록 두 문자열의 유사도가 높습니다.
구문
0과 1 사이의 Float32 값을 반환합니다. Float32
예시
대소문자를 구분하지 않는 UTF-8 3-그램 거리
Query
Response
ngramDistanceUTF8
ngramDistance의 UTF-8 변형을 제공합니다.
needle 및 haystack 문자열이 UTF-8로 인코딩된 문자열이라고 가정합니다.
두 UTF-8 문자열 간의 3-그램 거리를 계산합니다.
반환 값이 작을수록 두 문자열은 더 유사합니다.
구문
0과 1 사이의 Float32 값을 반환합니다. Float32
예시
UTF-8 3-그램 거리
Query
Response
ngramSearch
ngramSearchCaseInsensitive, ngramSearchUTF8, ngramSearchCaseInsensitiveUTF8 함수를 사용하십시오.
구문
1.0) 이하이면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
4-그램을 사용한 검색
Query
Response
ngramSearchCaseInsensitive
ngramSearch의 대소문자를 구분하지 않는 변형을 제공합니다.
needle 문자열과 haystack 문자열 사이의 비대칭 차이를 계산합니다. 즉, needle의 n-그램 수에서 공통 n-그램 수를 뺀 뒤 이를 needle n-그램 수로 정규화한 값입니다.
대소문자를 무시하고 두 문자열 사이의 4-그램 거리가 지정된 임계값 이하인지 확인합니다.
구문
1.0) 이하이면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
4-그램을 사용한 대소문자 비구분 검색
Query
Response
ngramSearchCaseInsensitiveUTF8
ngramSearch의 대소문자를 구분하지 않는 UTF-8 버전을 제공합니다.
haystack과 needle은 UTF-8 문자열이라고 가정하며, 대소문자를 구분하지 않습니다.
대소문자를 구분하지 않고 두 UTF-8 문자열 사이의 3-그램 거리가 지정된 임계값 이하인지 확인합니다.
구문
1.0) 이하이면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
3-그램을 사용한 대소문자를 구분하지 않는 UTF-8 검색
Query
Response
ngramSearchUTF8
ngramSearch의 UTF-8 버전을 제공합니다.
haystack과 needle이 UTF-8 문자열이라고 가정합니다.
두 UTF-8 문자열 사이의 3-그램 거리가 지정된 임계값 이하인지 확인합니다.
구문
1.0)보다 작거나 같으면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
3-그램을 사용한 UTF-8 검색
Query
Response
notILike
% 및 _를 사용할 수 있습니다.
구문
haystack— 검색 대상 문자열입니다.String또는FixedStringpattern— 매칭할 SQL LIKE 패턴입니다.%는 0개를 포함한 임의 개수의 문자와 일치하고,_는 정확히 1개의 문자와 일치합니다.String
1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
notLike
like와 유사하지만 결과를 반대로 반환합니다.
구문
haystack— 검색이 수행되는 문자열입니다.String또는FixedStringpattern— 매칭할 LIKE 패턴입니다.String
LIKE 패턴과 일치하지 않으면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
Query
Response
position
haystack에서 부분 문자열 needle이 시작되는 위치를 반환합니다(바이트 기준, 1부터 시작).
부분 문자열 needle이 비어 있으면 다음 규칙이 적용됩니다:
start_pos가 지정되지 않은 경우:1을 반환합니다start_pos = 0인 경우:1을 반환합니다start_pos >= 1이고start_pos <= length(haystack) + 1인 경우:start_pos를 반환합니다- 그 밖의 경우:
0을 반환합니다
locate, positionCaseInsensitive, positionUTF8, positionCaseInsensitiveUTF8 함수에도 적용됩니다.
구문
haystack— 검색을 수행할 문자열입니다.String또는Enumneedle— 검색할 부분 문자열입니다.Stringstart_pos—haystack에서 검색을 시작할 위치(1부터 시작)입니다. 선택 사항입니다.UInt
0을 반환합니다. UInt64
예시
기본 사용법
Query
Response
Query
Response
Query
Response
Query
Response
positionCaseInsensitive
position과 같지만 대소문자를 구분하지 않습니다.
구문
instr
인수
haystack— 검색이 수행되는 문자열입니다.String또는Enumneedle— 검색할 부분 문자열입니다.Stringstart_pos— 선택 사항입니다.haystack에서 검색을 시작할 위치(1부터 시작)입니다.UInt*
0을 반환합니다. UInt64
예시
대소문자를 구분하지 않는 검색
Query
Response
positionCaseInsensitiveUTF8
positionUTF8와 같지만 대소문자를 구분하지 않고 검색합니다.
구문
haystack— 검색을 수행할String입니다.String또는Enumneedle— 검색할 부분 문자열입니다.Stringstart_pos— 선택 사항입니다. 검색을 시작할haystack내 위치(1부터 시작)입니다.UInt*
0을 반환합니다. UInt64
예시
대소문자를 구분하지 않는 UTF-8 검색
Query
Response
positionUTF8
position과 유사하지만, haystack과 needle은 UTF-8로 인코딩된 문자열이라고 가정합니다.
구문
haystack— 검색이 수행되는 문자열입니다.String또는Enumneedle— 검색할 부분 문자열입니다.Stringstart_pos— 선택 사항입니다. 검색을 시작할haystack내 위치(1부터 시작)입니다.UInt*
0을 반환합니다. UInt64
예시
UTF-8 문자 수 계산
Query
Response