Elasticsearch映射字段數(shù)據(jù)類型及管理
Elasticsearch映射管理
在Elasticsearch 6.0.0或更高版本中創(chuàng)建的索引只包含一個mapping type。 在5.x中使用multiple mapping types創(chuàng)建的索引將繼續(xù)像以前一樣在Elasticsearch 6.x中運行。 Mapping types將在Elasticsearch 7.0.0中完全刪除
一 映射介紹
在創(chuàng)建索引的時候,可以預先定義字段的類型及相關(guān)屬性
Es會根據(jù)Json數(shù)據(jù)源的基礎(chǔ)類型,猜測你想要映射的字段,將輸入的數(shù)據(jù)轉(zhuǎn)變成可以搜索的索引項。
Mapping是我們自己定義的字段數(shù)據(jù)類型,同時告訴es如何索引數(shù)據(jù)及是否可以被搜索
作用:會讓索引建立的更加細致和完善
1.1 字段數(shù)據(jù)類型
string類型:text,keyword
數(shù)字類型:long,integer,short,byte,double,float
日期類型:data
布爾類型:boolean
binary類型:binary
復雜類型:object(實體,對象),nested(列表)
geo類型:geo-point,geo-shape(地理位置)
專業(yè)類型:ip,competion(搜索建議)
1.2 映射參數(shù)
| 屬性 | 描述 | 適合類型 |
|---|---|---|
| store | 值為yes表示存儲,no表示不存儲,默認為no | all |
| index | yes表示分析,no表示不分析,默認為true | text |
| null_value | 如果字段為空,可以設(shè)置一個默認值,比如"NA"(傳過來為空,不能搜索,na可以搜索) | all |
| analyzer | 可以設(shè)置索引和搜索時用的分析器,默認使用的是standard分析器,還可以使用whitespace,simple。都是英文分析器 | all |
| include_in_all | 默認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ù)類型及管理的詳細內(nèi)容,更多關(guān)于Elasticsearch映射字段數(shù)據(jù)類型管理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實現(xiàn)批量獲取文件夾內(nèi)文件名并重命名
這篇文章主要為大家詳細介紹了Python如何批量獲取文件夾內(nèi)文件名及重命名文件,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2025-02-02
PyCharm+Pipenv虛擬環(huán)境開發(fā)和依賴管理的教程詳解
這篇文章主要介紹了PyCharm+Pipenv虛擬環(huán)境作開發(fā)和依賴管理的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
python 自動化將markdown文件轉(zhuǎn)成html文件的方法
這篇文章主要介紹了python 自動化將markdown文件轉(zhuǎn)成html文件的方法的相關(guān)資料,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2016-09-09
Python實現(xiàn)PDF轉(zhuǎn)為Excel的示例講解
這篇文章主要為大家詳細介紹了在Python中將PDF表格轉(zhuǎn)換為Excel文件的解決方案,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下2023-11-11
python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用)
這篇文章主要介紹了python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
python,Django實現(xiàn)的淘寶客登錄功能示例
這篇文章主要介紹了python,Django實現(xiàn)的淘寶客登錄功能,結(jié)合實例形式分析了Django框架基于淘寶接口的登錄功能相關(guān)操作技巧,需要的朋友可以參考下2019-06-06
Windows平臺Python連接sqlite3數(shù)據(jù)庫的方法分析
這篇文章主要介紹了Windows平臺Python連接sqlite3數(shù)據(jù)庫的方法,結(jié)合實例形式分析了Windows平臺安裝SQLite數(shù)據(jù)庫及創(chuàng)建、連接數(shù)據(jù)庫的實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下2017-07-07

