探索ElasticSearch中的Mapping概念
在ElasticSearch中,索引的Mapping類似于關(guān)系型數(shù)據(jù)庫表的Schema,定義了索引包含的字段、數(shù)據(jù)類型以及是否構(gòu)建倒排索引和使用的分詞器。本文將分享Mapping的相關(guān)知識和應(yīng)用。 了
在ElasticSearch中,索引的Mapping類似于關(guān)系型數(shù)據(jù)庫表的Schema,定義了索引包含的字段、數(shù)據(jù)類型以及是否構(gòu)建倒排索引和使用的分詞器。本文將分享Mapping的相關(guān)知識和應(yīng)用。
了解Mapping的基礎(chǔ)
首先,在Kibana管理界面中點擊“索引管理”,選擇一個索引并點擊進(jìn)入“映射”頁簽,即可查看該索引的Mapping信息。重點關(guān)注文本類型字段中的"ignore_above"配置項,用于控制不進(jìn)行分詞的字段的長度限制。
自動構(gòu)建索引的Mapping信息
當(dāng)向一個不存在的索引中添加文檔數(shù)據(jù)時,ElasticSearch會自動創(chuàng)建索引并根據(jù)文檔數(shù)據(jù)推斷字段類型,構(gòu)建相應(yīng)的Mapping信息。
動態(tài)Mapping概念
Mapping中有一個dynamic屬性,決定如何處理新增文檔中包含的新增字段。默認(rèn)情況下(值為true),新增字段會被索引,可以被搜索。當(dāng)dynamic設(shè)為false時,新增字段不能被索引;設(shè)為strict時,新增字段會導(dǎo)致文檔新增失敗。
dynamic為false的情況
設(shè)置Mapping的dynamic屬性為false后,嘗試新增一條帶新字段的文檔會成功添加,但無法通過新字段查詢到該文檔數(shù)據(jù)。
dynamic為strict的情況
將Mapping的dynamic屬性設(shè)為strict,再次嘗試新增一條包含新字段的文檔時,會發(fā)現(xiàn)文檔新增失敗,嚴(yán)格限制了新增字段的接受范圍。
通過深入了解ElasticSearch中Mapping的概念和使用方法,可以更好地理解和管理索引的結(jié)構(gòu),提高數(shù)據(jù)的搜索效率和準(zhǔn)確性。對于開發(fā)人員和系統(tǒng)管理員來說,掌握Mapping是必不可少的技能,有助于優(yōu)化ElasticSearch的數(shù)據(jù)處理流程和性能表現(xiàn)。