Elasticsearch映射字段數(shù)據(jù)類型及管理
Elasticsearch映射管理
在Elasticsearch 6.0.0或更高版本中創(chuàng)建的索引只包含一個mapping type。 在5.x中使用multiple mapping types創(chuàng)建的索引將繼續(xù)像以前一樣在Elasticsearch 6.x中運(yùn)行。 Mapping types將在Elasticsearch 7.0.0中完全刪除
一 映射介紹
在創(chuàng)建索引的時候,可以預(yù)先定義字段的類型及相關(guān)屬性
Es會根據(jù)Json數(shù)據(jù)源的基礎(chǔ)類型,猜測你想要映射的字段,將輸入的數(shù)據(jù)轉(zhuǎn)變成可以搜索的索引項(xiàng)。
Mapping是我們自己定義的字段數(shù)據(jù)類型,同時告訴es如何索引數(shù)據(jù)及是否可以被搜索
作用:會讓索引建立的更加細(xì)致和完善
1.1 字段數(shù)據(jù)類型
string類型:text,keyword
數(shù)字類型:long,integer,short,byte,double,float
日期類型:data
布爾類型:boolean
binary類型:binary
復(fù)雜類型:object(實(shí)體,對象),nested(列表)
geo類型:geo-point,geo-shape(地理位置)
專業(yè)類型:ip,competion(搜索建議)
1.2 映射參數(shù)
屬性 | 描述 | 適合類型 |
---|---|---|
store | 值為yes表示存儲,no表示不存儲,默認(rèn)為no | all |
index | yes表示分析,no表示不分析,默認(rèn)為true | text |
null_value | 如果字段為空,可以設(shè)置一個默認(rèn)值,比如"NA"(傳過來為空,不能搜索,na可以搜索) | all |
analyzer | 可以設(shè)置索引和搜索時用的分析器,默認(rèn)使用的是standard分析器,還可以使用whitespace,simple。都是英文分析器 | all |
include_in_all | 默認(rèn)es為每個文檔定義一個特殊域_all,它的作用是讓每個字段都被搜索到,如果想讓某個字段不被搜索到,可以設(shè)置為false | all |
format | 時間格式字符串模式 | date |
二 創(chuàng)建索引
text類型會取出詞做倒排索引,keyword不會被分詞,原樣存儲,原樣匹配
mapping類型一旦確定,以后就不能修改了
#6.x的版本沒問題 PUT books { "mappings": { "book":{ "properties":{ "title":{ "type":"text", "analyzer": "ik_max_word" }, "price":{ "type":"integer" }, "addr":{ "type":"keyword" }, "company":{ "properties":{ "name":{"type":"text"}, "company_addr":{"type":"text"}, "employee_count":{"type":"integer"} } }, "publish_date":{"type":"date","format":"yyy-MM-dd"} } } } }
7.x版本以后
PUT books { "mappings": { "properties":{ "title":{ "type":"text", "analyzer": "ik_max_word" }, "price":{ "type":"integer" }, "addr":{ "type":"keyword" }, "company":{ "properties":{ "name":{"type":"text"}, "company_addr":{"type":"text"}, "employee_count":{"type":"integer"} } }, "publish_date":{"type":"date","format":"yyy-MM-dd"} } } }
插入數(shù)據(jù)測試:
PUT books/_doc/1 { "title":"大頭兒子小偷爸爸", "price":100, "addr":"北京天安門", "company":{ "name":"我愛北京天安門", "company_addr":"我的家在東北松花江傻姑娘", "employee_count":10 }, "publish_date":"2019-08-19" } #測試數(shù)據(jù)2 PUT books/_doc/2 { "title":"白雪公主和十個小矮人", "price":"99", #寫字符串會自動轉(zhuǎn)換 "addr":"黑暗森里", "company":{ "name":"我的家鄉(xiāng)在上海", "company_addr":"朋友一生一起走", "employee_count":10 }, "publish_date":"2018-05-19" }
三 查看索引
#查看books索引的mapping GET books/_mapping #獲取所有的mapping GET _all/_mapping
以上就是Elasticsearch映射字段數(shù)據(jù)類型及管理的詳細(xì)內(nèi)容,更多關(guān)于Elasticsearch映射字段數(shù)據(jù)類型管理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python面經(jīng)之16個高頻面試問題總結(jié)
這篇文章主要給大家介紹了關(guān)于Python面經(jīng)之16個高頻面試問題的相關(guān)資料,幫助大家回顧基礎(chǔ)知識,了解面試套路,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-03-03Dephi逆向工具Dede導(dǎo)出函數(shù)名MAP導(dǎo)入到IDA中的實(shí)現(xiàn)方法
這篇文章主要介紹了Dephi逆向工具Dede導(dǎo)出函數(shù)名MAP導(dǎo)入到IDA中,通過這個腳本,我們就可以把專業(yè)dephi程序分析的結(jié)果,轉(zhuǎn)移到IDA專業(yè)逆向代碼分析的平臺,實(shí)現(xiàn)聯(lián)動,需要的朋友可以參考下2022-08-08django 認(rèn)證類配置實(shí)現(xiàn)
本文主要介紹了django 認(rèn)證類配置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11將不規(guī)則的Python多維數(shù)組拉平到一維的方法實(shí)現(xiàn)
這篇文章主要介紹了將不規(guī)則的Python多維數(shù)組拉平到一維的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Django rest framework jwt的使用方法詳解
這篇文章主要介紹了Django rest framework jwt的使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08python用ConfigObj讀寫配置文件的實(shí)現(xiàn)代碼
發(fā)現(xiàn)一個簡單而又強(qiáng)大的讀寫配置文件的lib,個人覺得最大的亮點(diǎn)在于自帶的格式校驗(yàn)功能,并且支持復(fù)雜的嵌套格式,而且使用起來也相當(dāng)?shù)暮啽?/div> 2013-03-03最新評論