iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 17
0

講到索引生命週期管理不的講到Index Template
索引模板簡單講就是自動匹配特定的索引來去設定一些東西,有了模板不用一個一個索引去設定
索引模板大致上分為兩大類:

  • Settings 指定index的配置信息,比如分片數、副本數、refresh策略還要最重要的生命週期策略等等;
  • Mappings 設定索引欄位名稱型別

Mappings又分三大類

動態映射(dynamic:true):動態添加新的字段(或缺省)。
靜態映射(dynamic:false):忽略新的字段。在原有的映射基礎上,當有新的字段時,不會主動的添加新的映射關係,只作為查詢結果出現在查詢中。
嚴格模式(dynamic: strict):如果遇到新的字段,就拋出異常。

早在7.8.0之前只有Index Template,7.9.0之後又增加Component Templates
Component Templates主要用在一些重複設定可以抽出來當組件讓多個模板共用
API的路徑部分也做了差異

  • 7.8.0之前都用 _template
  • 7.9.0之後改用 _index_template_component_template

注意:模板只在創建索引時應用。更改模板不會對現有索引產生影響。

建立模板組件
PUT _component_template/component_template1
{
  "template": {
    "settings": {
      "number_of_shards": 1
    },
    "mappings": {
      "properties": {
        "name": {
          "type": "text"
        },
        "age": {
          "type": "long"
        }
      }
    }
  }
}
使用組件的模板
PUT _index_template/template_1
{
  "index_patterns": ["te*", "bar*"],
  "template": {
    "mappings": {
      "properties": {
        "host_name": {
          "type": "keyword"
        },
        "created_at": {
          "type": "date",
          "format": "EEE MMM dd HH:mm:ss Z yyyy"
        }
      }
    }
  },
  "priority": 200,
  "composed_of": ["component_template1"], # 使用component_template1來節省重複的設定,之後要更改設定也能全部統一修改
  "version": 3,
}

上一篇
Day16-設定索引生命週期管理(二)
下一篇
Day18-設定索引生命週期管理(四)
系列文
Elastic Stack 是一把梭,用起來再說!!!30

尚未有邦友留言

立即登入留言