본문 바로가기
WIKI 기술 지식 베이스

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
    }
  ]
}

더 알아보기 (Learn more)