Pattern replace token filter
출처: 문서
본문
Pattern replace 토큰 필터
pattern_replace 토큰 필터를 사용하면 정규식으로 토큰을 수정할 수 있어요. 이 필터는 토큰에서 패턴을 찾아 지정한 값으로 바꿔 주기 때문에, 인덱싱하기 전에 토큰을 변환하거나 정규화할 때 유연하게 작업할 수 있어요. 분석 과정에서 텍스트를 정리하거나 표준화해야 할 때 특히 유용해요.
파라미터
pattern_replace 토큰 필터는 다음 파라미터로 설정할 수 있어요.
| 파라미터 | 필수/선택 | 데이터 타입 | 설명 |
|---|---|---|---|
pattern |
필수 | String | 바꿔야 할 텍스트와 일치하는 정규식 패턴이에요. |
all |
선택 | Boolean | 일치하는 모든 패턴을 바꿀지 여부예요. false이면 첫 번째 일치 항목만 바꿔요. 기본값은 true예요. |
replacement |
선택 | String | 일치한 패턴을 대체할 문자열이에요. 기본값은 빈 문자열이에요. |
예제
다음 예제 요청은 text_index라는 새 인덱스를 만들고, 숫자가 포함된 토큰을 [NUM] 문자열로 바꾸도록 pattern_replace 필터가 설정된 애널라이저를 구성해요:
PUT /text_index
{
"settings": {
"analysis": {
"filter": {
"number_replace_filter": {
"type": "pattern_replace",
"pattern": "\\d+",
"replacement": "[NUM]"
}
},
"analyzer": {
"number_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"number_replace_filter"
]
}
}
}
}
}
{% include copy-curl.html %}
생성된 토큰
다음 요청으로 애널라이저가 생성한 토큰을 확인해 보세요:
POST /text_index/_analyze
{
"text": "Visit us at 98765 Example St.",
"analyzer": "number_analyzer"
}
{% include copy-curl.html %}
응답에는 생성된 토큰이 담겨 있어요:
{
"tokens": [
{
"token": "visit",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "us",
"start_offset": 6,
"end_offset": 8,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "at",
"start_offset": 9,
"end_offset": 11,
"type": "<ALPHANUM>",
"position": 2
},
{
"token": "[NUM]",
"start_offset": 12,
"end_offset": 17,
"type": "<NUM>",
"position": 3
},
{
"token": "example",
"start_offset": 18,
"end_offset": 25,
"type": "<ALPHANUM>",
"position": 4
},
{
"token": "st",
"start_offset": 26,
"end_offset": 28,
"type": "<ALPHANUM>",
"position": 5
}
]
}