Gsub processor
출처: 문서
본문
Gsub processor
gsub 프로세서는 들어오는 문서의 문자열 필드에 대해 정규 표현식 검색 및 바꾸기 작업을 수행합니다. 필드에 문자열 배열이 포함된 경우 작업은 배열의 모든 요소에 적용됩니다. 하지만 필드에 문자열이 아닌 값이 포함된 경우 프로세서는 예외를 발생시킵니다. gsub 프로세서의 사용 사례로는 로그 메시지나 사용자 생성 콘텐츠에서 민감한 정보 제거, 데이터 형식이나 규칙 정규화(예: 날짜 형식 변환, 특수 문자 제거), 추가 처리나 분석을 위해 필드 값에서 부분 문자열을 추출하거나 변환하는 것이 있습니다.
다음은 gsub 프로세서의 구문입니다.
"gsub": {
"field": "field_name",
"pattern": "regex_pattern",
"replacement": "replacement_string"
}
{% include copy.html %}
구성 매개변수
다음 표는 gsub 프로세서의 필수 및 선택 매개변수를 보여줍니다.
| 매개변수 | 필수/선택 | 설명 |
|---|---|---|
field |
필수 | 바꾸기를 적용할 필드입니다. |
pattern |
필수 | 바꿀 패턴입니다. |
replacement |
필수 | 일치하는 패턴을 대체할 문자열입니다. |
target_field |
선택 | 구문 분석된 데이터를 저장할 필드 이름입니다. target_field가 지정되지 않으면 구문 분석된 데이터가 field 필드의 원본 데이터를 대체합니다. 기본값은 field입니다. |
if |
선택 | 프로세서 실행 조건입니다. |
ignore_missing |
선택 | 프로세서가 지정된 필드가 없는 문서를 무시할지 여부를 지정합니다. 기본값은 false입니다. |
ignore_failure |
선택 | 프로세서가 오류가 발생해도 계속 실행할지 여부를 지정합니다. true로 설정하면 실패를 무시합니다. 기본값은 false입니다. |
on_failure |
선택 | 프로세서가 실패할 경우 실행할 프로세서 목록입니다. |
tag |
선택 | 프로세서의 식별 태그입니다. 동일한 유형의 프로세서를 구분하기 위해 디버깅에 유용합니다. |
프로세서 사용하기
파이프라인에서 프로세서를 사용하려면 다음 단계를 따르세요.
1단계: 파이프라인 생성
다음 쿼리는 gsub 프로세서를 사용하여 message 필드에서 error라는 단어의 모든 항목을 warning으로 바꾸는 gsub_pipeline이라는 파이프라인을 생성합니다.
PUT _ingest/pipeline/gsub_pipeline
{
"description": "Replaces 'error' with 'warning' in the 'message' field",
"processors": [
{
"gsub": {
"field": "message",
"pattern": "error",
"replacement": "warning"
}
}
]
}
{% include copy-curl.html %}
2단계(선택 사항): 파이프라인 테스트
문서를 수집하기 전에 파이프라인을 테스트하는 것이 좋습니다. {: .tip}
파이프라인을 테스트하려면 다음 쿼리를 실행하세요.
POST _ingest/pipeline/gsub_pipeline/_simulate
{
"docs": [
{
"_source": {
"message": "This is an error message"
}
}
]
}
{% include copy-curl.html %}
응답
다음 응답은 파이프라인이 예상대로 작동하고 있음을 확인합니다.
{
"docs": [
{
"doc": {
"_index": "_index",
"_id": "_id",
"_source": {
"message": "This is an warning message"
},
"_ingest": {
"timestamp": "2024-05-22T19:47:00.645687211Z"
}
}
}
]
}
{% include copy-curl.html %}
3단계: 문서 수집
다음 쿼리는 logs라는 인덱스에 문서를 수집합니다.
PUT logs/_doc/1?pipeline=gsub_pipeline
{
"message": "This is an error message"
}
{% include copy-curl.html %}
응답
다음 응답은 요청이 logs 인덱스에 문서를 색인화했으며 gsub 프로세서가 message 필드에서 error라는 단어의 모든 항목을 warning으로 바꾸었음을 보여줍니다.
{
"_index": "logs",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
{% include copy-curl.html %}
4단계(선택 사항): 문서 검색
문서를 검색하려면 다음 쿼리를 실행하세요.
GET logs/_doc/1
{% include copy-curl.html %}
응답
다음 응답은 수정된 message 필드 값이 포함된 문서를 보여줍니다.
{
"_index": "logs",
"_id": "1",
"_version": 1,
"_seq_no": 0,
"_primary_term": 1,
"found": true,
"_source": {
"message": "This is an warning message"
}
}
{% include copy-curl.html %}