索引設定

索引設定是適用於單個索引的設定。這樣的設定將從 index. 開始。該規則的例外是 number_of_shardsnumber_of_replicas,它們也以 index.number_of_shardsindex.number_of_replicas 的形式存在。

顧名思義,索引級設定適用於單個索引。某些設定必須在建立時應用,因為它們無法動態更改,例如 index.number_of_shards 設定,它控制索引的主分片數。

PUT /my_index
{
  "settings": {
    "index.number_of_shards": 1,
    "index.number_of_replicas": 1
  }
}

或者,以更簡潔的格式,你可以在每個 . 中組合鍵字首:

PUT /my_index
{
  "settings": {
    "index": {
      "number_of_shards": 1,
      "number_of_replicas": 1
    }
  }
}

以上示例將使用提供的設定建立索引。你可以使用索引 _settings 端點動態更改每個索引的設定。例如,在這裡我們動態地改變 slowlog 設定在警告級別:

PUT /my_index/_settings
{
  "index": {
    "indexing.slowlog.threshold.index.warn": "1s",
    "search.slowlog.threshold": {
      "fetch.warn": "500ms",
      "query.warn": "2s"
    }
  }
}

警告 :Elasticsearch 1.x 和 2.x 沒有非常嚴格地驗證索引級別的設定名稱。如果你有一個拼寫錯誤,或者只是簡單地設定了一個設定,那麼它會盲目地接受它,但是否則會忽略它。Elasticsearch 5.x 嚴格驗證設定名稱,它將拒絕任何嘗試使用未知設定應用索引設定(由於拼寫錯誤或缺少外掛)。這兩個語句都適用於動態更改索引設定和建立時。