公司裏面如今有es集羣,因爲時間過長,es集羣中的某個索引過大可是未刪除,一直在寫入的狀況下,昨天寫入忽然中止了,發現是索引超時的問題,這時想到經過建立一個新的索引來進行索引切換json
es 集羣中舊索引的名稱爲testlogs,準備新建一個索引userlogs5,經過別名進行切換,前提是數據是經過別名來進行寫入索引的,若是沒有別名須要提早建立。app
具體操做步驟以下:curl
curl -s -X GET "http://localhost:9200/_cat/aliases" userlogs_alias testlogs - - - -
如今須要新建一個userlogs5,替換掉testlogs ,由於testlogs 索引過大,致使讀取速度慢url
curl -s -X PUT "http://localhost:9200/testlogs?pretty" -H 'Content-Type: application/json' -d '{ "settings": { "index.number_of_shards": 10, "index.number_of_replicas": 1 } }'
curl -s -X GET "http://localhost:9200/_cat/indices?v" |grep userlogs5 curl -s -X GET "http://localhost:9200/_cat/shards?v" |grep userlogs5
curl -s -X PUT "http://localhost:9200/testlogs/_alias/userlogs_alias" curl -s -X GET "http://localhost:9200/_cat/aliases"
這裏會有兩個索引對應userlogs_alias, 分別是舊索引和上面新建的索引code
curl -s -X DELETE "http://localhost:9200/testlogs/_alias/userlogs_alias"
curl -s -X GET "http://localhost:9200/_cat/indices?v" |grep userlogs5 curl -s -X GET "http://localhost:9200/_cat/shards?v" |grep userlogs5
索引切換完成以後,數據會經過新的索引寫入,不會影響正常數據,後面若是須要查詢索引,可使用curl 命令查詢舊的索引既可。索引