1. 程式人生 > >Elasticsearch索引管理(一)——建立索引

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值。)

翻譯源:Elasticsearch 6.4 文件