이 문서에서는 BigQuery용 GoogleSQL의 텍스트 분석(텍스트 마이닝이라고도 함)에 대한 개요를 설명합니다.
GoogleSQL은 텍스트 분석을 지원합니다. 이는 비정형 텍스트에서 용어(토큰)를 식별한 다음 색인 생성 및 검색과 같은 활용 가능한 분석 정보에 해당 용어를 사용하거나 ML 학습 파이프라인에 사용할 벡터화에 대한 입력으로 해당 용어를 사용할 수 있는 기술입니다. 텍스트 분석기를 사용하여 특정 방식으로 정보를 분석하고 텍스트 분석 옵션을 사용하여 자체 분석 맞춤설정을 적용할 수 있습니다.
텍스트 분석은 다음 GoogleSQL 함수 및 문에서 지원됩니다.
텍스트 분석기
BigQuery용 GoogleSQL은 비정형 텍스트에서 데이터를 추출하는 데 사용할 수 있는 여러 유형의 텍스트 분석기를 지원합니다. analyzer
인수를 사용하여 분석기를 일부 함수 및 문에 전달할 수 있습니다.
텍스트 분석기마다 정보를 추출하는 고유한 방법이 있습니다. 이때 다음과 같은 옵션을 선택할 수 있습니다.
NO_OP_ANALYZER
: 입력을 단일 용어(토큰)로 추출합니다.LOG_ANALYZER
: 구분 기호가 나타나면 입력을 용어로 나눕니다.PATTERN_ANALYZER
: 입력을 정규 표현식과 일치하는 용어로 나눕니다.
NO_OP_ANALYZER
분석기
NO_OP_ANALYZER
분석기는 입력 텍스트를 단일 용어(토큰)로 추출하는 무연산 분석기입니다. 결과 용어에는 서식이 적용되지 않습니다.
이 분석기는 텍스트 분석기 옵션 또는 토큰 필터를 지원하지 않습니다.
예시
다음 쿼리는 NO_OP_ANALYZER
를 텍스트 분석기로 사용합니다.
SELECT TEXT_ANALYZE(
'I like pie, you like-pie, they like 2 PIEs.',
analyzer=>'NO_OP_ANALYZER'
) AS results
/*-----------------------------------------------*
| results |
+-----------------------------------------------+
| 'I like pie, you like-pie, they like 2 PIEs.' |
*-----------------------------------------------*/
LOG_ANALYZER
분석기
LOG_ANALYZER
분석기는 구분 기호가 나타나면 입력 텍스트를 용어(토큰)로 추출하고 구분 기호를 삭제한 후 결과에서 대문자를 소문자로 변경합니다.
세부정보:
- 용어에 있는 대문자는 소문자로 바뀌지만 127보다 큰 ASCII 값은 그대로 유지됩니다.
공백, 마침표, 글자가 아닌 문자와 같은 구분 기호 중 하나가 나타나면 텍스트가 개별 용어로 분할됩니다.
[ ] < > ( ) { } | ! ; , ' " * & ? + / : = @ . - $ % \ _ \n \r \s \t %21 %26 %2526 %3B %3b %7C %7c %20 %2B %2b %3D %3d %2520 %5D %5d %5B %5b %3A %3a %0A %0a %2C %2c %28 %29
이러한 기본 구분 기호를 사용하지 않으려면 텍스트 분석기 옵션으로 사용할 특정 구분 기호를 지정하면 됩니다. 자세한 내용은
delimiters
옵션을 참조하세요.
이 분석기는 토큰 필터를 지원합니다. 자세한 내용은 token_filters
옵션을 참조하세요. token_filters
옵션이 지정되어 있지 않은 경우 기본적으로 ASCII 소문자 정규화가 사용됩니다.
예시
다음 쿼리는 LOG_ANALYZER
를 텍스트 분석기로 사용합니다.
SELECT TEXT_ANALYZE(
'I like pie, you like-pie, they like 2 PIEs.',
analyzer=>'LOG_ANALYZER'
) AS results
/*---------------------------------------------------------------------------*
| results |
+---------------------------------------------------------------------------+
| [ 'i', 'like', 'pie', 'you', 'like', 'pie', 'they', 'like', '2', 'pies' ] |
*---------------------------------------------------------------------------*/
LOG_ANALYZER
는 기본 텍스트 분석기이므로 쿼리에서 지정할 필요가 없습니다. 예를 들어 다음 쿼리는 이전 쿼리와 동일한 결과를 생성합니다.
SELECT TEXT_ANALYZE(
'I like pie, you like-pie, they like 2 PIEs.'
) AS results
PATTERN_ANALYZER
분석기
PATTERN_ANALYZER
분석기는 re2 정규 표현식을 사용하여 비정형 텍스트에서 용어(토큰)를 추출합니다.
이 분석기는 입력 텍스트의 왼쪽에서 정규 표현식과 일치하는 첫 번째 용어를 찾아 출력에 추가합니다. 그런 다음 새로 찾은 용어까지 입력 텍스트의 프리픽스를 삭제합니다. 이 프로세스는 입력 텍스트가 비어 있을 때까지 반복됩니다.
기본적으로 정규 표현식 \b\w{2,}\b
가 사용됩니다. 이 정규 표현식은 최소 2개 문자가 포함된 비유니코드 단어와 일치합니다. 다른 정규 표현식을 사용하려면 patterns
옵션을 참조하세요.
이 분석기는 토큰 필터를 지원합니다. 자세한 내용은 token_filters
옵션을 참조하세요. token_filters
옵션이 지정되어 있지 않은 경우 기본적으로 ASCII 소문자 정규화가 사용됩니다.
예시
다음 쿼리는 PATTERN_ANALYZER
를 텍스트 분석기로 사용합니다.
기본 정규 표현식이 사용되므로 두 개 이상의 문자가 있는 단어만 용어로 포함됩니다. 또한 결과가 소문자입니다.
i
및 2
는 결과에 표시되지 않습니다.
SELECT TEXT_ANALYZE(
'I like pie, you like-pie, they like 2 PIEs.',
analyzer=>'PATTERN_ANALYZER'
) AS results
/*----------------------------------------------------------------*
| results |
+----------------------------------------------------------------+
| ['like', 'pie', 'you', 'like', 'pie', 'they', 'like', 'pies' ] |
*----------------------------------------------------------------*/
텍스트 분석기 옵션
텍스트 분석기는 입력 텍스트 분석 방법을 결정하는 커스텀 옵션을 지원합니다. analyzer_options
인수를 사용하여 분석기 옵션을 일부 함수 및 문에 전달할 수 있습니다. 이 인수는 JSON 형식의 STRING
값을 사용합니다.
이때 다음과 같은 옵션을 선택할 수 있습니다.
delimiters
: 구분 기호가 나타나면 입력을 용어로 나눕니다.patterns
: 입력을 정규 표현식과 일치하는 용어로 나눕니다.token_filters
: 입력 텍스트가 용어로 토큰화되면 용어에 필터를 적용합니다.
delimiters
분석기 옵션
'{
"delimiters": array_of_delimiters
}'
설명
LOG_ANALYZER
텍스트 분석기를 사용 중이고 기본 구분 기호를 사용하지 않으려는 경우 입력 텍스트를 필터링하는 데 사용할 특정 구분 기호를 지정할 수 있습니다.
정의
delimiters
: 입력 텍스트를 토큰화하는 데 사용할 구분 기호를 나타내는 문자열이 포함된 JSON 배열입니다.
세부정보
동일한 프리픽스를 사용하는 2개의 구분 기호(예: %
및 %2
)가 있는 경우 긴 구분 기호가 우선 적용되고 먼저 분석됩니다.
모든 ASCII 문자열을 구분 기호로 추가할 수 있습니다. 구분 기호 길이는 16자 이하여야 합니다. 일반적으로 포함할 수 있는 구분 기호는 다음과 같습니다.
[ ] < > ( ) { } | ! ; , ' " * & ? + / : = @ . - $ % \ _ \n \r \s \t %21 %26
%2526 %3B %3b %7C %7c %20 %2B %2b %3D %3d %2520 %5D %5d %5B %5b %3A %3a %0A
%0a %2C %2c %28 %29
예시
SELECT TEXT_ANALYZE(
'I like pie, you like-pie, they like 2 PIEs.',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'{"delimiters": [",", ".", "-"]}'
) AS results
/*-------------------------------------------------------*
| results |
+-------------------------------------------------------+
| ['i like pie', 'you like', 'pie', 'they like 2 pies]' |
*-------------------------------------------------------*/
patterns
분석기 옵션
'{
"patterns": array_of_regex_patterns
}'
설명
PATTERN_ANALYZER
텍스트 분석기를 사용 중이고 기본 정규 표현식을 사용하지 않으려는 경우 입력 텍스트를 필터링하는 데 사용할 정규 표현식을 지정할 수 있습니다.
정의
patterns
: 정규 표현식을 나타내는 문자열 하나를 포함하는 JSON 배열입니다.
세부정보
PATTERN_ANALYZER
텍스트 분석기에 이 분석기 옵션이 제공되지 않는 경우 기본적으로 정규 표현식 \b\w{2,}\b
를 사용하여 두 개 이상의 문자가 포함된 비유니코드 단어를 일치시킵니다.
예시
SELECT TEXT_ANALYZE(
'I like pie, you like-pie, they like 2 PIEs.',
analyzer=>'PATTERN_ANALYZER',
analyzer_options=>'{"patterns": ["[a-zA-Z]*"]}'
) AS results
/*----------------------------------------------------------------*
| results |
+----------------------------------------------------------------+
| ['like', 'pie', 'you', 'like', 'pie', 'they', 'like', 'pies' ] |
*----------------------------------------------------------------*/
token_filters
분석기 옵션
'{
"token_filters": array_of_token_filters
}'
설명
LOG_ANALYZER
또는 PATTERN_ANALYZER
텍스트 분석기를 사용하는 경우 입력 텍스트가 토큰화된 후 입력 텍스트에 하나 이상의 토큰 필터를 순차적으로 적용할 수 있습니다.
정의
array_of_token_filters
: 토큰 필터를 나타내는 객체가 포함된 JSON 배열입니다.
세부정보
추가할 수 있는 특정 토큰 필터에 대한 자세한 내용은 토큰 필터를 참조하세요.
예시
예를 들어 이 쿼리에는 patterns
및 token_filters
옵션이 모두 포함되어 있습니다.
SELECT TEXT_ANALYZE(
'I like pie, you like-pie, they like 2 PIEs.',
analyzer=>'PATTERN_ANALYZER',
analyzer_options=>'''
{
"patterns": ["[a-zA-Z]*"],
"token_filters": [
{
"normalizer": {
"mode": "LOWER"
}
},
{
"stop_words": ["they", "pie"]
}
]
}
'''
) AS results
/*----------------------------------------------*
| results |
+----------------------------------------------+
| ['i', 'like', 'you', 'like', 'like, 'PIEs' ] |
*----------------------------------------------*/
토큰 필터
'{ "token_filters": [ { "normalizer": { "mode": json_string, "icu_normalize_mode": json_string, "icu_case_folding": json_boolean } }, { "stop_words": json_string_array } ] }'
토큰 필터는 입력 텍스트에서 추출된 용어(토큰)를 수정하거나 삭제할 수 있습니다. 토큰 필터를 지원하는 텍스트 분석기에 토큰 필터가 지정되지 않은 경우 기본적으로 ASCII 소문자 정규화 토큰 필터가 적용됩니다. 여러 토큰 필터가 추가되면 지정된 순서대로 적용됩니다. 동일한 토큰 필터가 token_filters
배열에 여러 번 포함될 수 있습니다. 자세한 내용은 이 섹션의 예시를 참조하세요.
정의
각 토큰 필터에는 사용하려는 토큰 필터 유형에 따라 이러한 JSON 키-값 쌍 중 일부를 포함하는 고유한 JSON 구문이 있습니다.
token_filters
: 토큰 필터가 포함된 객체의 JSON 배열입니다. 동일한 유형의 토큰 필터가 이 배열에 여러 번 포함될 수 있습니다.stop_words
: 용어 목록에서 삭제할 단어를 나타내는 문자열의 JSON 배열입니다.normalizer
: 토큰 필터의 정규화 설정이 포함된 JSON 객체입니다. 다음은 관련 설정의 목록입니다.mode
: 정규화 모드를 나타내는 JSON 문자열입니다. 이때 다음과 같은 옵션을 선택할 수 있습니다.NONE
: 용어에 정규화 모드를 적용하지 않습니다.LOWER
: ASCII 소문자입니다. 토큰 필터를 지원하는 텍스트 분석기에 토큰 필터가 지정되지 않은 경우 기본적으로 사용됩니다.ICU_NORMALIZE
: ICU가 용어를 정규화합니다.
icu_normalize_mode
: ICU 정규화 모드를 나타내는 JSON 문자열입니다. 이때 다음과 같은 옵션을 선택할 수 있습니다.NFC
: 용어에 ICU NFC 정규화를 적용합니다.NFKC
: 용어에 ICU NFKC 정규화를 적용합니다.NFD
: 용어에 ICU NFD 정규화를 적용합니다.NFKD
: 용어에 ICU NFKD 정규화를 적용합니다.
mode
가ICU_NORMALIZE
인 경우 사용할 수 있습니다.mode
이ICU_NORMALIZE
이고 이 키-값 쌍이 설정되지 않은 경우icu_normalize_mode
는 기본적으로NFKC
입니다.icu_case_folding
: 용어에 ICU 대소문자 변환을 적용할지 여부를 결정하는 JSON 불리언입니다. 용어에 ICU 대소문자 변환을 적용하려는 경우에는true
입니다. 그 외의 경우에는false
입니다.mode
가ICU_NORMALIZE
인 경우 사용할 수 있습니다.mode
가ICU_NORMALIZE
이고 이 값이 사용되지 않는 경우icu_case_folding
은 기본적으로true
입니다.
세부정보
토큰 필터는 동일한 쿼리에서 NO_OP_ANALYZER
텍스트 분석기를 제외한 모든 분석기에 사용할 수 있습니다. 토큰 필터는 텍스트 분석기가 입력 텍스트를 용어로 나눈 후에 적용됩니다.
토큰 필터를 지원하는 분석기에 token_filters
가 지정되어 있지 않은 경우 기본적으로 ASCII 소문자 정규화가 적용됩니다.
토큰 필터 배열(token_filters
)에 여러 토큰 필터를 추가할 수 있습니다. 여러 토큰 필터가 추가되면 지정된 순서대로 용어에 적용됩니다. 자세한 내용은 이 섹션의 예시를 참조하세요.
동일한 토큰 필터를 토큰 필터 배열에 여러 번 추가할 수 있습니다. 자세한 내용은 이 섹션의 예시를 참조하세요.
다음은 토큰 필터 JSON 구문을 사용하여 용어에 적용할 수 있는 몇 가지 필터입니다.
- 정규화 없음
- 소문자로 변환(ASCII)
- 소문자로 변환(ICU 대소문자 변환)
- 대문자 유지
- NFC로 ICU 정규화
- NFKC로 ICU 정규화
- NFD로 ICU 정규화
- NFKD로 ICU 정규화
- 단어 삭제
예시
다음 예시에서는 용어가 NFKC로 정규화된 다음, ICU 대소문자 변환이 true
이므로 용어가 소문자로 변환됩니다. 마지막으로 소문자 pies
및 2
가 쿼리에서 삭제됩니다.
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_normalize_mode": "NFKC",
"icu_case_folding": true
}
},
{
"stop_words": ["pies", "2"]
}
]
}
'''
) AS results
/*------------------------------------------*
| results |
+------------------------------------------+
| ['i', 'like', '❶', 'you', 'like', 'ño' ] |
*------------------------------------------*/
다음 쿼리는 앞의 쿼리와 비슷하지만 토큰 필터의 순서가 다시 정렬되어 쿼리 결과에 영향을 미칩니다. 결과에서는 검색 제외 단어 토큰 필터가 적용된 후 ②
가 2
로 정규화되고 PIEs
가 pies
로 정규화되므로 2
및 PIEs
가 유지됩니다.
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"stop_words": ["pies", "2"]
},
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_normalize_mode": "NFKC",
"icu_case_folding": true
}
}
]
}
'''
) AS results
/*-------------------------------------------------------*
| results |
+-------------------------------------------------------+
| ['i', 'like', '❶', '2', 'you', 'like', 'ño', 'pies' ] |
*-------------------------------------------------------*/
동일한 토큰 필터를 쿼리에서 원하는 만큼 사용할 수 있습니다. 다음 쿼리에서는 stop_words
가 두 번 사용됩니다.
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"stop_words": ["like", "you"]
},
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_normalize_mode": "NFKC",
"icu_case_folding": true
}
},
{
"stop_words": ["ño"]
}
]
}
'''
) AS results
/*----------------------------------*
| results |
+----------------------------------+
| ['i', '❶', '2', 'pies', 'pies' ] |
*----------------------------------*/
정규화 없음
'{ "token_filters": [ "normalizer": { "mode": "NONE" } ] }'
설명
정규화는 용어에 적용되지 않습니다.
예시
다음 쿼리에서는 정규화가 결과에 적용되지 않습니다.
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"normalizer": {
"mode": "NONE"
}
}
]
}
'''
) AS results
/*----------------------------------------------------------------*
| results |
+----------------------------------------------------------------+
| ['I', 'like', '❶', '②', 'pies', 'you', 'like', 'Ño', 'PIEs' ] |
*----------------------------------------------------------------*/
소문자로 변환(ASCII)
'{ "token_filters": [ "normalizer": { "mode": "LOWER" } ] }'
설명
결과 용어에 대해 ASCII 소문자화를 수행합니다.
예시
다음 쿼리에서는 ASCII 소문자화가 결과에 적용됩니다.
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"normalizer": {
"mode": "LOWER"
}
}
]
}
'''
) AS results
/*----------------------------------------------------------------*
| results |
+----------------------------------------------------------------+
| ['i', 'like', '❶', '②', 'pies', 'you', 'like', 'Ño', 'pies' ] |
*----------------------------------------------------------------*/
소문자로 변환(ICU 대소문자 변환)
'{ "token_filters": [ "normalizer": { "mode": "ICU_NORMALIZE", "icu_case_folding": true } ] }'
설명
결과 용어를 소문자로 변환하는 ICU 대소문자 변환을 수행합니다.
예시
다음 쿼리에서는 ICU 대소문자 변환이 결과에 적용됩니다.
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_case_folding": true
}
}
]
}
'''
) AS results
/*--------------------------------------------------------------*
| results |
+--------------------------------------------------------------+
| ['i', 'like', '❶', '2' 'pies', 'you', 'like', 'ño', 'pies' ] |
*--------------------------------------------------------------*/
대문자 유지
'{ "token_filters": [ "normalizer": { "mode": "ICU_NORMALIZE", "icu_case_folding": false } ] }'
설명
결과 용어에서 대문자를 소문자로 변환하지 않습니다.
예시
다음 쿼리에서는 ICU 대소문자 변환이 결과에 적용되지 않습니다.
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_case_folding": false
}
}
]
}
'''
) AS results
/*---------------------------------------------------------------*
| results |
+---------------------------------------------------------------+
| ['I', 'like', '❶', '2' 'pies', 'you', 'like', 'Ño', 'PIEs' ] |
*---------------------------------------------------------------*/
NFC로 ICU 정규화
'{ "token_filters": [ "normalizer": { "mode": "ICU_NORMALIZE", "icu_normalize_mode": "NFC" } ] }'
설명
규범적 등가에 따라 문자를 분해하고 다시 구성하는 ICU NFC 정규화로 텍스트를 정규화합니다.
예시
다음 쿼리에서는 NFC 정규화가 결과에 적용됩니다.
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_normalize_mode": "NFC"
}
}
]
}
'''
) AS results
/*---------------------------------------------------------------*
| results |
+---------------------------------------------------------------+
| ['i', 'like', '❶', '②' 'pies', 'you', 'like', 'ño', 'pies' ] |
*---------------------------------------------------------------*/
NFKC로 ICU 정규화
'{ "token_filters": [ "normalizer": { "mode": "ICU_NORMALIZE", "icu_normalize_mode": "NFKC" } ] }'
설명
호환성을 기준으로 문자를 분해한 다음 규범적 등가에 따라 문자를 다시 구성하는 ICU NFKC 정규화로 텍스트를 정규화합니다.
예시
다음 쿼리에서는 NFKC 정규화가 결과에 적용됩니다.
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_normalize_mode": "NFKC"
}
}
]
}'''
) AS results
/*---------------------------------------------------------------*
| results |
+---------------------------------------------------------------+
| ['i', 'like', '❶', '2' 'pies', 'you', 'like', 'ño', 'pies' ] |
*---------------------------------------------------------------*/
NFD로 ICU 정규화
'{ "token_filters": [ "normalizer": { "mode": "ICU_NORMALIZE", "icu_normalize_mode": "NFD" } ] }'
설명
규범적 등가로 문자를 분해한 다음 여러 조합 문자를 특정 순서로 배열하는 ICU NFD 정규화로 텍스트를 정규화합니다.
예시
다음 쿼리에서 ñ
의 입력과 출력은 동일하지만 바이트가 다릅니다(입력은 \u00f1
, 출력은 \u006e \u0303
).
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_normalize_mode": "NFD"
}
}
]
}
'''
) AS results
/*---------------------------------------------------------------*
| results |
+---------------------------------------------------------------+
| ['i', 'like', '❶', '2' 'pies', 'you', 'like', 'ño', 'pies' ] |
*---------------------------------------------------------------*/
NFKD로 ICU 정규화
'{ "token_filters": [ "normalizer": { "mode": "ICU_NORMALIZE", "icu_normalize_mode": "NFKD" } ] }'
설명
호환성을 기준으로 문자를 분해한 다음 여러 조합 문자를 특정 순서로 배열하는 ICU NFKD 정규화로 텍스트를 정규화합니다.
예시
다음 쿼리에서 ñ
의 입력과 출력은 동일하지만 바이트가 다릅니다(입력은 \u00f1
, 출력은 \u006e \u0303
).
SELECT TEXT_ANALYZE(
'I like ❶ ② pies, you like Ño PIEs',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{"normalizer": {
"mode": "ICU_NORMALIZE",
"icu_normalize_mode": "NFKD"
}
}
]
}'''
) AS results
/*---------------------------------------------------------------*
| results |
+---------------------------------------------------------------+
| ['i', 'like', '❶', '2' 'pies', 'you', 'like', 'ño', 'pies' ] |
*---------------------------------------------------------------*/
단어 삭제
'{
"token_filters": [
"stop_words": array_of_stop_words
]
}'
설명
결과에서 용어(토큰) 목록을 제외합니다.
정의
array_of_stop_words
: 용어를 나타내는 문자열이 포함된 JSON 배열입니다. 이러한 용어는 결과에 포함해서는 안 됩니다. 배열에 요소가 최소 한 개 이상 있어야 합니다. 빈 문자열은 유효한 배열 요소입니다.
예시
다음 쿼리에서 they
및 pie
단어는 결과에서 제외됩니다.
SELECT TEXT_ANALYZE(
'I like pie, you like-pie, they like 2 PIEs.',
analyzer=>'LOG_ANALYZER',
analyzer_options=>'''
{
"token_filters": [
{
"stop_words": ["they", "pie"]
}
]
}
'''
) AS results
/*---------------------------------------------------*
| results |
+---------------------------------------------------+
| ['I', 'like', 'you', 'like', 'like, '2', 'PIEs' ] |
*---------------------------------------------------*/