elasticsearch alias
インデックスにはaliasをつけられるらしい。
aliasの確認
GET sample1/_alias GET <index_name>/_alias
aliasがない場合には空が表示される
// 結果
{
"sample1" : {
"aliases" : { }
}
}
aliasの追加、更新
Create or update index alias API | Elasticsearch Reference [7.12] | Elastic
PUT sample1/_alias/my_alias PUT <index_name>/_alias/<alias_name>
実行結果
{
"sample1" : {
"aliases" : {
"my_alias" : { }
}
}
}
aliasの複数インデックスへの追加の注意点
ある名前のaliasは一つのインデックスのみに使えるわけではなくて、複数のインデックスに設定できる。 つまりalias Xをもつindex Aとindex Bが存在することを許容する。
しかしながら書き込み時は注意すること。書き込めるインデックスは複数設定できないっぽいので複数のインデックスにalias経由でデータを格納しようとするとエラーが出てしまう。
Is it possible to write to multiple indexes with an ElasticSearch alias? - Stack Overflow
Update index alias API | Elasticsearch Reference [7.10] | Elastic
searchをした場合当aliasをもつ複数のインデックスから結果を表示することはできる。
同一エイリアスを設定し、そのエイリアスを使ってインデックスに書き込みを実現したい場合は以下のように "is_write_index"を設定する必要があるようだ。当然true に設定するのは一つのインデックスのみ。
POST /_aliases
{
"actions": [
{
"add": {
"index": "sample1",
"alias": "my_alias",
"is_write_index": false
}
},
{
"add": {
"index": "sample2",
"alias": "my_alias",
"is_write_index": true
}
}
]
}