Phonetic token filter
출처: 문서
본문
Phonetic 토큰 필터
phonetic 토큰 필터는 토큰을 음성 표현으로 변환해서, 발음은 비슷하지만 철자가 다른 단어를 더 유연하게 매칭할 수 있게 해줘요. 사용자가 철자는 다르게 쓰지만 발음은 비슷하게 부르는 이름, 브랜드, 기타 엔티티를 검색할 때 특히 유용해요.
phonetic 토큰 필터는 기본적으로 OpenSearch 배포판에 포함되어 있지 않아요. 이 토큰 필터를 사용하려면 먼저 다음과 같이 analysis-phonetic 플러그인을 설치한 다음 OpenSearch를 재시작해야 해요:
./bin/opensearch-plugin install analysis-phonetic
{% include copy.html %}
플러그인 설치에 대한 자세한 내용은 Managing OpenSearch plugins를 참고하세요. {: .note}
파라미터
phonetic 토큰 필터는 다음 파라미터로 설정할 수 있어요.
| 파라미터 | 필수/선택 | 데이터 타입 | 설명 |
|---|---|---|---|
encoder |
선택 | String | 사용할 음성 알고리즘을 지정해요. 유효한 값은 다음과 같아요: - metaphone (기본값)- double_metaphone- soundex- refined_soundex- caverphone1- caverphone2- cologne- nysiis- koelnerphonetik- haasephonetik- beider_morse- daitch_mokotoff |
replace |
선택 | Boolean | 원본 토큰을 대체할지 여부예요. false로 설정하면 원본 토큰이 음성 인코딩과 함께 출력에 포함돼요. 기본값은 true예요. |
예시
다음 예제 요청은 names_index라는 이름의 새 인덱스를 생성하고 phonetic 필터가 설정된 애널라이저를 구성해요:
PUT /names_index
{
"settings": {
"analysis": {
"filter": {
"my_phonetic_filter": {
"type": "phonetic",
"encoder": "double_metaphone",
"replace": true
}
},
"analyzer": {
"phonetic_analyzer": {
"tokenizer": "standard",
"filter": [
"my_phonetic_filter"
]
}
}
}
}
}
{% include copy-curl.html %}
생성된 토큰
애널라이저가 Stephen과 Steven이라는 이름에 대해 생성한 토큰을 확인하려면 다음 요청을 사용해 보세요:
POST /names_index/_analyze
{
"text": "Stephen",
"analyzer": "phonetic_analyzer"
}
{% include copy-curl.html %}
POST /names_index/_analyze
{
"text": "Steven",
"analyzer": "phonetic_analyzer"
}
{% include copy-curl.html %}
두 경우 모두 응답에 동일한 생성 토큰이 포함돼요:
{
"tokens": [
{
"token": "STFN",
"start_offset": 0,
"end_offset": 6,
"type": "<ALPHANUM>",
"position": 0
}
]
}