ES之動(dòng)態(tài)映射(dynamic mapping)

dynamic mapping is es schema

在關(guān)系型數(shù)據(jù)庫中,得先創(chuàng)建表歹袁,指定字段和字段類型,才能將數(shù)據(jù)插入表中条舔。在ES中,索引就相當(dāng)于表孟抗,文檔就相當(dāng)于記錄,文檔里面的字段就相當(dāng)于表的字段凄硼,字段同樣有數(shù)據(jù)類型。mapping就用來定義文檔有哪些字段摊沉,這些字段如何存儲(chǔ)和索引狐史。
ES與關(guān)系型數(shù)據(jù)庫不同之處在于说墨,其不需要先定義表結(jié)構(gòu),而可以根據(jù)寫入文檔的內(nèi)容尼斧,來推斷字段和數(shù)據(jù)類型,創(chuàng)建索引結(jié)構(gòu)突颊,這就是dynamic mapping,動(dòng)態(tài)映射的由來律秃。這提供了極大的靈活性爬橡。
注:一個(gè)索引的字段數(shù)量有上限的糙申,超過上限就會(huì)報(bào)錯(cuò)。

dynamic參數(shù)設(shè)置

按dynamic值船惨,可分為下面三種模式

  • 動(dòng)態(tài)模式(dynamic:true),根據(jù)輸入文檔的內(nèi)容粱锐,自動(dòng)推斷字段和類型,創(chuàng)建mapping
  • 非動(dòng)態(tài)模式(dynamic:false)怜浅,無法根據(jù)輸入文檔的內(nèi)容蔬崩,自動(dòng)創(chuàng)建mapping,需要手動(dòng)創(chuàng)建mapping
  • 嚴(yán)格模式(dynamic:strict)搀暑,同非動(dòng)態(tài)模式,區(qū)別在于自点,非動(dòng)態(tài)模式,輸入的文檔中如果有字段不在mapping中桂敛,依然可以存儲(chǔ)和讀取,但是該字段不在mapping中埠啃,因此也無法根據(jù)該字段進(jìn)行檢索伟恶;但嚴(yán)格模式碴开,無法存儲(chǔ)博秫,會(huì)直接報(bào)錯(cuò),嚴(yán)格模式實(shí)際上就類似于關(guān)系型數(shù)據(jù)庫中的表了挡育。

動(dòng)態(tài)模式(dynamic:true)

根據(jù)輸入文檔內(nèi)容巴碗,自動(dòng)創(chuàng)建mapping

step 1橡淆,es中還沒有index1索引,直接往index1中寫入文檔1

插入文檔1

step 2母赵,這時(shí)候es中就有了索引index1,查詢index1的mapping

可見age被推斷成long型凹嘲,string類型的name被推斷成多字段類型,第一個(gè)類型是text周蹭,第二個(gè)類型是keyword
step 3凶朗,往已有的index1中寫入文檔2,出現(xiàn)了新的字段address
插入文檔2棚愤,增加了字段address

step 4,這時(shí)候address被自動(dòng)加入索引mapping中
字段address增加到了索引mapping中

動(dòng)態(tài)映射默認(rèn)有一個(gè)規(guī)則,即請求中文檔的什么json類型對應(yīng)es中什么數(shù)值類型矛绘,也可以通過動(dòng)態(tài)模板(dynamic template)來覆蓋這個(gè)規(guī)則,實(shí)現(xiàn)自定義推測規(guī)則货矮,具體可以參考ES官網(wǎng)。
上述字段age被推測成long類型囚玫,如果非要往age中寫入string類型的值,則會(huì)報(bào)錯(cuò)抓督。如下圖所示
類型首次推斷成功后燃少,無法再自動(dòng)推斷

非動(dòng)態(tài)模式(dynamic:false)

某些場景下铃在,不需要進(jìn)行動(dòng)態(tài)映射,如需要顯示設(shè)置mapping定铜。
step 1,顯式設(shè)置mapping揣炕,類似于關(guān)系型數(shù)據(jù)庫建表操作

顯式設(shè)置mapping

step 2,查詢index2 mapping
dynamic值為false

step 3畸陡,插入文檔1,字段與mapping保持一致
mapping與文檔一致

step 4丁恭,插入文檔2,增加新的字段address
address可存儲(chǔ)

step 5涩惑,查詢index2的mappings,看是否address會(huì)自動(dòng)添加到mapping中
address字段并未添加到索引中

step 6竭恬,查詢?nèi)课臋n跛蛋,可見文檔2中的address字段值痊硕,說明存儲(chǔ)成功
image.png

step 7,在address字段上進(jìn)行匹配查詢岔绸,無法匹配到結(jié)果橡伞,將索引指定為非動(dòng)態(tài)映射后,無法進(jìn)行自動(dòng)推斷兑徘,但是該字段的值是可以被存儲(chǔ),可是無法在該字段上進(jìn)行查詢羡洛。
address匹配失敗,說明無法在address字段上進(jìn)行匹配

嚴(yán)格模式(dynamic:strict)

step 1欲侮,設(shè)置嚴(yán)格模式

嚴(yán)格模式設(shè)置

step 2,寫入文檔1威蕉,增加了一個(gè)字段address,直接報(bào)錯(cuò)韧涨,連寫都寫不進(jìn)去了
嚴(yán)格模式下,無法寫入不匹配的文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末氓奈,一起剝皮案震驚了整個(gè)濱河市鼎天,隨后出現(xiàn)的幾起案子舀奶,更是在濱河造成了極大的恐慌斋射,老刑警劉巖育勺,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涧至,死亡現(xiàn)場離奇詭異,居然都是意外死亡桑包,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門哑了,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弱左,你說我怎么就攤上這事窄陡〔鸹穑” “怎么了涂圆?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵币叹,是天一觀的道長润歉。 經(jīng)常有香客問我颈抚,道長,這世上最難降的妖魔是什么邪意? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮雾鬼,結(jié)果婚禮上萌朱,老公的妹妹穿的比我還像新娘策菜。我一直安慰自己,他們只是感情好又憨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蠢莺,像睡著了一般寒匙。 火紅的嫁衣襯著肌膚如雪躏将。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天祸憋,我揣著相機(jī)與錄音,去河邊找鬼蚯窥。 笑死掸鹅,一個(gè)胖子當(dāng)著我的面吹牛拦赠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播矛紫,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼颊咬!你這毒婦竟也來了务甥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤敞临,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后挺尿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奏黑,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡编矾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窄俏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凹蜈,死狀恐怖限寞,靈堂內(nèi)的尸體忽然破棺而出仰坦,到底是詐尸還是另有隱情,我是刑警寧澤悄晃,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站传泊,受9級(jí)特大地震影響鼠渺,放射性物質(zhì)發(fā)生泄漏眷细。R本人自食惡果不足惜鹃祖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恬口。 院中可真熱鬧校读,春花似錦祖能、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至兔甘,卻和暖如春谎碍,著一層夾襖步出監(jiān)牢的瞬間洞焙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工澡匪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熔任,地道東北人唁情。 一個(gè)月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像荠瘪,于是被迫代替她去往敵國和親夯巷。 傳聞我的和親對象是個(gè)殘疾皇子哀墓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容