An index alias just provides an extra name to refer to an index; it can be defined in the following way:
POST /_aliases
{
"actions" : [
{ "add" : { "index" : "index1", "alias" : "current_index" } }
]
}
Here, index1 can be referred to with the alias current_index. Similarly, the index alias can be removed with the remove action of the _aliases REST API:
POST /_aliases
{
"actions" : [
{ "remove" : { "index" : "index1", "alias" : "current_index" } }
]
}
The preceding call will remove the alias current_index. Two actions can be combined in a single invocation of the _aliases API. When two calls are combined, the operations are done automatically. For example, the following call would be completely transparent to the client:
POST /_aliases
{
"actions" : [
{ "remove" : { "index" : "index1", "alias" : "current_index" } },
{ "add" : { "index" : "index2", "alias" : "current_index" } }
]
}
Before the call, the alias current_index was referring to the index index1, and after the call, the alias will refer to the index index2.