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

Pattern capture token filter

원문 보기 위키 갱신

출처: 문서

본문

Pattern capture 토큰 필터

pattern_capture 토큰 필터는 정규식을 사용해 특정 패턴에 따라 텍스트의 일부를 캡처하고 추출하는 강력한 필터예요. 이메일 도메인, 해시태그, 숫자처럼 토큰의 특정 부분을 추출해서 추가 분석이나 인덱싱에 활용하고 싶을 때 이 필터가 유용하게 쓰일 수 있어요.

파라미터

pattern_capture 토큰 필터는 다음 파라미터로 설정할 수 있어요.

파라미터 필수/선택 데이터 타입 설명
patterns 필수 Array of strings 텍스트의 일부를 캡처하는 데 사용하는 정규식 배열이에요.
preserve_original 필수 Boolean 원본 토큰을 출력에 유지할지 여부예요. 기본값은 true예요.

예제

다음 예제 요청은 email_index라는 새 인덱스를 생성하고, pattern_capture 필터로 애널라이저를 구성해서 이메일 주소에서 로컬 파트와 도메인 이름을 추출해요:

PUT /email_index
{
  "settings": {
    "analysis": {
      "filter": {
        "email_pattern_capture": {
          "type": "pattern_capture",
          "preserve_original": true,
          "patterns": [
            "^([^@]+)",
            "@(.+)$"
          ]
        }
      },
      "analyzer": {
        "email_analyzer": {
          "tokenizer": "uax_url_email",
          "filter": [
            "email_pattern_capture",
            "lowercase"
          ]
        }
      }
    }
  }
}

{% include copy-curl.html %}

생성된 토큰

애널라이저를 사용해 생성된 토큰을 확인하려면 다음 요청을 사용해요:

POST /email_index/_analyze
{
  "text": "[email protected]",
  "analyzer": "email_analyzer"
}

{% include copy-curl.html %}

응답에는 생성된 토큰이 담겨 있어요:

{
  "tokens": [
    {
      "token": "[email protected]",
      "start_offset": 0,
      "end_offset": 20,
      "type": "<EMAIL>",
      "position": 0
    },
    {
      "token": "john.doe",
      "start_offset": 0,
      "end_offset": 20,
      "type": "<EMAIL>",
      "position": 0
    },
    {
      "token": "example.com",
      "start_offset": 0,
      "end_offset": 20,
      "type": "<EMAIL>",
      "position": 0
    }
  ]
}

더 알아보기 (Learn more)