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

Elision token filter

원문 보기 위키 갱신

출처: 문서

본문

Elision 토큰 필터

elision 토큰 필터는 특정 언어의 단어에서 탈락(elision)된 문자를 제거하는 데 사용해요. 탈락은 주로 프랑스어 같은 언어에서 나타나는데, 이런 언어에서는 단어가 자주 축약되어 뒤에 오는 단어와 결합하고, 보통 모음을 생략한 뒤 아포스트로피로 대체하는 방식으로 이루어져요.

다음 언어 분석기에는 elision 토큰 필터가 이미 사전 구성되어 있어요: catalan, french, irish, italian. {: .note}

파라미터

커스텀 elision 토큰 필터는 다음 파라미터로 구성할 수 있어요.

파라미터 필수/선택 데이터 타입 설명
articles articles_path가 구성되어 있지 않으면 필수 Array of strings 탈락의 일부로 나타날 때 제거할 관사나 짧은 단어를 정의해요.
articles_path articles가 구성되어 있지 않으면 필수 String 분석 과정에서 제거해야 할 관사 목록이 담긴 커스텀 파일의 경로를 지정해요.
articles_case 선택 Boolean 탈락을 매칭할 때 필터가 대소문자를 구분하는지 여부를 지정해요. 기본값은 false예요.

예제

프랑스어 탈락의 기본 집합은 l', m', t', qu', n', s', j', d', c', jusqu', quoiqu', lorsqu', puisqu'로 구성되어 있어요. french_elision 토큰 필터를 구성하면 이 집합을 변경할 수 있어요. 다음 예제 요청은 french_texts라는 이름의 새 인덱스를 생성하고 french_elision 필터가 적용된 분석기를 구성해요:

PUT /french_texts
{
  "settings": {
    "analysis": {
      "filter": {
        "french_elision": {
          "type": "elision",
          "articles": [ "l", "t", "m", "d", "n", "s", "j" ]
        }
      },
      "analyzer": {
        "french_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": ["lowercase", "french_elision"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "text": {
        "type": "text",
        "analyzer": "french_analyzer"
      }
    }
  }
}

{% include copy-curl.html %}

생성된 토큰

다음 요청을 사용해서 분석기가 생성한 토큰을 확인해 보세요:

POST /french_texts/_analyze
{
  "analyzer": "french_analyzer",
  "text": "L'étudiant aime l'école et le travail."
}

{% include copy-curl.html %}

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

{
  "tokens": [
    {
      "token": "étudiant",
      "start_offset": 0,
      "end_offset": 10,
      "type": "<ALPHANUM>",
      "position": 0
    },
    {
      "token": "aime",
      "start_offset": 11,
      "end_offset": 15,
      "type": "<ALPHANUM>",
      "position": 1
    },
    {
      "token": "école",
      "start_offset": 16,
      "end_offset": 23,
      "type": "<ALPHANUM>",
      "position": 2
    },
    {
      "token": "et",
      "start_offset": 24,
      "end_offset": 26,
      "type": "<ALPHANUM>",
      "position": 3
    },
    {
      "token": "le",
      "start_offset": 27,
      "end_offset": 29,
      "type": "<ALPHANUM>",
      "position": 4
    },
    {
      "token": "travail",
      "start_offset": 30,
      "end_offset": 37,
      "type": "<ALPHANUM>",
      "position": 5
    }
  ]
}

더 알아보기 (Learn more)