3-1是個什麼東西
覺得這個如同資料庫的建表,不學好根本就是直接玩壞ES
甚至有些東西沒設定好,上線之後還需要停機調整
停機調整是個什麼概念?
假設說一間電商,一個小時可能一百張單(超小型電商的那種)
可能因爲工程師捅包,log沒寫好,無法統計用戶消費習慣
必須因爲這種小事停止接單~~(老闆還不抽你?)~~
創建一張表或一個mapping我們通常稱之爲 數據建模
一個念起來帥氣又專業的東西
接下來敝農將以一個資淺後端的角度來說明"ES"數據建模的考量與注意點
就是不用關係型資料庫概念,打錯了還請鞭大力點,矯正下敝農的三觀
我們又稱之爲邏輯模型
主要依據實際
我們又稱之爲物理模型
主要依據
看過許多工程師把正規化整天掛在嘴邊
結果設計出來的表 超。難。用
如果寫菠菜(博彩)的話就類似於,把一起樂透開獎號碼拆成了七筆資料
跟你說要用期號拉出來後在依照辣個欄位排序
然後跟你說正規化做的很好,欄位原子性有做好....
碼農都知道,你田地沒規劃好,種起來還要跟在地雷區種菜一樣
字段類型 text v.s keyword
text 用在像整首詩這樣,es會進行分詞,但不支持聚合分析與排序
keyword 用在id,enum,性別,郵政編號等等關鍵字,不需分詞,但會拿來排序與數據分析等等
字段類型 數據化結構
資料類型能小則小,可以存byte就不要花俏存到long
程式中開立的constant(enum)等常數項可以直接設置爲keyword
PUT books/_doc/1
{
"title":"Mastering ElasticSearch 5.0",
"description":"Master the searching, indexing, and aggregation features in ElasticSearch Improve users’ ",
"author":"Bharvi Dixit",
"public_date":"2017",
"cover_url":"https://images-na.ssl-images-amazon.com/images/I/51OeaMFxcML.jpg"
}
##然後將字段類型做效能調整
PUT books
{
"mappings" : {
"properties" : {
"author" : {"type" : "keyword"},//可檢索作者
"cover_url" : {"type" : "keyword","index": false},//不檢索圖片路徑
"description" : {"type" : "text"},//描述需做分詞
"public_date" : {"type" : "date"},//型別爲日期方便查詢
"title" : {
"type" : "text",//書名需分詞,且將屬性賦予keyword特性加速檢索
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 100
}
}
}
}
}
}
那時候在學 ES的數據建模真是煞廢苦心,以下是參考資料來源
需購買課程,有餘裕的銅學,可以拿出魔法小卡
啊 ...
原來我就是在 mapping 這邊的設定有誤,難怪我有些 API 的指令出來的結果都怪怪的
QQ
準備上班了,下班後再來好好研讀你最近的篇章