Fingerprint token filter
출처: 문서
본문
Fingerprint 토큰 필터
fingerprint 토큰 필터는 텍스트를 표준화하고 중복을 제거하는 데 사용돼요. 텍스트 처리에서 일관성이 중요한 경우에 특히 유용해요. fingerprint 토큰 필터는 다음 단계에 따라 텍스트를 처리해서 이를 수행해요:
- 소문자 변환: 모든 텍스트를 소문자로 바꿔요.
- 분할: 텍스트를 토큰으로 나눠요.
- 정렬: 토큰을 알파벳 순으로 배열해요.
- 중복 제거: 반복되는 토큰을 없애요.
- 토큰 결합: 토큰을 하나의 문자열로 합쳐요. 보통 공백이나 지정된 다른 구분자로 연결해요.
파라미터
fingerprint 토큰 필터는 다음 두 파라미터로 설정할 수 있어요.
| 파라미터 | 필수/선택 | 데이터 타입 | 설명 |
|---|---|---|---|
max_output_size |
선택 | Integer | 생성되는 fingerprint 문자열의 길이를 제한해요. 연결된 문자열이 max_output_size를 초과하면 필터가 아무런 출력도 만들지 않아서 빈 토큰이 돼요. 기본값은 255예요. |
separator |
선택 | String | 정렬과 중복 제거를 마친 토큰들을 하나의 문자열로 합칠 때 사용할 문자를 정의해요. 기본값은 공백(" ")이에요. |
예제
다음 예제 요청은 my_index라는 새 인덱스를 만들고 fingerprint 토큰 필터가 설정된 애널라이저를 구성해요:
PUT /my_index
{
"settings": {
"analysis": {
"filter": {
"my_fingerprint": {
"type": "fingerprint",
"max_output_size": 200,
"separator": "-"
}
},
"analyzer": {
"my_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"my_fingerprint"
]
}
}
}
}
}
{% include copy-curl.html %}
생성된 토큰
애널라이저를 사용해 생성된 토큰을 확인하려면 다음 요청을 사용해 보세요:
POST /my_index/_analyze
{
"analyzer": "my_analyzer",
"text": "OpenSearch is a powerful search engine that scales easily"
}
{% include copy-curl.html %}
응답에는 생성된 토큰이 담겨 있어요:
{
"tokens": [
{
"token": "a-easily-engine-is-opensearch-powerful-scales-search-that",
"start_offset": 0,
"end_offset": 57,
"type": "fingerprint",
"position": 0
}
]
}