Update Index Settings API

Update Index Settings API

1.0에서 도입

Update Index Settings API는 인덱스 수준 설정을 실시간으로 바꿔요. 동적(dynamic) 인덱스 설정은 언제든 업데이트할 수 있지만, 정적(static) 설정은 인덱스를 만든 뒤에는 바꿀 수 없어요. 정적·동적 인덱스 설정에 대한 자세한 내용은 Index settings 문서를 참고해요.

내장 인덱스 설정 외에도 개별 플러그인의 설정을 업데이트할 수 있어요. 기본값을 포함한 사용 가능한 모든 설정의 전체 목록을 보려면 GET <target-index>/_settings?include_defaults=true를 실행해요.

출처: 문서

본문

엔드포인트 (Endpoints)

PUT /{index}/_settings

경로 매개변수 (Path parameters)

다음 표는 사용 가능한 경로 매개변수예요. 모든 경로 매개변수는 선택 사항이에요.

매개변수 데이터 타입 설명
index String 업데이트할 인덱스의 이름이에요. 단일 인덱스 이름, 쉼표로 구분된 인덱스 이름 목록, 와일드카드 표현식을 지정할 수 있어요. 클러스터의 모든 인덱스 설정을 업데이트하려면 _all 또는 *를 사용해요.

쿼리 매개변수 (Query parameters)

다음 표는 사용 가능한 쿼리 매개변수예요. 모든 쿼리 매개변수는 선택 사항이에요.

매개변수 데이터 타입 설명
allow_no_indices Boolean 어떤 인덱스와도 일치하지 않는 와일드카드 표현식이나 인덱스 패턴을 무시할지 지정해요. false면 와일드카드가 어떤 인덱스와도 일치하지 않을 때 오류를 반환하고, true면 존재하지 않는 인덱스를 무시하고 존재하는 인덱스의 설정만 업데이트해요. 기본값은 true예요.
expand_wildcards String 와일드카드 표현식이 확장될 인덱스 유형을 지정해요. 쉼표로 구분된 값을 지원해요. 유효한 값은 all(모든 인덱스), open(열린 인덱스), closed(닫힌 인덱스), hidden(숨은 인덱스), none(와일드카드 표현식 미허용)이에요. 기본값은 open이에요.
flat_settings Boolean 설정을 평면(flat) 형식으로 반환할지 지정해요. true면 평면화된 형식으로, false면 중첩 형식으로 반환돼요. 기본값은 false예요.
ignore_unavailable Boolean 존재하지 않거나 닫힌 인덱스를 무시할지 지정해요. true면 대상 인덱스가 없거나 닫혀 있어도 오류를 반환하지 않고, false면 대상 인덱스를 사용할 수 없을 때 오류를 반환해요. 기본값은 false예요.
preserve_existing Boolean 기존 인덱스 설정을 보존할지 지정해요. true면 기존 설정은 그대로 두고 새 설정만 적용해요. false면 제공된 값으로 기존 설정을 업데이트해요. 기본값은 false예요.
cluster_manager_timeout Time 클러스터 매니저 노드에 연결되기를 기다리는 시간이에요. 기본값은 30s예요.
timeout Time 응답을 기다리는 시간이에요. 기본값은 30s예요.

요청 본문 (Request body)

요청 본문에는 업데이트할 인덱스 설정이 들어 있어요. 평면 또는 중첩 형식으로 지정할 수 있어요.

필드 데이터 타입 설명
settings Object 업데이트할 인덱스 설정이 담긴 객체예요. 사용 가능한 인덱스 설정 목록은 Index settings를 참고해요.

예시 요청: 단일 인덱스 설정 업데이트

다음 예시는 books 인덱스의 설정을 업데이트해요:

PUT /books/_settings
{
"index": {
"number_of_replicas": 2
}
}

Python 클라이언트로는 이렇게 호출해요:

response = client.indices.put_settings(
index = "books",
body = {
"index": {
"number_of_replicas": 2
}
}
)

예시 요청: 설정을 기본값으로 되돌리기

설정을 기본값으로 되돌리려면 값을 null로 지정해요:

PUT /books/_settings
{
"index": {
"refresh_interval": null
}
}

예시 요청: 여러 인덱스 설정 업데이트

다음 예시는 여러 인덱스의 설정을 업데이트해요:

PUT /books,products/_settings
{
"index": {
"number_of_replicas": 0
}
}

예시 요청: 벌크 색인에 최적화하기

인덱스를 벌크 색인 작업에 최적화하려면 refresh_interval을 -1로 설정해서 새로고침 간격을 비활성화해요. 벌크 색인이 끝나면 양수 값으로 되돌려 다시 활성화해요:

PUT /books/_settings
{
"index": {
"refresh_interval": "-1"
}
}

벌크 색인을 마친 뒤 새로고침 간격을 복원해요:

PUT /books/_settings
{
"index": {
"refresh_interval": "1s"
}
}

예시 응답 (Example response)

{
"acknowledged": true
}

응답 본문 필드 (Response body fields)

다음 표는 모든 응답 본문 필드를 정리한 거예요.

필드 데이터 타입 설명
acknowledged Boolean 업데이트 요청을 받았는지 여부를 나타내요. true는 요청을 받았다는 뜻이에요. 설정이 실제로 적용됐다는 보장은 아니에요.

필요한 권한 (Required permissions)

Security 플러그인을 사용한다면 적절한 권한이 있는지 확인해야 해요: indices:admin/settings/update.

더 알아보기