mapping 详解1(mapping type)
映射(mapping)
映射是定義一個文檔以及其所包含的字段如何被存儲和索引的方法。
例如,用映射來定義以下內容:
哪些 string 類型的 field 應當被當成當成 full-text 字段
哪些字段應該是數值類型、日期類型或者是地理位置信息
日期類型字段的格式是怎么樣的
是否文檔的所有字段都需要被索引到 _all 字段
動態增加的 field 可以由用戶自定義的模板來控制其行為
映射類型(mapping types)
每個索引都有一個或多個映射類型(mapping type)來對索引內的文檔進行邏輯分組(mapping type 就是平常所說的 type)。
每一個映射類型都包含以下內容:
1. 元數據字段
元數據字段用來自定義如何處理關聯文檔的元數據。元數據字段包括: _index, _type, _id, _source.
2. 字段列表或屬性
每個映射類型都包含一個字段列表或者是和該類型相關的一些屬性。
字段數據類型(field datatypes)
每一個字段,都屬于一種數據類型。
1. 基本數據類型
string, long, boolean, ip
2. JSON 分層數據類型
object, nested
3. 特殊類型
geo_point, geo_shape, completion
動態映射(dynamic mapping)
字段及其映射類型不必在使用前事先定義好,這得益于動態映射的應用。
動態映射能夠根據文檔索引過程來自動生成映射類型和字段名。
動態映射規則可以用來定義新類型和新字段的映射。
顯式映射(explicit mappings)
如果你比 ES 通過猜測來確定映射更加了解你的數據,那么定義一個動態映射將會很有用。不過有時候你可能需要指定自己的顯式映射。
顯式映射可以在創建索引時候定義,或者用 mapping API 來為已有的索引添加映射類型或字段。
映射更新(updating existing mappings)
映射支持更新,如果需要,必須重建索引并設置正確的 mapping ,而不是試圖去更新已有的 mapping。
字段之間共享映射類型(fileds are shared across mapping types)
映射類型用來邏輯分組字段,但是每個映射類型之間的字段并非獨立存在的。
1. 規則:
字段在以下條件:
相同字段名
相同索引
不同映射類型
的時候其實是映射到內部相同的字段上,所以,必須擁有相同的映射設置。
2. 例外:
有一些例外,參數:
copy_to
dynamic
enabled
ignore_above
include_in_all
properties
可以對滿足前述“規則”的字段進行各自不同的設置。
總結
以上是生活随笔為你收集整理的mapping 详解1(mapping type)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软官方安装介质Windows10系统安
- 下一篇: nohup