貼一下錯誤信息:
一、設置副分片
1.查詢索引設置:發現副本數爲2,直接設置爲0
product/_settings
2.設置副本數爲0
PUT參數:
{"number_of_replicas":0}
3.此時在看集羣節點狀態
此時他會自動分配到其他節點,如果一直沒有分配到其他節點,那就是其他節點有錯誤信息,沒同步成功,我這裏就一直沒成功,發現是應爲ik分詞器報錯,所以在子節點安裝了ik分詞器以後重啓節點即可。
成功的截圖(我後來又將副分片設置成一就好了,設置成2仍然會出現3個未分配分片,應該和節點數量有關。可以嘗試加節點或者減少副分片):
二、命令行強制分配分片
1.查看集羣健康狀態:
curl -XGET http://localhost:9200/_cluster/health?pretty
圖中顯示有6個分片未分配節點
2.查看未分配分片狀態
curl -s "http://localhost:9200/_cat/shards" | grep UNASSIGNED
3.查看節點爲master的節點唯一標識
curl 'localhost:9200/_nodes/process?pretty'
4.執行reroute
curl -H "Content-Type: application/json" -XPOST 'localhost:9200/_cluster/reroute' -d '{
"commands" : [
{
"allocate_replica" : {
"index" : "product",
"shard" : 0,
"node" : "master"
}
}
]
}'
index:需要修復的索引的名字product
shard:shard的編號,圖中可以看出0,1,2
node:master節點名字
備註:我在執行該命令的時候報錯:
看到上面有說ik分詞器,纔想起來master上面的product使用了ik分詞器,從節點沒有安裝,所以無法成功強制分片。此時需要將從節點也安裝ik分詞器。 一定要重啓!!!!!!
檢驗ik分詞器是否安裝:
post執行: _analyze
參數:{"text":"中華人民共和國人民大會堂","analyzer":"ik_max_word"}
正確結果返回如圖:
參考:https://blog.csdn.net/wer724853863/article/details/78533105