-
Alias & ReindexBackEnd/Elasticsearch API 2025. 3. 15. 11:00반응형
Elasticsearch에서 인덱스의 매핑은 변경할 수 없습니다. 이는 색인된 데이터가 특정한 구조와 형식으로 저장되기 때문입니다. 매핑을 변경하면 기존 데이터가 더이상 유효하지 않거나 잘못된 형식으로 해석될 수 있으므로, 매핑을 변경하려면 새로운 인덱스를 생성하고 데이터를 재색인해야 합니다.
Alias & Reindex
Alias는 인덱스의 매핑 변경 시 유용합니다. 새로운 인덱스를 생성하고 데이터를 재색인(Reindex)한 후, Alias를 업데이트하여 검색 요청을 새로운 인덱스로 전달할 수 있습니다. 이는 검색 서비스 중단 없이 인덱스를 관리하는 방법입니다. 또한, Alias는 여러 인덱스를 하나의 이름으로 통합하여 검색할 수 있게 합니다(Multi Index).
Alias 사용 방법
1. index를 생성하고 데이터를 넣은 후 Alias를 설정합니다.
# 기존 인덱스 PUT /old_index { "mappings": { "properties": { "product_id": { "type": "integer" } } } } # Insert Documents POST /old_index/_doc/1 { "product_id": 100 } POST /old_index/_doc/2 { "product_id": 200 } # Alias 설정 POST /_aliases { "actions": [ { "add": { "index": "old_index", "alias": "my_alias" } } ] }
2. 매핑 변경이 필요한 경우, 새로운 인덱스를 생성하고 데이터를 재색인(Reindex) 합니다.
# 새로운 인덱스 생성 PUT /new_index { "mappings": { "properties": { "product_id": { "type": "keyword" } } } } # 데이터 재색인(Reindex) POST /_reindex { "source": { "index": "old_index" }, "dest": { "index": "new_index" }, "script": { "source": """ ctx._source.product_id = ctx._source.product_id.toString() """ } }
3. 기존 Alias를 새로운 인덱스로 업데이트합니다.
POST _aliases { "actions": [ { "remove": { "index": "old_index", "alias": "my_alias" } }, { "add": { "index": "new_index", "alias": "my_alias" } } ] }
4. 검색 요청
GET /my_alias/_search { "query": { "match_all": {} } }
[참고자료]
반응형'BackEnd > Elasticsearch API' 카테고리의 다른 글
Analyzer (0) 2025.03.18 Index Template (0) 2025.03.16 Mapping parameters (0) 2025.03.14 Mapping (0) 2025.03.13 Analysis (0) 2025.03.11