별칭 생성 또는 업데이트 API
별칭 생성 또는 업데이트 API (Create Or Update Index Alias API)
1.0 버전에서 도입되었어요. 별칭 생성 또는 업데이트 API는 하나 이상의 인덱스를 인덱스 별칭에 추가하거나 기존 별칭의 설정을 업데이트해요. 인덱스 별칭에 대한 자세한 내용은 Index aliases 문서를 참고하세요.
이 API는 별칭의 추가/제거와 별칭과 함께 인덱스 제거를 지원하는 Manage aliases API와 구별돼요. 반면 이 API는 인덱스 자체를 업데이트하지 않고 별칭을 추가하거나 업데이트하는 것만 지원해요. 각 API는 서로 다른 요청 본문 파라미터도 사용해요.
출처: 문서
본문
엔드포인트 (Endpoints)
POST /{target}/_alias/{alias-name}
PUT /{target}/_alias/{alias-name}
POST /_alias/{alias-name}
PUT /_alias/{alias-name}
POST /{target}/_aliases/{alias-name}
PUT /{target}/_aliases/{alias-name}
POST /_aliases/{alias-name}
PUT /_aliases/{alias-name}
PUT /{target}/_alias
PUT /{target}/_aliases
PUT /_alias
경로 파라미터 (Path parameters)
아래 표는 사용 가능한 경로 파라미터를 정리한 거예요. 모든 경로 파라미터는 선택 사항이에요.
| 파라미터 | 타입 | 설명 |
|---|---|---|
target |
String | 쉼표로 구분된 인덱스 목록. 와일드카드 표현식(*)을 지원해요. 클러스터의 모든 인덱스를 대상으로 하려면 _all 또는 *를 사용하세요. 선택 사항. |
alias-name |
String | 생성하거나 업데이트할 별칭 이름. 선택 사항. |
쿼리 파라미터 (Query parameters)
아래 표는 사용 가능한 쿼리 파라미터를 정리한 거예요. 모든 쿼리 파라미터는 선택 사항이에요.
| 파라미터 | 타입 | 설명 |
|---|---|---|
cluster_manager_timeout |
Time | 클러스터 매니저 노드의 응답을 기다리는 시간. 기본값은 30s예요. |
timeout |
Time | 클러스터의 응답을 기다리는 시간. 기본값은 30s예요. |
요청 본문 (Request body)
아래 표는 사용 가능한 요청 본문 필드를 정리한 거예요.
| 필드 | 타입 | 설명 |
|---|---|---|
index |
String | 별칭과 연결하려는 인덱스의 쉼표로 구분된 목록. 이 필드가 설정되면 URL 경로에 지정된 인덱스 이름을 덮어써요. |
alias |
String | 별칭의 이름. 이 필드가 설정되면 URL 경로에 지정된 별칭 이름을 덮어써요. |
is_write_index |
Boolean | 인덱스가 쓰기 인덱스(write index)가 되어야 하는지 여부. 별칭은 한 번에 하나의 쓰기 인덱스만 가질 수 있어요. 여러 인덱스에 연결된 별칭에 쓰기 요청이 제출되면 OpenSearch는 쓰기 인덱스에서만 요청을 실행해요. |
routing |
String | 특정 작업에 대해 샤드에 사용자 지정 값을 할당해요. |
index_routing |
String | 인덱스 작업에 대해서만 샤드에 사용자 지정 값을 할당해요. |
search_routing |
String | 검색 작업에 대해서만 샤드에 사용자 지정 값을 할당해요. |
filter |
Object | 별칭과 함께 사용할 필터. 별칭이 인덱스의 필터링된 부분을 가리키게 해요. |
예제 요청: 간단한 별칭 추가 (Add a simple alias)
다음 요청은 인덱스에 대한 기본 별칭을 만들어요:
PUT /products-2024/_alias/current-products
예제 요청: 시간 기반 별칭 추가 (Add a time-based alias)
다음 요청은 sales-q1-2024 인덱스에 대한 quarterly-2024 별칭을 만들어요:
PUT /sales-q1-2024/_alias/quarterly-2024
예제 요청: 라우팅이 있는 필터링된 별칭 추가 (Add a filtered alias with routing)
먼저 적절한 매핑으로 인덱스를 만들어요:
PUT /customer-data
{
"mappings": {
"properties": {
"customer_id": {
"type": "integer"
},
"region": {
"type": "keyword"
}
}
}
}
그런 다음 라우팅과 필터링이 있는 특정 고객에 대한 인덱스 별칭을 추가해요:
PUT /customer-data/_alias/customer-123
{
"routing": "west",
"filter": {
"term": {
"customer_id": 123
}
}
}
예제 요청: 인덱스 생성 중 별칭 추가 (Add an alias during index creation)
create index API를 사용해 인덱스를 만들 때 별칭을 추가할 수 있어요:
PUT /inventory-2024
{
"mappings": {
"properties": {
"category": {
"type": "keyword"
}
}
},
"aliases": {
"current-inventory": {},
"electronics": {
"filter": {
"term": {
"category": "electronics"
}
}
}
}
}
예제 응답 (Example response)
{
"acknowledged": true
}
필요한 권한 (Required permissions)
Security 플러그인을 사용한다면 적절한 권한이 있는지 확인하세요: indices:admin/aliases
관련 문서 (Related documentation)
인덱스 별칭에 대한 자세한 내용은 Index aliases 문서를 참고하세요.