인덱스 세그먼트 API

인덱스 세그먼트 API (Index Segments API)

1.0부터 도입되었어요.

세그먼트(Segment) API는 인덱스 샤드 안의 Lucene 세그먼트에 대한 상세 정보와 데이터 스트림의 백킹 인덱스 정보를 제공해요.

출처: 문서

본문

엔드포인트

GET /{index}/_segments
GET /_segments

경로 파라미터

사용할 수 있는 경로 파라미터는 아래 표와 같아요. 모든 경로 파라미터는 선택사항이에요.

파라미터 데이터 타입 설명
index String 작업이 적용되는 인덱스, 데이터 스트림, 또는 인덱스 별칭의 쉼표로 구분된 목록이에요. 와일드카드 표현식(*)을 지원해요. 클러스터의 모든 인덱스와 데이터 스트림을 지정하려면 _all 또는 *을 사용해요.

쿼리 파라미터

모든 쿼리 파라미터는 선택사항이에요.

파라미터 데이터 타입 설명
allow_no_indices Boolean 어떤 인덱스와도 일치하지 않는 와일드카드를 무시할지 여부예요. 기본값은 true예요.
expand_wildcards String 와일드카드 표현식이 일치할 수 있는 인덱스 유형을 지정해요. 쉼표로 구분된 값을 지원해요. 유효한 값은 all(모든 인덱스 매치), open(숨기지 않은 열린 인덱스 매치), closed(숨기지 않은 닫힌 인덱스 매치), hidden(숨은 인덱스 매치), none(와일드카드 표현식 거부)이에요. 기본값은 open이에요.
ignore_unavailable Boolean true이면 OpenSearch가 누락되거나 닫힌 인덱스를 무시해요. false이면 강제 머지 작업이 누락되거나 닫힌 인덱스를 만나면 오류를 반환해요. 기본값은 false예요.
verbose Boolean true이면 Lucene의 메모리 사용량에 대한 정보를 제공해요. 기본값은 false예요.

요청 예시

다음 요청 예시들은 세그먼트 API 사용법을 보여줘요.

특정 데이터 스트림 또는 인덱스

GET /index1/_segments

여러 데이터 스트림과 인덱스

GET /index1,index2/_segments

클러스터의 모든 데이터 스트림과 인덱스

GET /_segments

응답 예시

{
  "_shards": ...
  "indices": {
    "test": {
      "shards": {
        "0": [
          {
            "routing": {
              "state": "STARTED",
              "primary": true,
              "node": "zDC_RorJQCao9xf9pg3Fvw"
            },
            "num_committed_segments": 0,
            "num_search_segments": 1,
            "segments": {
              "_0": {
                "generation": 0,
                "num_docs": 1,
                "deleted_docs": 0,
                "size_in_bytes": 3800,
                "memory_in_bytes": 1410,
                "committed": false,
                "search": true,
                "version": "7.0.0",
                "compound": true,
                "attributes": {
                }
              }
            }
          }
        ]
      }
    }
  }
}

응답 본문 필드

파라미터 데이터 타입 설명
segment String 샤드 디렉터리에 내부 파일 이름을 만드는 데 사용되는 세그먼트의 이름이에요.
generation Integer 세대 번호예요. 0 같은 값이며, 작성되는 각 세그먼트마다 증가하고 세그먼트 이름을 짓는 데 사용돼요.
num_docs Integer Lucene에서 가져온 문서 수예요. 중첩 문서는 상위 문서와 별도로 계산돼요. 삭제된 문서와 아직 세그먼트에 할당되지 않은 최근 인덱싱 문서는 제외돼요.
deleted_docs Integer Lucene에서 가져온 삭제된 문서 수예요. 실제로 수행된 삭제 작업 수와 다를 수 있어요. 아직 세그먼트에 할당되지 않은 최근 삭제된 문서는 제외돼요. 삭제된 문서는 적절할 때 자동으로 머지돼요. OpenSearch는 최근 샤드 작업을 추적하기 위해 가끔 추가 문서를 삭제하기도 해요.
size_in_bytes Integer 세그먼트가 사용하는 디스크 공간이에요. 예를 들어 50kb예요.
memory_in_bytes Integer 효율적인 검색 작업을 위해 메모리에 유지되는 세그먼트 데이터의 양(바이트)이에요. 예를 들어 1264예요. -1 값은 OpenSearch가 이 숫자를 계산할 수 없었다는 뜻이에요.
committed Boolean true이면 세그먼트가 디스크에 동기화됐어요. 디스크에 동기화된 세그먼트는 하드 재부팅 후에도 유지될 수 있어요. false면 커밋되지 않은 세그먼트 데이터가 변경 사항을 다음 시작 시 재생할 수 있도록 트랜잭션 로그에도 저장돼요.
search Boolean true이면 세그먼트 검색이 활성화됐어요. false면 세그먼트가 이미 디스크에 기록되었을 수 있으며 검색 가능하려면 리프레시가 필요해요.
version String 세그먼트를 작성하는 데 사용된 Lucene 버전이에요.
compound Boolean true이면 Lucene이 파일 설명을 절약하기 위해 모든 세그먼트 파일을 하나의 파일로 머지했다는 뜻이에요.
attributes Object 높은 압축이 활성화되었는지 보여줘요.

필요한 권한

보안 플러그인을 사용한다면 다음 권한이 필요해요: indices:monitor/segments.

더 알아보기 (Learn more)