ASCII folding token filter
출처: 문서
본문
ASCII folding token filter
asciifolding 토큰 필터는 ASCII가 아닌 문자를 가장 가까운 ASCII 문자로 변환합니다. 예를 들어, é는 e로, ü는 u로, ñ는 n으로 변환됩니다. 이 과정을 음역이라고 합니다.
asciifolding 토큰 필터는 여러 가지 이점을 제공합니다:
- 향상된 검색 유연성: 사용자가 쿼리를 입력할 때 악센트나 특수 문자를 생략하는 경우가 많습니다.
asciifolding토큰 필터는 이러한 쿼리도 관련 결과를 반환하도록 보장합니다. - 정규화: 악센트가 있는 문자가 일관되게 ASCII 문자로 변환되도록 하여 인덱싱 과정을 표준화합니다.
- 국제화: 여러 언어와 문자 집합을 포함하는 애플리케이션에 특히 유용합니다.
asciifolding 토큰 필터는 검색을 단순화할 수 있지만, 데이터셋에서 악센트가 있는 문자와 없는 문자 간의 구분이 중요한 경우 특정 정보가 손실될 수도 있습니다.
{: .warning}
Parameters
asciifolding 토큰 필터는 preserve_original 매개변수를 사용하여 구성할 수 있습니다. 이 매개변수를 true로 설정하면 원래 토큰과 ASCII 폴딩된 버전이 모두 토큰 스트림에 유지됩니다. 이는 검색 쿼리에서 원래(악센트 포함) 버전과 정규화된(악센트 없음) 버전을 모두 일치시키려는 경우에 특히 유용할 수 있습니다. 기본값은 false입니다.
Example
다음 예제 요청은 example_index라는 새 인덱스를 생성하고 asciifolding 필터와 preserve_original 매개변수를 true로 설정한 분석기를 정의합니다:
PUT /example_index
{
"settings": {
"analysis": {
"filter": {
"custom_ascii_folding": {
"type": "asciifolding",
"preserve_original": true
}
},
"analyzer": {
"custom_ascii_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"custom_ascii_folding"
]
}
}
}
}
}
{% include copy-curl.html %}
Generated tokens
다음 요청을 사용하여 분석기로 생성된 토큰을 확인합니다:
POST /example_index/_analyze
{
"analyzer": "custom_ascii_analyzer",
"text": "Résumé café naïve coördinate"
}
{% include copy-curl.html %}
응답에는 생성된 토큰이 포함됩니다:
{
"tokens": [
{
"token": "resume",
"start_offset": 0,
"end_offset": 6,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "résumé",
"start_offset": 0,
"end_offset": 6,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "cafe",
"start_offset": 7,
"end_offset": 11,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "café",
"start_offset": 7,
"end_offset": 11,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "naive",
"start_offset": 12,
"end_offset": 17,
"type": "<ALPHANUM>",
"position": 2
},
{
"token": "naïve",
"start_offset": 12,
"end_offset": 17,
"type": "<ALPHANUM>",
"position": 2
},
{
"token": "coordinate",
"start_offset": 18,
"end_offset": 28,
"type": "<ALPHANUM>",
"position": 3
},
{
"token": "coördinate",
"start_offset": 18,
"end_offset": 28,
"type": "<ALPHANUM>",
"position": 3
}
]
}