Split ingest processor
출처: 문서
본문
Split 수집 프로세서
split 프로세서는 지정된 구분자를 기준으로 문자열 필드를 부분 문자열 배열로 분할하는 데 사용해요.
다음은 split 프로세서의 구문이에요:
{
"split": {
"field": "field_to_split",
"separator": "<delimiter>",
"target_field": "split_field"
}
}
{% include copy.html %}
구성 매개변수
다음 표는 split 프로세서의 필수 및 선택적 매개변수를 나열해요.
| 매개변수 | 필수/선택 | 설명 |
|---|---|---|
field |
필수 | 분할할 문자열이 포함된 필드예요. |
separator |
필수 | 문자열을 분할하는 데 사용되는 구분자예요. 정규 표현식 패턴일 수 있어요. |
preserve_trailing |
선택 | true로 설정하면 결과 배열에 빈 후행 필드(예: '')를 보존해요. false로 설정하면 결과 배열에서 빈 후행 필드가 제거돼요. 기본값은 false예요. |
target_field |
선택 | 부분 문자열 배열이 저장되는 필드예요. 지정하지 않으면 필드가 제자리에서 업데이트돼요. |
ignore_missing |
선택 | 프로세서가 지정된 필드를 포함하지 않는 문서를 무시할지 여부를 지정해요. true로 설정하면 프로세서가 필드의 누락된 값을 무시하고 target_field를 변경하지 않아요. 기본값은 false예요. |
description |
선택 | 프로세서에 대한 간단한 설명이에요. |
if |
선택 | 프로세서 실행을 위한 조건이에요. |
ignore_failure |
선택 | 프로세서가 오류를 만나도 계속 실행할지 여부를 지정해요. true로 설정하면 실패를 무시해요. 기본값은 false예요. |
on_failure |
선택 | 프로세서가 실패할 경우 실행할 프로세서 목록이에요. |
tag |
선택 | 프로세서의 식별 태그예요. 동일한 유형의 프로세서를 구별하기 위해 디버깅에 유용해요. |
프로세서 사용하기
파이프라인에서 프로세서를 사용하려면 다음 단계를 따라요.
1단계: 파이프라인 생성
다음 쿼리는 split 프로세서를 사용하여 log_message 필드를 쉼표 문자로 분할하고 결과 배열을 log_parts 필드에 저장하는 split_pipeline이라는 파이프라인을 생성해요:
PUT _ingest/pipeline/split_pipeline
{
"description": "Split log messages by comma",
"processors": [
{
"split": {
"field": "log_message",
"separator": ",",
"target_field": "log_parts"
}
}
]
}
{% include copy-curl.html %}
2단계(선택 사항): 파이프라인 테스트
문서를 수집하기 전에 파이프라인을 테스트하는 것이 좋아요. {: .tip}
파이프라인을 테스트하려면 다음 쿼리를 실행해요:
POST _ingest/pipeline/split_pipeline/_simulate
{
"docs": [
{
"_source": {
"log_message": "error,warning,info"
}
}
]
}
{% include copy-curl.html %}
응답
다음 예제 응답은 파이프라인이 예상대로 작동하고 있음을 확인해요:
{
"docs": [
{
"doc": {
"_index": "_index",
"_id": "_id",
"_source": {
"log_message": "error,warning,info",
"log_parts": [
"error",
"warning",
"info"
]
},
"_ingest": {
"timestamp": "2024-04-26T22:29:23.207849376Z"
}
}
}
]
}
{% include copy-curl.html %}
3단계: 문서 수집
다음 쿼리는 testindex1이라는 인덱스에 문서를 수집해요:
PUT testindex1/_doc/1?pipeline=split_pipeline
{
"log_message": "error,warning,info"
}
{% include copy-curl.html %}
응답
요청은 문서를 testindex1 인덱스에 인덱싱하고 인덱싱 전에 log_message 필드를 쉼표 구분자로 분할하며, 다음 응답과 같이 나타나요:
{
"_index": "testindex1",
"_id": "1",
"_version": 70,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 72,
"_primary_term": 47
}
4단계(선택 사항): 문서 검색
문서를 검색하려면 다음 쿼리를 실행해요:
GET testindex1/_doc/1
{% include copy-curl.html %}
응답
응답은 log_message 필드가 쉼표 구분자로 분할된 값의 배열로 표시돼요:
{
"_index": "testindex1",
"_id": "1",
"_version": 70,
"_seq_no": 72,
"_primary_term": 47,
"found": true,
"_source": {
"log_message": "error,warning,info",
"log_parts": [
"error",
"warning",
"info"
]
}
}