반응형
Elasticsearch에 index를 처음 만들 때 , 필드는 어떤 것을 넣을 건지 보여주는 mappings와 analyzer, tokenizer, filter 등을 이용 및 custom 할 수 있는 settings를 함께 설정해 준다.
이 때, mapping또는 settings를 다시 세팅하고 싶은 경우가 있는데 불가능하고 다시 새로운 인덱스를 만들어 reindex해야 한다.
가능한 것은 _mappings에 새로운 field를 추가할 수 있다. 하지만 이미 만들어진 필드를 삭제하거나 타입/설정값을 수정하는 것은 불가능하다.
만약 운영 중인 es 클러스터라면 다운타임없이 진행하기위해 alias설정 후 reindex를 하면 된다.
mappings > field를 추가하기
test_index의 구조는 아래와 같다.
{
"test_index" : {
"aliases" : {
"mydata" : { }
},
"mappings" : {
"properties" : {
"created_at" : {
"type" : "date",
"format" : "EEE MMM dd HH:mm:ss Z yyyy"
},
"flag" : {
"type" : "boolean"
},
"host_name" : {
"type" : "keyword"
},
"message" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
},
"settings" : {
"index" : {
"routing" : {
"allocation" : {
"include" : {
"_tier_preference" : "data_content"
}
}
},
"number_of_shards" : "1",
"provided_name" : "test_index",
"creation_date" : "1667805017423",
"number_of_replicas" : "1",
"uuid" : "rTOzbLBgQUayWEA9IArOfg",
"version" : {
"created" : "7170299"
}
}
}
}
}
message, flag fields가 있는데 여기에 "extra_info"라는 필드를 추가해 보기
PUT test_index/_mapping
{
"properties": {
"extra_info": {
"type": "text"
}
}
}
결과 :
{
"acknowledged" : true
}
다시 fields 확인해보기
{
"test_index" : {
"mappings" : {
"properties" : {
"created_at" : {
"type" : "date",
"format" : "EEE MMM dd HH:mm:ss Z yyyy"
},
"extra_info" : {
"type" : "text"
},
"flag" : {
"type" : "boolean"
},
"host_name" : {
"type" : "keyword"
},
"message" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
새롭게 추가한 field "extra_info"가 잘 들어갔다.
Reference : https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings
반응형
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] Bucket Aggregations 버킷 집계 정리 (0) | 2022.11.10 |
---|---|
[Elasticsearch] Metrics Aggregations 집계 정리 (0) | 2022.11.10 |
[Elasticsearch] Analyzer, Tokenizer, Filter 개념 및 활용 방법 (0) | 2022.11.09 |
[Elasticsearch] bool 복합 query 개념 정리 및 예제 (0) | 2022.11.09 |
[Elasticsearch] object vs nested 설명 및 예제 (0) | 2022.11.08 |