已經把ElasticSearch的核心概念和關系數據庫做了一個對比,索引(index)相當於數據庫,類型(type)相當於數據表,映射(Mapping)相當於數據表的表結構。ElasticSearch中的映射(Mapping)用來定義一個文檔,可以定義所包含的字段以及字段的類型、分詞器及屬性等等。
文檔映射就是給文檔中的字段指定字段類型、分詞器。
使用GET /mymayikt/user/_mapping
es把type移除了!!! 自動映射 自動識別
映射的查詢: GET /toov5/_mapping
小結: Stirng 類型分為 text 和keywork
text會進行分詞查詢 keyword不會進行分詞查詢只能進行精確查詢!
映射的分類
動態映射
我們知道,在關系數據庫中,需要事先創建數據庫,然后在該數據庫實例下創建數據表,然后才能在該數據表中插入數據。而ElasticSearch中不需要事先定義映射(Mapping),文檔寫入ElasticSearch時,會根據文檔字段自動識別類型,這種機制稱之為動態映射。
靜態映射
在ElasticSearch中也可以事先定義好映射,包含文檔的各個字段及其類型等,這種方式稱之為靜態映射。
ES類型支持
基本類型
符串:string,string類型包含 text 和 keyword。
text:該類型被用來索引長文本,在創建索引前會將這些文本進行分詞,轉化為詞的組合,建立索引;允許es來檢索這些詞,text類型不能用來排序和聚合。
keyword:該類型不需要進行分詞,可以被用來檢索過濾、排序和聚合,keyword類型自讀那只能用本身來進行檢索(不可用text分詞后的模糊檢索)。
注意: keyword類型不能分詞,Text類型可以分詞查詢
數指型:long、integer、short、byte、double、float
日期型:date
布爾型:boolean
二進制型:binary
數組類型(Array datatype)
復雜類型
地理位置類型(Geo datatypes)
地理坐標類型(Geo-point datatype):geo_point 用於經緯度坐標
地理形狀類型(Geo-Shape datatype):geo_shape 用於類似於多邊形的復雜形狀
特定類型(Specialised datatypes)
Pv4 類型(IPv4 datatype):ip 用於IPv4 地址
Completion 類型(Completion datatype):completion 提供自動補全建議
Token count 類型(Token count datatype):token_count 用於統計做子標記的字段的index數目,該值會一直增加,不會因為過濾條件而減少
mapper-murmur3 類型:通過插件,可以通過_murmur3_來計算index的哈希值
附加類型(Attachment datatype):采用mapper-attachments插件,可支持_attachments_索引,例如 Microsoft office 格式,Open Documnet 格式, ePub,HTML等
Analyzer 索引分詞器,索引創建的時候使用的分詞器 比如ik_smart
Search_analyzer 搜索字段的值時,指定的分詞器
創建文檔映射: 同時還可以指定字段的分詞器!
不能做更改! 直接之前的刪除 然后重新創建之
##刪除索引
DELETE /toov5
##創建索引
PUT /toov5
POST /toov5/_mapping/user
{
"user":{
"properties":{
"age":{
"type":"integer"
},
"sex":{
"type":"integer"
},
"name":{
"type":"text",
"analyzer":"ik_smart",
"search_analyzer":"ik_smart"
},
"car":{
"type":"keyword"
}
}
}
}
##查看映射類型
GET /toov5/_mapping
查看結果: