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