mapping 详解1(mapping type)
映射(mapping)
映射是定義一個(gè)文檔以及其所包含的字段如何被存儲(chǔ)和索引的方法。
例如,用映射來(lái)定義以下內(nèi)容:
- 哪些 string 類(lèi)型的 field 應(yīng)當(dāng)被當(dāng)成當(dāng)成 full-text 字段
- 哪些字段應(yīng)該是數(shù)值類(lèi)型、日期類(lèi)型或者是地理位置信息
- 日期類(lèi)型字段的格式是怎么樣的
- 是否文檔的所有字段都需要被索引到 _all 字段
- 動(dòng)態(tài)增加的 field 可以由用戶(hù)自定義的模板來(lái)控制其行為
映射類(lèi)型(mapping types)
每個(gè)索引都有一個(gè)或多個(gè)映射類(lèi)型(mapping type)來(lái)對(duì)索引內(nèi)的文檔進(jìn)行邏輯分組(mapping type 就是平常所說(shuō)的 type)。
每一個(gè)映射類(lèi)型都包含以下內(nèi)容:
1. 元數(shù)據(jù)字段
元數(shù)據(jù)字段用來(lái)自定義如何處理關(guān)聯(lián)文檔的元數(shù)據(jù)。元數(shù)據(jù)字段包括: _index, _type, _id, _source.
2. 字段列表或?qū)傩?/h4>
每個(gè)映射類(lèi)型都包含一個(gè)字段列表或者是和該類(lèi)型相關(guān)的一些屬性。
字段數(shù)據(jù)類(lèi)型(field datatypes)
每一個(gè)字段,都屬于一種數(shù)據(jù)類(lèi)型。
1. 基本數(shù)據(jù)類(lèi)型
string, long, boolean, ip
2. JSON 分層數(shù)據(jù)類(lèi)型
object, nested
3. 特殊類(lèi)型
geo_point, geo_shape, completion
動(dòng)態(tài)映射(dynamic mapping)
字段及其映射類(lèi)型不必在使用前事先定義好,這得益于動(dòng)態(tài)映射的應(yīng)用。
動(dòng)態(tài)映射能夠根據(jù)文檔索引過(guò)程來(lái)自動(dòng)生成映射類(lèi)型和字段名。
動(dòng)態(tài)映射規(guī)則可以用來(lái)定義新類(lèi)型和新字段的映射。
顯式映射(explicit mappings)
如果你比 ES 通過(guò)猜測(cè)來(lái)確定映射更加了解你的數(shù)據(jù),那么定義一個(gè)動(dòng)態(tài)映射將會(huì)很有用。不過(guò)有時(shí)候你可能需要指定自己的顯式映射。
顯式映射可以在創(chuàng)建索引時(shí)候定義,或者用 mapping API 來(lái)為已有的索引添加映射類(lèi)型或字段。
映射更新(updating existing mappings)
映射支持更新,如果需要,必須重建索引并設(shè)置正確的 mapping ,而不是試圖去更新已有的 mapping。
字段之間共享映射類(lèi)型(fileds are shared across mapping types)
映射類(lèi)型用來(lái)邏輯分組字段,但是每個(gè)映射類(lèi)型之間的字段并非獨(dú)立存在的。
1. 規(guī)則:
字段在以下條件:
的時(shí)候其實(shí)是映射到內(nèi)部相同的字段上,所以,必須擁有相同的映射設(shè)置。
2. 例外:
有一些例外,參數(shù):
可以對(duì)滿(mǎn)足前述“規(guī)則”的字段進(jìn)行各自不同的設(shè)置。
?
轉(zhuǎn)載于:https://www.cnblogs.com/licongyu/p/5468146.html
總結(jié)
以上是生活随笔為你收集整理的mapping 详解1(mapping type)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [转发]SPRING MVC3.2案例讲
- 下一篇: IOS常用正则表达式