일래스틱서치의 색인의 별명이 유용할 때가 있다.
* 배치가 돌고 많은 데이터(랭킹 정보, 검색 정보)를 색인에 저장하면서, 색인 시간이 소요되는 경우에 유용하다.
(단순히 데이터를 일래스틱 서치에 저장하고 검색하는 경우에는 의미없을 수 없다.)
색인 별명(indices aliases)는 get, create, delete를 할 수 있다.
suggest_v1, suggest_v2 색인이 있는데, suggest_v2에 suggest라는 별명을 create한다.
$curl -XPOST 'http://abc.google.com:9200/_aliases' -d '
{
"actions" : [
{ "add" : { "index" : "suggest_v2", "alias" : "suggest" } }
]
}'
애플리케이션 입장에서 suggest 색인을 볼 경우, 별명이 가르키고 있는 suggest_v2 색인을 바라보게 된다.
$ curl -XGET 'http://abc.google.com:9200/_alias/suggest?pretty=true'
{
"suggest_v2" : {
"aliases" : {
"suggest" : { }
}
}
}
배치 프로그램에서 suggest_v1 색인 데이터를 교체하고 v1 색인을 suggest에 추가한다.
$curl -XPOST 'http://abc.google.com:9200/_aliases' -d '
{
"actions" : [
{ "add" : { "index" : "suggest_v1", "alias" : "suggest" } }
]
}'
그러면, 다음과 같이 suggest 색인에는 suggest_v1, suggest_v2 색인이 하나로 묶이게 된다.
$ curl -XGET 'http://abc.google.com:9200/_alias/suggest?pretty=true'
{
"suggest_v1" : {
"aliases" : {
"suggest" : { }
}
},
"suggest_v2" : {
"aliases" : {
"suggest" : { }
}
}
}
그리고, 바로 suggest_v2 색인을 제거하면, 애플리케이션 장애 없이 잘 동작하게 할 수 있다.
(트래픽이 많은 경우 아주 잠깐의 데이터 누락처럼 보일 수 있겠지만.. ;;; 서비스 에러는 발생하지 않을 것이다.)
$ curl -XPOST 'http://abc.google.com:9200/_aliases' -d '
{
"actions" : [
{ "remove" : { "index" : "suggest_v2", "alias" : "suggest" } }
]
}'
$ curl -XGET 'http://abc.google.com:9200/_alias/suggest?pretty=true'
{
"suggest_v1" : {
"aliases" : {
"suggest" : { }
}
}
}
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] 스냅샷 저장 및 복구 (0) | 2015.07.29 |
---|---|
[elasticsearch] JSONP 지원 (0) | 2015.07.27 |
[elasticsearch] ctx 하위 필드 설명 (0) | 2015.07.20 |
[elasticsearch] Source 필터링 이해하기 (0) | 2015.07.10 |
[elasticsearch] aggreation(집계) 사용시 script의 doc, value 사용 (0) | 2015.07.09 |