健康状态:
集群三个节点,由于其中一个节点的存储满了,无法写入磁盘,导致一个主分片不可用。
1、查看分配的状态
GET http://192.168.167.240:9200/_cat/shards?v
找到 state 为 UNASSIGNED
的,记录分片的编号 即 shards 的值。
2、手动强制分配主分片
将未分配的分片,手动分配到指定节点
POST _cluster/reroute
{
"commands": [
{
"allocate_stale_primary": {
# 索引名
"index": "yx-search-chat-other-1000w",
# 分片编号
"shard": 2,
# 节点名称
"node": "lFh7iqS",
# 接受节点数据的丢失
"accept_data_loss": true
}
}
]
}
执行完,需要等待分片 init
例如 这里给content字段加上copy_to
PUT your_index/_doc/_mapping
{
"properties": {
"content": {
"type": "text",
"copy_to": "indexFullText",
"analyzer": "custom_analyzer"
}
}
}
执行前记得备份重要数据
上面请求适用于 6.x的版本,7.x的版本需要将 _doc
去掉即可。