Elastic Search

[Elasticsearch] Index Template 와 Alias API

miin1635@ 2023. 12. 28. 14:29

POST \_aliases  
{  
"actions": \[  
{  
"remove": {  
"index": "tem\_index1",  
"alias": "logs"  
}  
},  
{  
"add": {  
"index": "tem\_index2",  
"alias": "logs"  
}  
}  
\]  
}  

post tem\_index1/\_doc  
{  
"text" : "음 이건 또 다른 텍스트 필드예요"  
}  

post tem\_index2/\_doc  
{  
"text" : "안녕하세요. 이것은 텍스트 필드예요"  
}  

get logs/\_search

Response :

{
"took": 0,  
"timed\_out": false,  
"\_shards": {  
"total": 1,  
"successful": 1,  
"skipped": 0,  
"failed": 0  
},  
"hits": {  
"total": {  
"value": 1,  
"relation": "eq"  
},  
"max\_score": 1,  
"hits": \[  
{  
"\_index": "tem\_index2",  
"\_id": "CCi0rowB3W77es0nTRwH",  
"\_score": 1,  
"\_source": {  
"text": "안녕하세요. 이것은 텍스트 필드예요"  
}  
}  
\]  
}  
}  

#모든 인덱스에 적용 (컴포넌트 템플릿)  
PUT \_component\_template/component\_template1  
{  
"template": {  
"mappings": {  
"properties": {  
"@timestamp": {  
"type": "date"  
}  
}  
}  
}  
}  
#모든 인덱스에 적용 (컴포넌트 템플릿)  
PUT \_component\_template/runtime\_component\_template  
{  
"template": {  
"mappings": {  
"runtime": {  
"day\_of\_week": {  
"type": "keyword",  
"script": {  
"source": "emit(doc\['@timestamp'\].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT))"  
}  
}  
}  
}  
}  
}  

#인덱스 패턴으로 적용  
PUT \_index\_template/template\_1  
{  
"index\_patterns": \["te\*", "bar\*"\],  
"template": {  
"settings": {  
"number\_of\_shards": 1  
},  
"mappings": {  
"\_source": {  
"enabled": true  
},  
"properties": {  
"host\_name": {  
"type": "keyword"  
},  
"created\_at": {  
"type": "date",  
"format": "EEE MMM dd HH:mm:ss Z yyyy"  
}


}  
},  
"aliases": {  
"mydata": { }  
}  
},  
"priority": 500,  
"composed\_of": \["component\_template1", "runtime\_component\_template"\],  
"version": 3,  
"\_meta": {  
"description": "my custom"  
}  
}  

put test1

put barret

get test1/\_mapping

get barret/\_mapping  

Response :