리인덱싱
Hermaeus Mora ·
- 초기 상태 (모든 요청은 Alias만 바라봄) 앱은 post라는 Alias만 바라보도록 설계
- 신규 인덱스 생성
PUT /post_v2
{
"settings": { ... },
"mappings": { ... }
}- 리인덱스 실행 (백그라운드)
POST /_reindex?wait_for_completion=false
{
"source": { "index": "post_v1" },
"dest": { "index": "post_v2" }
}- 원자적 Alias 스왑 (핵심) Elasticsearch는 _aliases 작업을 원자적(Atomic)으로 처리하므로 다운타임이 0초
POST /_aliases
{
"actions": [
{ "remove": { "index": "post_v1", "alias": "post" } },
{ "add": { "index": "post_v2", "alias": "post" } }
]
}- 구형 인덱스 삭제