13 One Big User(这里阐述了如何在已经有数据的情况转移数据了)
数据量大,访问量大的index都是从小的开始的,一天,我们有个index非常大了,现在也许它需要自己的shard了
aliase可以使得我们在应用透明的情况下悄无声息的把数据转移到单独的一个index中。
(1)创建一个单独的index,设置主分片,根据数据情况设置
PUT /baking_v1
{
"settings": {
"number_of_shards": 3
}
}
(2)转移数据到新的index(采用scale,bulk),然后把aliase转移过来
POST /_aliases
{
"actions": [
{ "remove": { "alias": "baking", "index": "forums" }},
{ "add": { "alias": "baking", "index": "baking_v1" }}
]
}
这步系统是自动的,类似switch,
(3)这个新的index不再需要routing和filter了,因为就只有这一个user的数据了。删除原来index中的旧数据。
DELETE /forums/post/_query?routing=baking
{
"query": {
"term": {
"forum_id": "baking"
}
}
}