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

KStem token filter

원문 보기 위키 갱신

출처: 문서

본문

KStem 토큰 필터

kstem 토큰 필터는 단어를 어근 형태로 줄이는 데 사용되는 스테밍 필터예요. 이 필터는 영어를 위해 설계된 경량 알고리즘 스테머로, 다음과 같은 스테밍 작업을 수행해요:

  • 복수형을 단수형으로 줄여요.
  • 다양한 동사 시제를 기본형으로 변환해요.
  • "-ing"나 "-ed" 같은 일반적인 파생형 접미사를 제거해요.

kstem 토큰 필터는 light_english 언어로 설정된 stemmer 필터와 동일해요. porter_stem 같은 다른 스테밍 필터에 비해 더 보수적인 스테밍을 제공해요.

kstem 토큰 필터는 Lucene KStemFilter를 기반으로 해요. 자세한 내용은 Lucene 문서를 참고하세요.

예제

다음 예제 요청은 my_kstem_index라는 새 인덱스를 생성하고 kstem 필터가 설정된 애널라이저를 구성해요:

PUT /my_kstem_index
{
  "settings": {
    "analysis": {
      "filter": {
        "kstem_filter": {
          "type": "kstem"
        }
      },
      "analyzer": {
        "my_kstem_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "kstem_filter"
          ]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "analyzer": "my_kstem_analyzer"
      }
    }
  }
}

{% include copy-curl.html %}

생성된 토큰

다음 요청을 사용해 애널라이저로 생성된 토큰을 확인해 보세요:

POST /my_kstem_index/_analyze
{
  "analyzer": "my_kstem_analyzer",
  "text": "stops stopped"
}

{% include copy-curl.html %}

응답에는 생성된 토큰이 포함되어 있어요:

{
  "tokens": [
    {
      "token": "stop",
      "start_offset": 0,
      "end_offset": 5,
      "type": "<ALPHANUM>",
      "position": 0
    },
    {
      "token": "stop",
      "start_offset": 6,
      "end_offset": 13,
      "type": "<ALPHANUM>",
      "position": 1
    }
  ]
}

더 알아보기 (Learn more)