ElasticSearch 重建索引

创建新的索引和字段类型

设置索引副本数量

导入数据时,要设置副本为0,数据导入完成后,记得副本设置为1

1
2
3
4
5
6
7
8
9
PUT my_index_v2/_settings
{

"settings" : {
"index" : {
"number_of_replicas" : "1"
}
}
}

设置刷新时间禁用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
默认为1S

禁用刷新
PUT /my_index_v2/_settings
{
"refresh_interval": "-1"
}


恢复
PUT /my_index_v2/_settings
{
"refresh_interval": "1s"
}

reindex 开始重建索引

数据量大一般会超时,但是任务还在执行,可以查看任务

1
2
3
4
5
6
7
8
9
POST _reindex
{
"source": {
"index": "my_index"
},
"dest": {
"index": "my_index_v2"
}
}

查看任务

1
GET _tasks?actions=indices:data/write/reindex

取消任务

1
POST _tasks/task_id:1/_cancel

创建索引别名

最好一开始就设计好索引别名,如果怕索引被删除,字段类型自动生成,可为索引名称设置模板

1
PUT /my_index_v2/_alias/my_index

查看别名

1
2
3
GET /my_index_v2/_alias/*

GET /*/
_alias/my_index

程序批量导入

使用 scroll(游标) 批量查询,再批量导入

先根据条件初始化查询,拿到第一指数据和scroll id, 再根据 scroll id 一批一批的查询(好像越查越慢),再用bulk api批量写入