一、ES索引模板別名
ES中的索引模板可通過別名來標識。別名是一個指向一個或多個索引的不變名稱,可以在查詢時使用,並可動態的為當前索引選擇別名
PUT /_aliases { "actions": [ { "add": { "index": "my_index", "alias": "my_index_alias" } } ] }
在上述代碼中,”my_index”是被操作的索引名稱,”my_index_alias”是為它定義的別名
二、ES索引模板創建
創建索引模板的過程是創建和定義具有相似字段和屬性結構的ES索引的一種簡單方法
PUT _template/template_1 { "index_patterns": ["te*", "bar*"], "settings": { "number_of_shards": 1 }, "mappings": { "_doc": { "_source": { "enabled": false }, "properties": { "host_name": { "type": "keyword" }, "created_at": { "type": "date", "format": "EEE MMM dd HH:mm:ss Z yyyy" } } } } }
示例代碼中匹配任何以 ‘te’ 或 ‘bar’為前綴開頭的索引,索引只有一個分片,’_doc’是類型名稱,mappings下定義了字段名稱、數據類型和格式等屬性
三、ES索引模板設置別名
在ES索引模板中可以將別名分配給多個索引模式,這通常用於設置別名,以便它們可以在相似的索引之間靈活切換
PUT _template/template_1 { "index_patterns": ["te*", "bar*"], "aliases": { "alias_1": {}, "alias_2": { "filter": { "term": {"user": "kimchy"} }, "routing": "kimchy" } } }
在上述代碼中,除基本索引數據結構之外,還定義了“alias_1”和“alias_2”兩個別名,其中“alias_2”定義了一些過濾規則和路由信息
四、ES索引模板查詢
ES索引模板可以使用索引模板名稱或者索引模式(用於匹配動態創建的索引)進行查詢
GET _template/template_1 GET _template/te*
五、ES索引模板使用場景
索引模板允許我們為一組索引指定相同的映射、設置和別名。我們可以使用這種方法進行索引自動化創建、更新、刪除等操作
六、ES索引模板模糊匹配字段名稱
在索引模板中,可以使用通配符模式定義字段名
PUT _template/template_1 { "index_patterns": ["*"], "log-*": { "properties": { "tags": { "type": "keyword" }, "message": { "type": "text" } } } }
在上述代碼中,“log-*”表示只匹配名稱以“log-”開頭的所有索引模板
七、ES索引模板刪除
刪除索引模板是一個簡單的操作,只需要選擇要刪除的索引模板並該操作即可
DELETE _template/template_1
八、ES索引模板丟失
當索引創建失敗時,有時會忘記指定映射信息。這樣,將使用默認的Elasticsearch映射。當嘗試在此類索引中調用沒有映射的字段時,將在丟失的映射字段中得到錯誤
九、ES索引模板沒生效
當在映射和模板定義期間進行更改時,請記得刪除索引並重新創建新的索引。反映更改後的映射和模板定義
ES索引模板是一個非常有用的工具,它可以讓我們根據需要快速定義和更新索引結構。以上是關於ES索引模板的一些重要知識點及對應代碼示例。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256959.html