인덱스 세그먼트 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.