Elasticsearch Index templates


 

Index templates 有2種:

component templates 可重用的構建塊,用於配置settings, mappings, and aliases。雖然可以使用組件模板構造索引模板,但它們不會直接應用於一組索引。

Index templates 索引模板可以包含component templates的集合,也可以直接指定settings, mappings, and aliases。

 

以下條件適用於 index templates:

  • Composable templates 優先於 legacy templates(舊的模板方式). 如果沒有composable template匹配,  legacy template 將被應用.
  • 如果index的settings是配置了的,那么settings的優先級高於index template 和 component templates.
  • 如果一個新的data stream 或 index 可以匹配多個index template, 將選擇優先級最高的index template.

Elasticsearch內置了以下模板,他們用於Elasticsearch自身,優先級是100:

logs-*-*
metrics-*-*
synthetics-*-*

為了避免沖突,最好把自定義的模板跟內置模板的命名區分開。

以下創建2個component templates

PUT _component_template/component_template1 { "template": { "mappings": { "properties": { "@timestamp": { "type": "date" } } } } } PUT _component_template/runtime_component_template { "template": { "mappings": { "runtime": {  "day_of_week": { "type": "keyword", "script": { "source": "emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ROOT))" } } } } } }

以下創建Index templates 並把component_template1, runtime_component_template作為組件

PUT _index_template/template_1 { "index_patterns": ["te*", "bar*"], "template": { "settings": { "number_of_shards": 1 }, "mappings": { "_source": { "enabled": true }, "properties": { "host_name": { "type": "keyword" }, "created_at": { "type": "date", "format": "EEE MMM dd HH:mm:ss Z yyyy" } } }, "aliases": { "mydata": { } } }, "priority": 500, "composed_of": ["component_template1", "runtime_component_template"],  "version": 3, "_meta": { "description": "my custom" } }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM