토큰 필터는 다음과 같은 작업을 수행합니다.
어간 처리: "talking", "talked", "talks"와 같은 관련 단어를 어근인 "talk"로 줄입니다.
편집: 공개 문서에서 민감한 정보를 제거합니다.
토큰 필터에는 유형 필드가 필요하며, 일부 토크나이저에는 추가 옵션도 필요합니다.
"tokenFilters": [ { "type": "<token-filter-type>", "<additional-option>": <value> } ]
이 페이지의 샘플 인덱스 정의 및 쿼리는 이름이 minutes인 샘플 컬렉션을 사용합니다. 이 예시를 시도하려면 클러스터에 minutes 컬렉션을 로드하고 MongoDB Search 인덱스 만들기 튜토리얼의 단계에 따라 Atlas UI의 Create a Search Index 페이지로 이동하세요. 그러한 다음 minutes 컬렉션을 데이터 소스로 선택하고 예시 절차에 따라 Atlas UI 또는 mongosh를 사용하여 인덱스를 생성합니다.
MongoDB Search는 다음 유형의 토큰 필터를 지원합니다.
asciiFolding
The asciiFolding token filter converts alphabetic, numeric, and symbolic unicode characters that are not in the Basic Latin Unicode block to their ASCII equivalents, if available.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| 문자열 | no | 토큰 필터의 출력에 원래 토큰을 포함할지 또는 생략할지 여부를 지정하는 문자열입니다. 값은 다음 중 하나일 수 있습니다:
기본값: |
예시
다음 인덱스 정의는 asciiConverter라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 page_updated_by.first_name 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
필드 값을 해당 ASCII 값으로 변환하려면
asciiFolding토큰 필터를 적용하세요.
다음 쿼리는 minutes 컬렉션의 first_name 필드에서 ASCII에 해당하는 이름을 사용하여 이름을 검색합니다.
MongoDB Search는 문서 _id: 1 의 {MongoDB} 필드 에 대해 다음 토큰(검색 가능한 용어)을 page_updated_by.first_name 생성한 다음 쿼리 텀 과 일치시키는 데 사용했기 때문에 결과에 가 포함된 문서 Sian 반환합니다.
필드 이름 | 출력 토큰 |
|---|---|
|
|
daitchMokotoffSoundex
The daitchMokotoffSoundex 토큰 필터하다 Daitch-Mokotoff 사운덱스 음성 알고리즘 기반으로 소리가 동일한 단어에 대한 토큰을 생성합니다. 이 필터하다 각 입력에 대해 여러 인코딩을 생성할 수 있으며, 인코딩된 각 토큰은 6 자리 숫자입니다.
참고
daitchMokotoffSoundex 토큰 필터를 사용하지 마세요.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| 문자열 | no | 토큰 필터의 출력에 원래 토큰을 포함할지 또는 생략할지 여부를 지정하는 문자열입니다. 값은 다음 중 하나일 수 있습니다:
기본값: |
예시
다음 인덱스 정의는 dmsAnalyzer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 page_updated_by.last_name 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
daitchMokotoffSoundex토큰 필터를 적용하여 같은 소리의 단어에 대해 토큰을 인코딩합니다.
다음 쿼리는 minutes 컬렉션의 page_updated_by.last_name 필드에서 AUERBACH와 비슷하게 들리는 용어를 검색합니다.
두 문서의 용어가 음성적으로 유사하고 동일한 6자리 숫자(097400 및 097500)를 사용하여 코딩되어 있기 때문에 MongoDB Search는 _id: 1 및 _id: 2 이 포함된 문서를 반환합니다. 다음 표는 MongoDB Search가 결과의 문서에 대해 생성하는 토큰(검색 가능한 용어 및 6자리 인코딩)을 보여줍니다.
문서 ID | 출력 토큰 |
|---|---|
|
|
|
|
doubleMetaphone
The doubleMetaphone token filter creates tokens for words that sound the same based on the Double Metaphone phonetic algorithm. Unlike the daitchMokotoffSoundex token filter, which generates 6 digit numeric codes, this filter generates an alphabetic code for each input to account for variations in pronunciation.
속성
The doubleMetaphone token filter has the following attributes:
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| 문자열 | no | 토큰 필터의 출력에 원래 토큰을 포함할지 또는 생략할지 여부를 지정하는 문자열입니다. 값은 다음 중 하나일 수 있습니다:
기본값: |
| integer | no | Number that specifies the maximum length of the phonetic codes that the token filter generates. Value must be between 기본값: |
예시
다음 인덱스 정의는 doubleMetaphoneAnalyzer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 page_updated_by.last_name 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
doubleMetaphone토큰 필터를 적용하여 같은 소리의 단어에 대해 토큰을 인코딩합니다.
다음 쿼리는 minutes 컬렉션의 page_updated_by.last_name 필드에서 AUERBACH와 비슷하게 들리는 용어를 검색합니다.
MongoDB Search returns documents with _id: 1 and _id: 2 because the terms in both documents are phonetically similar, and are encoded using the same phonetic code (ARPK). The following table shows the tokens (searchable terms and phonetic code) that MongoDB Search creates for the documents in the results:
문서 ID | 출력 토큰 | Phonetic Code |
|---|---|---|
|
|
|
|
|
|
edgeGram
edgeGram 토큰 필터는 텍스트 입력의 왼쪽 또는 '가장자리'로부터의 입력을 구성된 크기의 n-그램으로 토큰화합니다.
참고
일반적으로 토큰 필터는 파이프라인 과 유사하게 작동하며, 각 입력 토큰은 하나 이상의 출력 토큰을 생성한 다음 후속 토큰에 입력됩니다. 반면 edgeGram 토큰 필터하다 단일 입력 토큰에서 여러 출력 토큰을 생성하는 그래프 생성 필터하다 입니다.
동의어 및 자동 완성 필드 유형 매핑 정의는 그래프를 생성하지 않는 토큰 필터와 함께 사용할 때만 작동하므로 동의어 또는 자동 완성 필드 유형 매핑 정의에는 edgeGram 토큰 필터를 사용할 수 없습니다.
regex (MongoDB 검색 연산자) 또는 wildcard 연산자로 쿼리하는 경우 입력 토큰당 둘 이상의 출력 토큰을 생성하므로 wordDelimiterGraph 토큰 필터를 searchAnalyzer (으)로 사용할 수 없습니다. 인덱스 정의에서 searchAnalyzer (으)로 다른 분석기 지정합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| integer | 네 | 생성되는 n-그램의 최소 길이를 지정하는 숫자입니다. 값은 |
| integer | 네 | 생성되는 n-그램의 최대 길이를 지정하는 숫자입니다. 값은 |
| 문자열 | no | 토큰을
기본값: |
예시
다음 인덱스 정의는 titleAutocomplete라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 title 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
토큰에 다음 필터를 적용합니다.
icuFolding토큰 필터를 사용하여 토큰에 문자 접기를 적용합니다.edgeGram토큰 필터를 사용하여 왼쪽에서 4~7자 길이의 토큰을 생성합니다.
다음 쿼리는 minutes 컬렉션의 title 필드에서 mee로 시작하고 그 뒤로 다른 문자 여러 개가 이어지는 용어를 검색합니다.
문서에 쿼리 기준과 일치하는 meeting라는 텀 포함되어 있기 때문에 MongoDB Search는 _id: 1 및 _id: 3 이 포함된 문서를 반환합니다. 구체적으로 MongoDB Search는 결과의 문서에 대해 다음과 같은 4 ~ 7 문자 토큰(검색 가능한 용어)을 생성한 다음 쿼리 텀 mee*와 일치시킵니다.
문서 ID | 출력 토큰 |
|---|---|
|
|
|
|
englishPossessive
englishPossessive 토큰 필터는 단어에서 소유격(단어 끝의 's)을 제거합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 englishPossessiveStemmer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 title 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰(검색어)을 생성합니다.
EnglishPossessive 토큰 필터를 적용하여 토큰에서 소유격(후행
's)을 제거합니다.
다음 쿼리는 minutes 컬렉션의 title 필드에서 용어 team을 검색합니다.
MongoDB Search는 title 필드 에 team 이라는 텀 포함된 결과를 반환합니다. MongoDB Search는 _id: 1 team's title team 분석 중에 {MongoDB} 필드 의 를 토큰 로 변환하기 때문에 가 포함된 문서 를 반환합니다. 구체적으로 MongoDB Search는 결과의 문서에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성한 다음 쿼리 텀 와 일치시킵니다.
문서 ID | 출력 토큰 |
|---|---|
|
|
|
|
englishMinimalStemming
englishMinimalStemming 토큰 필터는 복수형 영어 단어를 단수형으로 변환합니다. kStemming, porterStemming 또는 snowballStemming과 같이 더 강력한 어간 추출 필터와 달리 이 필터는 복수 접미사만 제거하고 다른 메타모포로지컬 변형은 추출하지 않습니다. 이렇게 하면 복수형이 아닌 단어는 원래 형태로 유지되므로 단수형과 복수형을 계속 일치시키면서도 복수형이 아닌 터미널에 대한 정확한 일치가 필요한 경우에 유용합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 minimalStemmer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 text.en_US 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
토큰에 다음 토큰 필터를 적용합니다.
lowercase 토큰 필터를 사용하여 토큰을 소문자로 변환합니다.
englishMinimalStemming 토큰 필터를 사용하여 다른 단어 변형은 어간을 자르지 않고 복수 단어를 단수 형태로 어간을 자릅니다.
다음 쿼리는 minutes 컬렉션의 text.en_US 필드에서 용어 meeting을 검색합니다.
MongoDB Search는 소문자 토큰 필터가 토큰 텍스트를 소문자로 정규화하고 englishMinimalStemming 토큰 필터가 복수형 meetings 을 단수형 meeting으로 어가를 변형하고 MongoDB Search가 이를 쿼리 터과 일치시키기 때문에 _id: 1 이(가) 포함된 문서를 반환합니다. 구체적으로 MongoDB Search는 결과의 문서에 대해 다음과 같은 토큰(검색 가능한 텀)을 생성한 다음 쿼리 텀 meeting과 일치시킵니다.
문서 ID | 출력 토큰 |
|---|---|
|
|
flattenGraph
flattenGraph 토큰 필터는 토큰 필터 그래프를 인덱싱에 적합한 평면 형태로 변환합니다. wordDelimiterGraph 토큰 필터를 사용하는 경우, 이 필터를 wordDelimiterGraph 토큰 필터 뒤에 사용하세요.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 wordDelimiterGraphFlatten이라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 message 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
공백 토크나이저를 적용하여 단어 사이의 공백 발생을 기준으로 토큰을 생성합니다.
토큰에 다음 필터를 적용합니다.
wordDelimiterGraph 토큰 필터를 사용하여 하위 단어를 기준으로 토큰을 분할하고, 원래 단어에 대한 토큰을 생성하며,
SIGN_IN단어가 구분되지 않도록 보호합니다.flattenGraph 토큰 필터를 적용하여 토큰을 단순화된 플랫 형태로 변환합니다.
다음 쿼리는 minutes 컬렉션의 message 필드에서 용어 sign을 검색합니다.
문서 에 title 필드 에 하이픈으로 연결된 텀 sign-in 가 포함되어 있어도 MongoDB Search는 쿼리 텀 sign 에 대한 결과에서 _id: 3 이 포함된 문서 반환합니다. wordDelimiterGraph 토큰 필터하다 토큰 필터하다 그래프 생성하고 flattenGraph 토큰 필터하다 토큰 필터하다 그래프 인덱싱 에 적합한 플랫한 형태로 변환합니다. 구체적으로 MongoDB Search는 결과에서 문서 에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성한 다음 쿼리 텀 sign과 일치시킵니다.
문서 ID | 출력 토큰 |
|
|
icuFolding
토큰 필터하다 icuFolding 악센트 제거, 대소문자 접기, 표준 중복 접기 등과 같은 유니코드 기술 보고서 # 의30 문자 접기를 적용하며, 기타 보고서에 자세히 설명되어 있습니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 diacriticFolder라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 text.sv_FI 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
키워드 토크나이저를 적용하여 문자열 필드에 있는 모든 용어를 단일 용어로 토큰화합니다.
icuFolding토큰 필터를 사용하여 악센트 제거, 대소문자 접기, 표준 중복 접기 등과 같은 접기를 적용할 수 있습니다.
다음 쿼리는 와일드카드 연산자를 사용하여 minutes 컬렉션의 text.sv_FI 필드에서 avdelning을 포함하고 그 앞뒤로 다른 문자 여러 개가 포함된 용어를 검색합니다.
MongoDB Search는 결과에서 _id: 1 및 이 있는 문서 _id: 2 반환하는데, 이는 문서에 이라는 avdelning 쿼리 텀 _id: 1 이 있는 문서 에서 다른 문자 뒤에 _id: 2 오고, 문서 의 앞뒤에. 구체적으로 MongoDB Search는 결과의 문서에 대해 다음과 같은 토큰을 생성한 다음 쿼리 텀 *avdelning*과 일치시킵니다.
문서 ID | 출력 토큰 |
|---|---|
|
|
|
|
icuNormalizer
icuNormalizer 토큰 필터하다 표준 유니코드 정규화 모드.를 사용하여 토큰을 정규화합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| 문자열 | no | 적용할 정규화 형식입니다. 허용되는 값은 다음과 같습니다.
지원되는 정규화 형식에 대해 자세히 학습 1.2섹션: 정규화 형식, UTR#15.을 참조하세요. 기본값: |
예시
다음 인덱스 정의는 textNormalizer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 message 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
공백 토크나이저를 사용하여 단어 사이의 공백 발생을 기준으로 토큰을 생성할 수 있습니다.
icuNormalizer토큰 필터를 사용하여 호환성 분해로 토큰을 정규화한 다음 표준 구성으로 토큰을 정규화하세요.
다음 쿼리는 minutes 컬렉션의 message 필드에서 용어 1을 검색합니다.
MongoDB Search는 icuNormalizer 토큰 필터하다 다음에 대해 토큰 1 를 생성하기 때문에 문서 message 필드 에 원으로 표시된 숫자 ① 가 포함되어 있어도 쿼리 텀 1 에 대한 결과에서 _id: 2 이(가) 포함된 문서 를 반환합니다. nfkc 정규화 형식을 사용하여 이 문자를 변환합니다. 다음 표는 MongoDB Search가 nfkc 정규화 형식을 사용하여 결과에서 문서 에 대해 생성하는 토큰(검색 가능한 용어)과 다른 정규화 형식에 대해 생성하는 토큰을 비교하여 보여 줍니다.
정규화 형식 | 출력 토큰 | 경기 |
|
| X |
|
| X |
|
| √ |
|
| √ |
keywordRepeat
keywordRepeat 토큰 필터는 각 입력 토큰을 키워드와 비키워드로 두 번 출력합니다. 후속 토큰 필터를 사용하여 비키워드 토큰을 어근 처리하고 키워드 토큰을 보존할 수 있습니다. 이를 사용하여 정확한 일치를 강화하고 어근 처리된 일치를 조회할 수 있습니다. 이는 일반적으로 porterStemming과 같은 어근 처리 필터와 함께 사용되며, 이어서 removeDuplicates가 사용됩니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 keywordStemRemover라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 title 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
공백 토크나이저를 적용하여 단어 사이의 공백 발생을 기준으로 토큰을 생성합니다.
토큰에 다음 필터를 적용합니다.
keywordRepeat 토큰 필터는 한 번은 키워드 토큰으로, 한 번은 비키워드 토큰으로 토큰을 두 번 생성합니다.
porterStemming 토큰 필터는 비키워드 토큰에서 일반적인 어근 및 굴절 접미사를 제거합니다.
removeDuplicates를 사용하여 스트림에서 이전 토큰과 동일한 위치에 있는 동일한 텀을 필터합니다.
다음 쿼리는 minutes 컬렉션의 title 필드에서 mee* 텀을 wildcard 연산자를 사용하여 검색합니다.
MongoDB 검색은 제목 필드에 meeting이라는 텀이 포함된 문서를 반환합니다. keywordRepeat 토큰 필터는 결과 문서에 대해 다음 토큰을 생성합니다.
제목 | Keyword Tokens | Non-Keyword tokens |
|---|---|---|
|
|
|
|
|
|
porterStemming 토큰 필터는 키워드가 아닌 토큰을 어근 형태로 변환합니다.
제목 | Stemmed Non-Keyword Tokens |
|---|---|
|
|
|
|
removeDuplicates 토큰 필터는 앞의 keywordRepeat 토큰 필터에서 생성된 스트림에서 중복 토큰을 제거합니다.
제목 | Tokens |
|---|---|
|
|
|
|
kStemming
kStemming 토큰 필터는 어간 처리 알고리즘과 내장된 영어 사전을 조합하여 단어의 어간을 처리합니다. 소문자 텍스트를 사용하며 대문자 텍스트는 수정하지 않습니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 kStemmer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 text.en_US 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
토큰에 다음 필터를 적용합니다.
다음 쿼리는 minutes 컬렉션의 text.en_US 필드에서 용어 Meeting을 검색합니다.
MongoDB Search는 _id: 1이 있는 문서 반환하며, 여기에는 소문자로 된 복수형 텀 meetings 가 포함됩니다. 소문자 토큰 필터하다 토큰 텍스트를 소문자로 정규화하고 kStemming 토큰 필터하다 meetings text.en_US 문서 의 필드 에 있는 복수형 을 단수형 쿼리 용어와 일치시키기 때문에 MongoDB Search MongoDB 쿼리 텀 텀 문서 일치시킵니다. 또한 MongoDB Search는 인덱스 분석기 (또는 지정된 경우 searchAnalyzer 사용)를 사용하여 쿼리 텀 를 분석합니다. 구체적으로 MongoDB Search는 결과에서 문서 에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성한 다음 이를 쿼리 텀 와 일치시키는 데 사용합니다.
head, this, page, deal, with, department, meeting, head
분량
length 토큰 필터는 너무 짧거나 너무 긴 토큰을 제거합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| integer | no | 토큰의 최소 길이를 지정하는 숫자입니다. 값은 기본값: |
| integer | no | 토큰의 최대 길이를 지정하는 숫자입니다. 값은 기본값: |
예시
다음 인덱스 정의는 longOnly라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 text.sv_FI 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 사용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
토큰에 다음 필터를 적용합니다.
icuFolding 토큰 필터를 사용하여 문자 접기를 적용합니다.
length토큰화 후 UTF-16 코드 단위가 20개 이상인 토큰만 인덱싱하는 토큰 필터입니다.
다음 쿼리는 minutes 컬렉션의 text.sv_FI 필드에서 용어 forsaljningsavdelningen을 검색합니다.
MongoDB Search는 försäljningsavdelningen이라는 텀 포함된 _id: 2이 있는 문서 를 반환합니다. 텀 20 자를 초과하기 때문에 MongoDB Search는 문서 쿼리 텀 와 일치시킵니다. 또한 쿼리 텀 forsaljningsavdelningen 에 분음 부호 문자가 포함되어 있지 않지만 MongoDB Search는 문서 의 원래 텀 에 있는 분음 부호를 접어서 쿼리 텀 문서 와 일치시킵니다. 구체적으로 MongoDB Search는 _id: 2가 있는 문서 에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성합니다.
forsaljningsavdelningen
MongoDB Search는 컬렉션의 text.sv_FI 필드에서 다른 모든 터에 대한 검색 결과를 반환하지 않습니다. 필드의 다른 모든 터의 길이가 20 자 미만이기 때문입니다.
소문자
lowercase 토큰 필터는 토큰 텍스트를 소문자로 정규화합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의 예시에서는 회의록 collection의 title 필드를 nGram 토큰화 전략을 사용하여 자동 완성 유형으로 인덱싱합니다. title필드에 keywordLowerer이라는 사용자 지정 분석기를 적용합니다. 사용자 지정 분석기는 다음을 지정합니다:
키워드 토크나이저를 적용하여 문자열 또는 문자열 배열에 대한 단일 토큰을 생성합니다.
lowercase토큰 필터를 적용하여 토큰 텍스트를 소문자로 변환합니다.
다음 쿼리는 자동 완성 연산자를 사용하여 title 필드에서 문자 standup을 검색합니다.
문서 쿼리 텀 standup가 포함되어 있기 때문에 MongoDB Search는 결과에 _id: 4 이 포함된 문서 를 반환합니다. MongoDB Search는 자동 완성 유형에 대해 keyword 토크나이저, lowercase 토큰 필터 및 nGram 토큰화 전략을 사용하여 title 필드에 대한 토큰을 생성합니다. 구체적으로 MongoDB Search는 keyword 토크나이저 사용하여 전체 문자열을 단일 토큰으로 토큰화한 다음, 전체 문자열에서 정확히 일치하는 항목만 지원합니다. 그런 다음 lowercase 토큰 필터하다 사용하여 토큰을 소문자로 변환합니다. 결과의 문서 에 대해 MongoDB Search는 사용자 지정 분석기 사용하여 다음 토큰을 생성합니다.
문서 ID | 출력 토큰 |
|
|
사용자 지정 분석기 적용한 후 MongoDB Search MongoDB 인덱스 정의에 지정된 대로 title 필드를 자동 완성 유형으로 인덱스하기 때문에 n-gram의 토큰을 추가로 생성합니다. MongoDB Search는 standup에 대한 토큰이 포함된 n-gram 토큰을 사용하여 문서 쿼리 텀 standup과 일치시킵니다.
다음 인덱스 정의는 lowerCaser라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 message 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 분리 규칙에 따라 토큰을 생성합니다.
토큰에 다음 필터를 적용합니다.
icuNormalizer는 표준 유니코드 정규화 모드를 사용하여 토큰을 정규화합니다.
lowercase토큰 텍스트를 소문자로 변환하는 토큰 필터.
다음 쿼리는 message 필드에서 sign-in라는 용어를 검색합니다.
MongoDB Search는 _id: 1 _id: 3 _id: 2 sign-in icuNormalizer 토크나이저 먼저 하이픈으로 연결된 단어를 포함하여 텍스트를 분할하여 별도의 토큰 텀 생성하지만 , 문서 의 원래 대소문자를 lowercase 변환한 다음 토큰 필터하다 토큰을 소문자로 변환합니다. 또한 MongoDB Search는 인덱스 분석기 사용하여(또는 지정된 경우 searchAnalyzer를 사용하여) 쿼리 텀 분석하여 쿼리 텀 분할 하고 문서 와 일치시킵니다.
정규화 형식 | 출력 토큰 |
|
|
|
|
|
|
nGram
nGram 토큰 필터는 입력을 구성된 크기의 n-그램으로 토큰화합니다. 동의어 또는 자동 완성 매핑 정의에는 nGram 토큰 필터를 사용할 수 없습니다.
참고
regex (MongoDB 검색 연산자) 또는 wildcard 연산자로 쿼리하는 경우 입력 토큰당 둘 이상의 출력 토큰을 생성하므로 wordDelimiterGraph 토큰 필터를 searchAnalyzer (으)로 사용할 수 없습니다. 인덱스 정의에서 searchAnalyzer (으)로 다른 분석기 지정합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| integer | 네 | 생성되는 n-그램의 최소 길이를 지정하는 숫자입니다. 값은 |
| integer | 네 | 생성되는 n-그램의 최대 길이를 지정하는 숫자입니다. 값은 |
| 문자열 | no | 토큰을
기본값: |
예시
다음 인덱스 정의는 titleAutocomplete이라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 title 필드를 인덱싱합니다. 키워드 분석기 를 searchAnalyzer(으)로 지정합니다. 사용자 지정 분석기 함수는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성합니다.
토큰에 일련의 토큰 필터를 적용합니다.
englishPossessive을(를) 사용하여 단어에서 소유격(단어 끝의's)을 제거합니다.nGram을(를) 사용하여 단어를 4~7자 길이로 토큰화합니다.
다음 쿼리는 와일드카드 연산자를 사용하여 minutes 컬렉션의 title 필드에서 용어 meet과 해당 용어 뒤로 다른 문자 여러 개가 이어지는 용어를 모두 검색합니다.
문서에 meeting 텀 포함되어 있기 때문에 MongoDB Search는 _id: 1 및 _id: 3 이 있는 문서를 반환하며, MongoDB Search는 다음 토큰(검색 가능한 용어)을 생성하여 쿼리 기준 meet* 과 일치시킵니다.
정규화 형식 | 출력 토큰 |
|---|---|
|
|
|
|
참고
MongoDB Search는 termNotInBounds 매개 변수가 기본값 으로 omit 로 설정하다 있기 때문에 4 자 미만(예: the) 및 7 초과의 용어에 대해서는 토큰을 생성하지 않습니다. termNotInBounds 매개변수의 값을 include로 설정하다 MongoDB Search는 the 라는 텀 에 대한 토큰도 생성합니다.
porterStemming
porterStemming 토큰 필터는 포터 어간 처리 알고리즘을 사용하여 영어 단어에서 일반적인 어간 및 굴절 접미사를 제거합니다. 소문자 텍스트가 처리되며 대문자 텍스트는 처리되지 않습니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 porterStemmer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 title 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
토큰에 다음 토큰 필터를 적용합니다.
lowercase 토큰 필터: 단어를 소문자로 변환합니다.
porterStemming 토큰 필터: 단어에서 일반적인 형태소 및 굴절 접미사를 제거합니다.
다음 쿼리는 minutes 컬렉션의 title 필드에서 용어 Meet을 검색합니다.
소문자 토큰 필터하다 _id: 1 _id: 3 토큰 텍스트를 소문자로 정규화한 다음 porterStemming 토큰 필터하다 토큰에서 형태소 접미사를 제거하여 토큰을 생성하기 때문에 MongoDB Search는 및 meeting meet 이 있는 문서를 반환합니다. MongoDB Search는 쿼리 텀 Meet 과 일치합니다. 구체적으로 MongoDB Search는 결과의 문서에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성한 다음 쿼리 텀 Meet와 일치시킵니다.
정규화 형식 | 출력 토큰 |
|---|---|
|
|
|
|
정규식
regex 토큰 필터는 각 토큰에 Java 정규식 구문을 사용한 정규 표현식을 적용하여 일치 항목을 지정된 string로 바꿉니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 문자열 | 네 | 사람이 읽을 수 있는 레이블로 이 토큰 필터를 식별합니다. 값은 | |||||||||||||||||||||
| 문자열 | 네 | 각 토큰에 적용할 표현식 패턴입니다. | |||||||||||||||||||||
| 문자열 | 네 | 일치하는 패턴이 발생할 때마다 대체할 대체 문자열입니다. 토큰을 무시하거나 삭제하기 위해 빈 string( | |||||||||||||||||||||
| 문자열 | 네 | 허용되는 값은 다음과 같습니다.
|
예시
다음 인덱스 정의는 emailRedact라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 page_updated_by.email 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
키워드 토크나이저를 적용하여 필드 값의 모든 단어를 단일 용어로 인덱싱합니다.
토큰에 다음 토큰 필터를 적용합니다.
lowercase 토큰 필터를 사용하여 토큰의 대문자를 소문자로 바꿀 수 있습니다.
regex토큰 필터를 사용하여 토큰에서 이메일 주소처럼 보이는 문자열을 찾아redacted라는 단어로 바꿉니다.
다음 쿼리는 와일드카드 연산자를 사용하여 minutes 컬렉션의 page_updated_by.email 필드에서 용어 앞으로 다른 문자 여러 개가 붙어 있는 용어 example.com을 검색합니다.
1 db.minutes.aggregate([ 2 { 3 "$search": { 4 "index": "default", 5 "wildcard": { 6 "query": "*example.com", 7 "path": "page_updated_by.email", 8 "allowAnalyzedField": true 9 } 10 } 11 }, 12 { 13 "$project": { 14 "_id": 1, 15 "page_updated_by.email": 1 16 } 17 } 18 ])
page_updated_by.email 필드 이메일 주소에 example.com 라는 단어가 포함되어 있지만 MongoDB Search는 쿼리 에 대한 결과를 반환하지 않습니다. MongoDB Search는 사용자 지정 분석기 에 제공된 정규 표현식 에 단어 redacted 와 일치하는 문자열을 토큰화하므로 MongoDB 텀 쿼리 문서 와도 일치시키지 않습니다.
removeDuplicates
removeDuplicates 토큰 필터는 동일한 위치의 동일한 텀에 대한 토큰인 연속 중복 토큰을 제거합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 사람이 읽을 수 있는 레이블로 이 토큰 필터를 식별합니다. 값은 |
예시
다음 인덱스 정의는 duplicateRemover라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 title 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
공백 토크나이저를 적용하여 단어 사이의 공백 발생을 기준으로 토큰을 생성합니다.
토큰에 다음 필터를 적용합니다.
keywordRepeat 토큰 필터는 키워드 토큰과 비키워드 토큰으로 토큰을 두 번 생성합니다.
removeDuplicates를 사용하여 스트림에서 이전 토큰과 동일한 위치 및 텀을 가진 토큰을 필터링합니다.
다음 쿼리는 minutes 컬렉션의 title 필드에서 mee* 텀을 wildcard 연산자를 사용하여 검색합니다.
MongoDB 검색은 제목 필드에 meeting이라는 텀이 포함된 문서를 반환합니다. keywordRepeat 토큰 필터는 결과 문서에 대해 다음 토큰을 생성합니다.
제목 | Keyword Tokens | Non-Keyword tokens |
|---|---|---|
|
|
|
|
|
|
removeDuplicates 토큰 필터는 스트림에서 중복된 토큰을 제거합니다.
reverse
reverse 토큰 필터는 각 문자열 토큰을 반전시킵니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 사람이 읽을 수 있는 레이블로 이 토큰 필터를 식별합니다. 값은 |
예시
다음 인덱스 정의는 keywordReverse라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 page_updated_by.email 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
키워드 토크나이저를 적용하여 전체 문자열을 단일 용어로 토큰화합니다.
reverse토큰 필터를 적용하여 문자열 토큰을 반전시킵니다.
다음 쿼리는 와일드카드 연산자를 사용하여 minutes 컬렉션의 page_updated_by.email 필드를 검색하여 @example.com 문자 앞의 모든 문자를 역순으로 일치시킵니다. reverse 토큰 필터를 사용하면 선행 와일드카드 쿼리의 속도를 높일 수 있습니다.
앞의 쿼리 에 대해 MongoDB Search는 사용자 지정 분석기 와일드카드 쿼리 에 적용하여 다음과 같이 쿼리 변환합니다.
moc.elpmaxe@*
그런 다음 MongoDB Search는 인덱싱된 토큰에 대해 쿼리 실행하며, 이 토큰도 역방향으로 변환됩니다. 구체적으로 MongoDB Search는 결과의 문서에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성한 다음 쿼리 텀 moc.elpmaxe@*과 일치시킵니다.
정규화 형식 | 출력 토큰 |
|---|---|
|
|
|
|
|
|
|
|
싱글
shingle 토큰 필터는 일련의 토큰에서 싱글(토큰 n-그램)을 구성합니다. 동의어 또는 자동 완성 매핑 정의에는 shingle 토큰 필터를 사용할 수 없습니다.
참고
regex (MongoDB 검색 연산자) 또는 wildcard 연산자로 쿼리하는 경우 입력 토큰당 둘 이상의 출력 토큰을 생성하므로 wordDelimiterGraph 토큰 필터를 searchAnalyzer (으)로 사용할 수 없습니다. 인덱스 정의에서 searchAnalyzer (으)로 다른 분석기 지정합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| integer | 네 | 싱글당 최소 토큰 수입니다. |
| integer | 네 | 싱글당 최대 토큰 수입니다. 값은 |
예시
minutes 컬렉션 의 필드 에 대한 다음 인덱스 정의 예시 page_updated_by.email 에서는 두 개의 사용자 지정 분석기emailAutocompleteIndex 및 를 emailAutocompleteSearch 사용하여 자동 완성과 유사한 기능을 구현 . MongoDB Search는 인덱스 생성 중에 emailAutocompleteIndex 분석기 사용하여 다음을 수행합니다.
MongoDB Search는 검색 중에 emailAutocompleteSearch 분석기 사용하여 다음을 수행합니다.
필드에서
@문자를AT로 바꾸기공백 토크나이저를 사용하여 토큰 생성
다음 쿼리는 minutes 컬렉션의 page_updated_by.email 필드에서 이메일 주소를 검색합니다.
MongoDB Search는 emailAutocompleteSearch 분석기 사용하여 검색 토큰을 생성한 다음 emailAutocompleteIndex 분석기 사용하여 생성한 인덱스 토큰과 일치시킵니다. 다음 표는 MongoDB Search에서 생성하는 검색 및 인덱스 토큰(최대 15 자)을 보여줍니다.
토큰 검색 | Index Tokens |
|---|---|
|
|
snowballStemming
snowballStemming 토큰은 Snowball에서 생성된 어간 처리기를 사용하여 Stems 토큰을 필터링합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| 문자열 | 네 | 유효한 값은 다음과 같습니다.
|
예시
다음 인덱스 정의는 frenchStemmer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 text.fr_CA 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
토큰에 다음 토큰 필터를 적용합니다.
lowercase 토큰 필터를 사용하여 토큰을 소문자로 변환합니다.
french어간 단어에 대한snowballStemming토큰 필터의 변형입니다.
다음 쿼리는 minutes 컬렉션의 text.fr_CA 필드에서 용어 réunion을 검색합니다.
MongoDB Search는 _id: 1 가 포함된 문서 결과로 반환합니다. MongoDB Search는 문서 에 대해 다음 토큰을 생성한 다음 이를 사용하여 쿼리 텀 réunion과 일치시키기 때문에 쿼리 텀 를 문서 와 일치시킵니다.
문서 ID | 출력 토큰 |
|---|---|
|
|
spanishPluralStemming
spanishPluralStemming 토큰 필터는 스페인어 복수형 단어의 어간을 처리합니다. 소문자 텍스트를 사용합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 spanishPluralStemmer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 text.es_MX 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
토큰에 다음 토큰 필터를 적용합니다.
lowercase 토큰 필터를 사용하여 스페인어 용어를 소문자로 변환합니다.
spanishPluralStemming토큰 필터를 사용하여 토큰의 복수형 스페인어 단어를 단수형으로 변환합니다.
다음 쿼리는 minutes 컬렉션의 text.es_MX 필드에서 스페인어 용어 punto를 검색합니다.
문서 의 text.es_MX 필드 에 복수형 텀 puntos가 포함되어 있기 때문에 MongoDB Search는 _id: 4 이 포함된 문서 반환합니다. MongoDB Search MongoDB 이 텀 에서 복수형(s)을 어간으로 하여 puntos 를 punto 로 분석하기 때문에 이 문서 쿼리 텀 punto 에 대해 일치시킵니다. 구체적으로 MongoDB Search는 결과에서 문서 에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성한 다음 이를 쿼리 텀 와 일치시키는 데 사용합니다.
문서 ID | 출력 토큰 |
|
|
stempel
stempel 토큰 필터는 Lucene의 기본 폴란드어 어간 처리 테이블을 사용하여 폴란드어로 된 단어의 어간을 처리합니다. 소문자 텍스트를 사용합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 stempelStemmer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 text.pl_PL 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
표준 토크나이저를 적용하여 단어 나누기 규칙에 따라 토큰을 생성하세요.
토큰에 다음 필터를 적용합니다.
다음 쿼리는 minutes 컬렉션의 text.pl_PL 필드에서 폴란드어 용어 punkt를 검색합니다.
문서 의 text.pl_PL 필드 에 복수형 텀 punkty가 포함되어 있기 때문에 MongoDB Search는 _id: 4 이 포함된 문서 반환합니다. MongoDB Search MongoDB 이 텀 에서 복수형(y)을 어간으로 하여 punkty 를 punkt 로 분석하기 때문에 이 문서 쿼리 텀 punkt 에 대해 일치시킵니다. 구체적으로 MongoDB Search는 결과에서 문서 에 대해 다음과 같은 토큰(검색 가능한 용어)을 생성한 다음 쿼리 텀 와 일치시킵니다.
문서 ID | 출력 토큰 |
|---|---|
|
|
중지 단어
stopword 토큰 필터는 지정된 중지 단어에 해당하는 토큰을 제거합니다. 이 토큰 필터는 지정된 중지 단어를 분석하지 않습니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| 문자열 배열 | 네 | 제거할 토큰에 해당하는 중지 단어가 포함된 목록입니다. 값은 하나 이상의 중지 단어여야 합니다. |
| 부울 | no | 제거할 토큰을 필터링할 때 중지 단어의 대소문자를 무시할지 여부를 나타내는 플래그입니다. 값은 다음 중 하나일 수 있습니다.
기본값: |
예시
다음 인덱스 정의는 stopwordRemover라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 title 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
공백 토크나이저를 적용하여 단어 사이의 공백 발생을 기준으로 토큰을 생성합니다.
정의된 중지 단어
is,the및at과 일치하는 토큰을 제거하기 위해stopword토큰 필터를 적용합니다. 토큰 필터는 대소문자를 구분하지 않으며 지정된 중지 단어와 일치하는 모든 토큰을 제거합니다.
다음 쿼리는 minutes 컬렉션의 text.en_US 필드에서 head of the sales 구문을 검색합니다.
en_US 필드 쿼리 텀 포함되어 있기 때문에 MongoDB Search는 _id: 2 이 포함된 문서 를 반환합니다. MongoDB Search는 분석 중에 문서 에서 중지 단어 the 에 대한 토큰을 생성하지 않지만, string 필드의 경우 인덱스 분석기 사용하여 쿼리 텀 분석하기 때문에 여전히 쿼리 텀 와 일치시킬 수 있습니다(또는 다음과 같은 경우). 지정된, searchAnalyzer 사용) MongoDB Search가 쿼리 텀 문서 와 일치시킬 수 있도록 쿼리 텀 에서 중지 단어를 제거합니다. 구체적으로 MongoDB Search는 결과에서 문서 에 대해 다음과 같은 토큰을 생성합니다.
문서 ID | 출력 토큰 |
|---|---|
|
|
트림
trim 토큰 필터는 토큰에서 선행 및 후행 공백을 잘라냅니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
예시
다음 인덱스 정의는 tokenTrimmer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 text.en_US를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
htmlStrip 문자 필터를 적용하여
a태그 외의 모든 HTML 태그를 텍스트에서 제거합니다.키워드 토크나이저를 적용하여 전체 문자열에 대한 단일 토큰을 생성합니다.
trim토큰 필터를 적용하여 토큰의 선행 및 후행 공백을 제거합니다.
다음 쿼리는 minutes 컬렉션의 text.en_US 필드에서 *department meetings*를 포함하고 그 앞뒤로 다른 문자 여러 개가 포함된 용어를 검색합니다.
en_US 필드 쿼리 텀 department meetings가 포함되어 있기 때문에 MongoDB Search는 _id: 1 이 포함된 문서 반환합니다. MongoDB Search는 결과에서 문서 에 대해 다음과 같은 토큰을 생성하며, 이는 MongoDB Search가 HTML 태그를 제거하고 전체 문자열에 대해 단일 토큰을 생성했으며 토큰의 선행 및 후행 공백을 제거했음을 보여줍니다.
문서 ID | 출력 토큰 |
|---|---|
|
|
wordDelimiterGraph
wordDelimiterGraph 토큰 필터는 구성된 규칙에 따라 토큰을 하위 토큰으로 분할합니다. 표준 토크나이저는 이 토큰 필터가 경계를 결정하는 데 사용하는 많은 단어 내 구분 기호를 제거하므로 이 토큰 필터를 표준 토크나이저와 함께 사용하지 않는 것이 좋습니다.
참고
regex (MongoDB 검색 연산자) 또는 wildcard 연산자로 쿼리하는 경우 입력 토큰당 둘 이상의 출력 토큰을 생성하므로 wordDelimiterGraph 토큰 필터를 searchAnalyzer (으)로 사용할 수 없습니다. 인덱스 정의에서 searchAnalyzer (으)로 다른 분석기 지정합니다.
속성
다음과 같은 속성이 있습니다.
이름 | 유형 | 필수 사항입니다. | 설명 |
|---|---|---|---|
| 문자열 | 네 | 이 토큰 필터 유형을 식별하는, 사람이 읽을 수 있는 레이블입니다. 값은 |
| 객체 | no | 단어를 하위 단어로 분할하는 방법을 결정하는 규칙이 포함된 객체입니다. 기본값: |
| 부울 | no | 하위 단어를 기준으로 토큰을 분할할지 여부를 나타내는 플래그입니다. 예를 들어 기본값: |
| 부울 | no | 하위 번호를 기준으로 토큰을 분할할지 여부를 나타내는 플래그입니다. 예를 들어 기본값: |
| 부울 | no | 하위 단어의 실행을 연결할지 여부를 나타내는 플래그입니다. 예를 들어 기본값: |
| 부울 | no | 하위 번호의 실행을 연결할지 여부를 나타내는 플래그입니다. 예를 들어 기본값: |
| 부울 | no | 모든 실행을 연결할지 여부를 나타내는 플래그입니다. 예를 들어 기본값: |
| 부울 | no | 원래 단어의 토큰을 생성할지 여부를 나타내는 플래그입니다. 기본값: |
| 부울 | no | 대소문자 전환에 따라 토큰을 분할할지 여부를 나타내는 플래그입니다. 예를 들어 기본값: |
| 부울 | no | 문자-숫자 전환에 따라 토큰을 분할할지 여부를 나타내는 플래그입니다. 예를 들어 기본값: |
| 부울 | no | 각 하위 단어에서 후행 소유격을 제거할지 여부를 나타내는 플래그입니다. 예를 들어 기본값: |
| 부울 | no |
기본값: |
| 객체 | no | 보호된 단어에 대한 옵션이 포함된 객체입니다. 기본값: |
| 배열 | 조건부 | 분할되지 않도록 보호할 토큰이 포함된 목록입니다. |
| 부울 | no | 보호된 단어의 대소문자 구분을 무시할지 여부를 나타내는 플래그입니다. 기본값: |
true인 경우, 이 옵션 뒤에 flattenGraph 토큰 필터를 적용하여 토큰 스트림을 인덱싱에 적합하게 만듭니다.
예시
다음 인덱스 정의는 wordDelimiterGraphAnalyzer라는 사용자 지정 분석기를 사용하여 minutes 컬렉션의 title 필드를 인덱싱합니다. 사용자 지정 분석기는 다음을 지정합니다.
공백 토크나이저를 적용하여 단어 사이의 공백 발생을 기준으로 토큰을 생성합니다.
다음에 wordDelimiterGraph 토큰 필터를 적용합니다.
is,the,at를 분할하려고 하지 마세요. 제외는 대소문자를 구분합니다. 예를 들어Is및tHe는 제외되지 않습니다.대소문자 변경 시 토큰을 분할하고 영어 알파벳에서 알파벳만 포함된 토큰을 제거합니다.
다음 쿼리는 minutes 컬렉션의 title 필드에서 용어 App2을 검색합니다.
문서 의 title 필드 에 App2가 포함되어 있기 때문에 MongoDB Search는 _id: 4 이 포함된 문서 를 반환합니다. MongoDB Search는 대소문자 변경 시 토큰을 분할하고 분할 로 생성된 토큰 중 알파벳 문자만 포함된 토큰을 제거합니다. 또한 인덱스 분석기 사용하여(또는 지정된 경우 searchAnalyzer을 사용하여) 쿼리 텀 분석하여 대소문자 변경 시 단어를 분할 하고 2 앞의 문자를 제거 . 구체적으로 MongoDB Search는 protectedWords 및 delimiterOptions 옵션에 대해 _id : 4 를 사용하여 문서 에 대해 다음과 같은 토큰을 생성합니다.
wordDelimiterGraph 옵션 | 출력 토큰 |
|---|---|
|
|
|
|