這應該是短期間ES的知識篇最後一篇.....
脫離on cloud太久了,怕一個不小心被判失格就GG了
但這些不寫後面引入資料跟建制模板,拉出資料根本講不下去呀
真是令人爲難呢 on cloud這個詞
欸,不是,沒在抱怨主辦方Σヽ(゚Д ゚; )ノ
只是後端技術宅就是比較愛探討怎麽用比較好
但最近加班實在加到腦細胞都快死光了,所以我們來簡單點
原本想來寫Dynamic vs strict
Nested的設定
以及一些mapping的meta訊息
但實在太深了,我也只是會用,要我寫文章
我大概自己也看不懂(≖ᴗ≖๑)
挑幾個常用常見的出來說說
點擊關鍵字可連往官方連結
身爲一個英文聾啞人士,如果還是文盲可能文章寫起來就有點吃力了呢
顧名思議直接由ES去幫助設定這張index的Mapping和相關Setting
按照預設規則自動配對到新創建的索引上,特性有以下
超抽象,來舉個栗子
PUT /_template/template_1
{
    "index_patterns" : ["*"],//套用至所有模板
    "order" : 0,//基底模板
    "settings" : {
        "number_of_shards" : 1 //指定套用分片
    },
    "mappings" : {
        "_source" : { "enabled" : false }//是否壓縮字段
    }
}
PUT /_template/template_2
{
    "index_patterns" : ["te*"],//套用至te開頭的模板
    "order" : 1,//覆蓋基底模板
    "settings" : {
        "number_of_shards" : 1 //指定套用分片
    },
    "mappings" : {
        "_source" : { "enabled" : true }//開啓壓縮字段
    }
}
算是比較JS的簡單暴力模板類型,啥意思?ES覺得他是啥就是啥
PUT my_index
{
    "mappings": {
        "dynamic_templates": [ 模板宣告
            {
                "strings_as_boolean": { //如果是字段且符合is開頭就設定爲boolean
                    "match_mapping_type":   "string",
                    "match":"is*",
                    "mapping": {
                        "type": "boolean"
                    }
                }
            },
            {
                "strings_as_keywords": { // 如果單存爲字段就設爲keyword
                    "match_mapping_type":   "string",
                    "mapping": {
                        "type": "keyword"
                    }
                }
            }
        ]
    }
}
天哪,這篇也是一個爆字雖然大步份是程式碼
但想傳達應該有傳達到了
果然寫維運的東西,大部分都是設定,寫起來就有點硬
是該收收東西明天一樣早起耕田~
我覺得你說的 "反人類" ,真的有點道理; 
有些地方,比起關聯式資料庫,背後的學理更加高深了....
還好這次是直接在雲端環境進行學習,如果還要搞個軟硬體設定安裝,大概一星期就先不見囉