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