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

Sort ingest processor

원문 보기 위키 갱신

출처: 문서

본문

정렬 수집 프로세서

sort 프로세서는 항목 배열을 오름차순 또는 내림차순으로 정렬해요. 숫자 배열은 숫자로 정렬되고, 문자열 또는 혼합 배열(문자열과 숫자)은 사전순으로 정렬돼요. 입력이 배열이 아니면 프로세서가 오류를 발생시켜요.

다음은 sort 프로세서의 구문이에요:

{
  "description": "Sort an array of items",
  "processors": [
    {
      "sort": {
        "field": "my_array_field",
        "order": "desc"
      }
    }
  ]
}

{% include copy.html %}

구성 매개변수

다음 표는 sort 프로세서의 필수 및 선택 매개변수를 설명해요.

매개변수 필수/선택 설명
field 필수 정렬할 필드예요. 배열이어야 해요.
order 선택 적용할 정렬 순서예요. 오름차순은 asc, 내림차순은 desc를 사용해요. 기본값은 asc예요.
target_field 선택 정렬된 배열이 저장될 필드 이름이에요. 지정하지 않으면 정렬된 배열이 원래 배열(field 변수)과 같은 필드에 저장돼요.
description 선택 프로세서의 목적이나 구성에 대한 설명이에요.
if 선택 프로세서를 조건부로 실행하도록 지정해요.
ignore_failure 선택 프로세서 실패를 무시하도록 지정해요. 파이프라인 실패 처리를 참조하세요.
on_failure 선택 실행 중 프로세서가 실패할 경우 실행할 프로세서 목록을 지정해요. 이 프로세서들은 지정된 순서대로 실행돼요.
tag 선택 프로세서의 식별 태그예요. 동일한 유형의 프로세서를 구분하는 데 유용해요.

프로세서 사용하기

파이프라인에서 프로세서를 사용하려면 다음 단계를 따라요.

1단계: 파이프라인 생성

다음 쿼리는 sort 프로세서를 사용하여 my_field를 내림차순으로 정렬하고 정렬된 값을 sorted_field에 저장하는 sort-pipeline이라는 파이프라인을 생성해요.

PUT _ingest/pipeline/sort-pipeline
{
  "description": "Sort an array of items in descending order",
  "processors": [
    {
      "sort": {
        "field": "my_array_field",
        "order": "desc",
        "target_field": "sorted_array"
      }
    }
  ]
}

{% include copy-curl.html %}

2단계(선택 사항): 파이프라인 테스트

문서를 수집하기 전에 파이프라인을 테스트하는 것이 좋아요. {: .tip}

파이프라인을 테스트하려면 다음 쿼리를 실행해요.

POST _ingest/pipeline/sort-pipeline/_simulate
{
  "docs": [
    {
      "_source": {
        "my_array_field": [3, 1, 4, 1, 5, 9, 2, 6, 5]
      }
    }
  ]
}

{% include copy-curl.html %}

응답

다음 예제 응답은 파이프라인이 예상대로 작동하고 있음을 확인해요.

{
  "docs": [
    {
      "doc": {
        "_index": "_index",
        "_id": "_id",
        "_source": {
          "sorted_array": [
            9,
            6,
            5,
            5,
            4,
            3,
            2,
            1,
            1
          ],
          "my_array_field": [
            3,
            1,
            4,
            1,
            5,
            9,
            2,
            6,
            5
          ]
        },
        "_ingest": {
          "timestamp": "2024-05-30T22:10:13.405692128Z"
        }
      }
    }
  ]
}

{% include copy-curl.html %}

3단계: 문서 수집

다음 쿼리는 testindex1이라는 인덱스에 문서를 수집해요.

POST testindex1/_doc?pipeline=sort-pipeline
{
  "my_array_field": [3, 1, 4, 1, 5, 9, 2, 6, 5]
}

{% include copy-curl.html %}

응답

요청은 문서를 testindex1 인덱스에 색인하고, 그런 다음 my_array_field가 내림차순으로 정렬된 모든 문서를 색인해요. 다음 응답과 같아요.

{
  "_index": "testindex1",
  "_id": "no-Py48BwFahnwl9KZzf",
  "_version": 1,
  "result": "created",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 9,
  "_primary_term": 2
}

{% include copy-curl.html %}

4단계(선택 사항): 문서 검색

문서를 검색하려면 다음 쿼리를 실행해요.

GET testindex1/_doc/no-Py48BwFahnwl9KZzf

{% include copy-curl.html %}

더 알아보기 (Learn more)