文章目錄
- 認識映射
- 元字段
- 數據類型
- 1.基本數據類型
- 2.復雜數據類型
- 專用數據類型
- 多字段類型
認識映射
映射類似于關系型數據庫中的Schema(模式)。Schema在關系型數據庫中是指庫表包含的字段及字段存儲類型等基礎信息。
映射定義由兩部分組成:元字段、數據類型字段。
元字段
元字段用于自定義關于處理文檔的相關元數據。元字段包括文檔的index、id和source等。各種元字段都以一個下劃線開頭,例如_id和_source。
常見元字段類型如下。
(1)標識元字段
?_index:表示文檔所屬的索引。
?_id:表示文檔的ID
2)文檔源元字段
?_source:表示代表文檔正文的原始JSON對象。
?_size:表示source字段的大小(以字節為單位)。
(3)索引元字段
?_field_names:表示給定文檔中包含非空值的所有字段。
?_ignored:表示由于設置ignore_malformed而在索引時被忽略的字段。
(4)路由元字段
?_routing:用于將給定文檔路由到指定的分片。
(5)其他元字段
?_meta:表示應用程序特定的元數據,通俗地解讀為可用于給索引加必要注釋信息。?_tier:指定文檔所屬索引的數據層級別,如在查詢文檔時可以指定data_hot、data_warm、data_cold等。
數據類型
1.基本數據類型
這是指大多數系統都支持的基本數據類型,舉例如下。
?binary:編碼為Base64字符串的二進制類型。
?boolean:僅支持true和false的布爾類型。
?keyword:支持精準匹配的keyword類型、const_keyword類型和wildcard類型。?number:數值類型,如integer、long、float、double等。
?date:日期類型,包括date和date_nanos。
?alias:別名類型,區別于索引別名,此處的別名是字段級別的別名。
?text:全文檢索類型。
2.復雜數據類型
復雜數據類型是常見數據類型的組合,舉例如下。
?數組類型:Array。
?JSON對象類型:Object。
?嵌套數據類型:Nested。
?父子關聯類型:Join。
?Flattened類型:將原來一個復雜的Object或者Nested嵌套多字段類型統一映射為扁平的單字段類型。
注意:
1)嚴格來講,Elasticsearch無專門的數組類型。
2)任何類型都可以包含一個或者多個元素,當數據包含多個元素的時候,它就是數組類型。
3)數組類型要求一個組內的數據類型一致。
專用數據類型
?坐標數據類型:用于保存地理位置詳細信息,例如表示經緯度信息的geo_point數據類型。
?IP類型:表示IPV4或IPV6地址。
?completion類型:是Elasticsearch中的一種專用字段類型,旨在實現高效的自動補全功能。該類型的設計理念在于快速查找和返回符合查詢條件的建議,從而實現如搜索框自動補全等交互性強的功能,極大提升用戶體驗。