Elasticsearch索引管理(一)——建立索引
1 建立索引
建立索引API用於在Elasticsearch中手動建立索引。Elasticsearch中的所有文件都儲存於索引中。
PUT sss
note:使用預設設定建立索引sss。
索引命名限制
- 索引名必須為小寫
- 不能包括\ / * ? " < > | ` 空白符 , #
- 7.0之前的索引包含冒號( : ),但冒號將會在7.0+之後廢棄
- 不能以- _ +開頭
- 不能為 . 或 …
- 不能超過255個位元組(由於一個字元為多個位元組,所以多字元將會很快達到位元組限制)
1.1 索引設定
在建立索引時,可以在正文中定義被建立索引特有的設定。
建立索引並設定所建立的索引設定
PUT ssss
{
"settings": {
"index" : {
"number_of_shards":7,
"number_of_replicas":4
}
}
}
note:建立切片數量為7,備份數量為4名為ssss的索引。
ps:建立的切片數量預設為5,備份數量預設為1。
ps:配置可以通過不顯式指明index部分來簡化操作。
建立索引並設定所建立的索引設定(簡化版)
PUT ssss
{
"settings": {
"number_of_shards":33,
"number_of_replicas" :4
}
}
note:此為上面操作的簡化版本。
1.2 對映
建立索引API可以提供型別對映。
PUT ggg
{
"settings":{
"number_of_shards" : 1
},
"mappings" : {
"asd" : {
"properties":{
"sg" :{ "type" : "text"}
}
}
}
}
note:建立一個名為ggg的索引,此索引中有一個名為asd的型別,此型別中有一個text型別的名為sg的欄位。
1.3 別名
建立索引API可以提供一組別名。
1.4 等待活動切片
預設情況下,當每個切片的主備份已經開始或請求超時時,索引建立才會返回給客戶端一個響應。
索引建立響應將會指明發生了什麼:
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "my_index"
}
acknowledged表示索引是否成功地在叢集中建立。
shards_acknowledged表示在超時之前,對於索引中的每份切片,是否已經啟動了必要數量的切片副本。
注意,索引建立成功,但acknowledged或shards_acknowledged仍可能為false。這些值只表明在超時之前這些操作是否已經完成。
如果acknowledged為false,則表明在新建立的索引更新叢集狀態之前請求超時,但可能之後完成了建立。
如果shards_acknowleged為false,在必要數量的切片(預設正好為主切片)啟動之前,甚至叢集狀態已經更新為成功建立了新索引(即,acknowledged=true),請求超時。
可以通過索引設定index.write.wait_for_active_shards改變只等待主切片啟動的預設設定。(注意,修改此設定可能可能會影響後續所有寫入操作的wait_for_active_shards值。)