我們已經通過索引一篇文檔創建了一個新的索引 。這個索引采用的是默認的配置,新的字段通過動態映射的方式被添加到類型映射。現在我們需要對這個建立索引的過程做更多的控制:我們想要確保這個索引有數量適中的主分片,並且在我們索引任何數據 之前 ,分析器和映射已經被建立好。費話不多說,我們來看。
利用Kibana提供的DevTools來執行命令,要創建一個索引
put /sdb (其中sdb為一個索引)
創建成功后會返回如下結果
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "sdb"
}
如果你想禁止自動創建索引,你 可以通過在 config/elasticsearch.yml
的每個節點下添加下面的配置:
action.auto_create_index: false
上面我們創建好了一個索引,可以通過
GET /sdb 來查看
{
"sdb" : {
"aliases" : { },
"mappings" : { },
"settings" : {
"index" : {
"creation_date" : "1552621484634",
"number_of_shards" : "5", //每個索引的主分片數,默認值是 5 。這個配置在索引創建后不能修改。
"number_of_replicas" : "1", //每個主分片的副本數,默認值是 1 。對於活動的索引庫,這個配置可以隨時修改。
"uuid" : "PQ1TSt5hQOua_cUAegrYmw",
"version" : {
"created" : "6060299"
},
"provided_name" : "sdb"
}
}
}
}
如果想修改副本數,可以用 update-index-settings
API 動態修改副本數:
PUT /sdb/_settings
{
"number_of_replicas": 1
}
再次使用GET /sdb進行查看
上面我們說了如何創建一個索引,那么接下來我們來說說如何刪除一個索引
DELETE /sdb
或者
DELETE /sd*
也可以一次性刪除多個索引
DELETE /sdb,/sda
也可以刪除全部索引
DELETE /_all 或者 DELETE /*
刪除成功后會有以下提示:
{
"acknowledged" : true
}
一般來說這樣刪除太過隨意,也太過危險,因此我們可以elasticsearch.yml
做如下配置:
action.destructive_requires_name: true
這個設置使刪除只限於特定名稱指向的數據, 而不允許通過指定 _all
或通配符來刪除指定索引庫。你同樣可以通過 Cluster State API 動態的更新這個設置。
以上部分內容來自網絡,有問題可以在下方評論,討論技術問題可以私聊我。