Fingerprint analyzer
출처: 문서
본문
Fingerprint 분석기
fingerprint 분석기는 텍스트 지문(fingerprint)을 생성해요. 이 분석기는 입력으로부터 생성된 용어(토큰)를 정렬하고 중복을 제거한 뒤, 구분자를 사용해 하나로 이어 붙여요. 단어 순서에 상관없이 같은 단어를 포함하는 유사한 입력에 대해 동일한 출력을 만들어내기 때문에, 데이터 중복 제거에 널리 사용돼요.
fingerprint 분석기는 다음 구성 요소로 이루어져 있어요:
- Standard tokenizer
- Lowercase token filter
- ASCII folding token filter
- Stop token filter
- Fingerprint token filter
파라미터
fingerprint 분석기는 다음 파라미터를 사용해 설정할 수 있어요.
| 파라미터 | 필수/선택 | 데이터 타입 | 설명 |
|---|---|---|---|
separator |
선택 | String | 토큰화, 정렬, 중복 제거를 마친 용어들을 이어 붙일 때 사용할 문자를 지정해요. 기본값은 공백( )이에요. |
max_output_size |
선택 | Integer | 출력 토큰의 최대 크기를 정의해요. 이어 붙인 지문이 이 크기를 초과하면 잘려 나가요. 기본값은 255예요. |
stopwords |
선택 | String 또는 문자열 리스트 | 커스텀 또는 사전 정의된 불용어 목록이에요. 기본값은 _none_이에요. |
stopwords_path |
선택 | String | 불용어 목록이 담긴 파일의 경로(절대 경로 또는 config 디렉터리 기준 상대 경로)예요. |
예제
다음 명령어를 사용하면 fingerprint 분석기를 갖는 my_custom_fingerprint_index라는 이름의 인덱스를 생성할 수 있어요:
PUT /my_custom_fingerprint_index
{
"settings": {
"analysis": {
"analyzer": {
"my_custom_fingerprint_analyzer": {
"type": "fingerprint",
"separator": "-",
"max_output_size": 50,
"stopwords": ["to", "the", "over", "and"]
}
}
}
},
"mappings": {
"properties": {
"my_field": {
"type": "text",
"analyzer": "my_custom_fingerprint_analyzer"
}
}
}
}
{% include copy-curl.html %}
생성된 토큰
다음 요청을 사용해 이 분석기로 생성된 토큰을 확인해 보세요:
POST /my_custom_fingerprint_index/_analyze
{
"analyzer": "my_custom_fingerprint_analyzer",
"text": "The slow turtle swims over to the dog"
}
{% include copy-curl.html %}
응답에는 생성된 토큰이 담겨 있어요:
{
"tokens": [
{
"token": "dog-slow-swims-turtle",
"start_offset": 0,
"end_offset": 37,
"type": "fingerprint",
"position": 0
}
]
}
추가 커스터마이징
추가적인 커스터마이징이 필요하다면, fingerprint 분석기 구성 요소를 포함하는 분석기를 직접 정의할 수 있어요:
PUT /custom_fingerprint_analyzer
{
"settings": {
"analysis": {
"analyzer": {
"custom_fingerprint": {
"tokenizer": "standard",
"filter": [
"lowercase",
"asciifolding",
"fingerprint"
]
}
}
}
}
}
{% include copy-curl.html %}