在上一節中,咱們建立了索引,在建立索引的時候,咱們指定了mapping屬性,mapping屬性中規定索引中有哪些字段,字段的類型是什麼。在mapping中,咱們能夠定義以下內容:java
類型爲String的字段,將會被全文索引;shell
其餘的字段類型包括:數字、日期和geo(地理座標);json
日期類型的格式;數組
動態添加字段的映射規則;微信
字段的可用類型以下:app
簡單的類型,好比:text,keyword,date,long,double,boolean,ip。咱們能夠看到,類型當中沒有String,字符串的類型是text,全部text類型的字段都會被全文索引。數字類型有兩個,long(長整型)和double(浮點型)。ide
JSON的層級類型:Object(對象)和Nested(數組對象)。Object類型時,該字段能夠存儲一個JSON對象;Nested類型時,該字段能夠存儲一個數組對象。spa
複雜的類型:包括 geo_point、geo_shape和completion。.net
在索引中建立映射
咱們在建立索引的時候能夠同時建立映射,就如同上一節的內容。也能夠在索引建立好之後,再去建立映射,請求的方式以下:code
PUT /my-index
{
"mappings": {
"properties": {
"age": { "type": "integer" },
"email": { "type": "keyword" },
"name": { "type": "text" }
}
}
}
請求的方法咱們要使用PUT
,路徑是咱們的索引名稱,請求體當中是咱們爲索引添加的字段和字段的類型。
在存在的映射中添加字段
正如上面所示,咱們在一個索引中添加了字段,可是如今咱們要補充額外的字段,這時,咱們要怎麼作呢?
PUT /my-index/_mapping
{
"properties": {
"employee-id": {
"type": "keyword",
"index": false
}
}
}
咱們使用PUT
方法,後面跟隨咱們的索引名稱,再接上_mapping
,請求體中是咱們新添加的映射字段,咱們指定了字段的類型爲keyword
,index
索引爲false
,說明這個字段只用於存儲,不會用於搜索,搜索這個字段是搜索不到的。
咱們在更新字段時候,是不能修改字段的類型的。若是咱們要修改字段的類型,最好是新建一個新的字段,指定正確的類型,而後再更新索引,之後咱們只須要查詢這個新增的字段就能夠了。
查看索引中的字段映射
若是咱們要查看已知索引的字段映射,能夠向ES發送以下的請求:
GET /my-index/_mapping
請求的方法是GET
,請求的路徑是咱們索引的名稱my-index
,再加上一個_mapping
,獲得的返回結果以下:
{
"my-index" : {
"mappings" : {
"properties" : {
"age" : {
"type" : "integer"
},
"email" : {
"type" : "keyword"
},
"employee-id" : {
"type" : "keyword",
"index" : false
},
"name" : {
"type" : "text"
}
}
}
}
}
返回的結果中,咱們能夠看到索引的名稱my-index
,還有咱們添加的字段,也包括後續補充的employee-id
字段。
好了,關於索引的字段映射就先給你們介紹到這裏。
本文分享自微信公衆號 - 牛初九(tech-java)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。