映射是建立索引的時候,能夠預先定義字段的類型以及相關屬性python
Elasticsearch會根據JSON源數據的基礎類型去猜想你想要的字段映射。將輸入的數據變成可搜索的索引項。Mapping就是咱們本身定義字段的數據類型,同時告訴Elasticsearch如何索引數據以及是否能夠被搜索。app
做用:會讓索引創建的更加細緻和完善分佈式
類型:靜態映射和動態映射es5
string類型: text,keyword(string類型在es5已經被棄用)spa
數字類型:long, integer, short, byte, double, floatcode
日期類型: dateorm
bool類型: booleanblog
binary類型: binary 索引
複雜類型: object ,nestedip
geo類型: point , geo-shape
專業類型: ip, competion
mapping 限制的type
建立mapping
PUT lagou { "mappings": { "job":{ "properties": { "title":{ "type":"text" }, "salary_min":{ "type":"integer" }, "city":{ "type": "keyword" }, "company":{ "properties": { "name":{ "type":"text" }, "company_addr":{ "type":"text" }, "employee_count":{ "type":"integer" } } }, "publish_date":{ "type":"date", "format": "yyyy-MM-dd" }, "comments":{ "type": "integer" } } } } }
PUT lagou/job/1
#當類型不符合的時候他會嘗試去轉換類型,好比字符串的數字和數字類型,可是若是沒法轉換就會報錯。
{ "title":"python分佈式爬蟲開發", "salary_min":15000, "city":"北京", "company":{ "name":"百度", "company_addr":"北京市軟件園", "employee_count":50 }, "publish_date":"2017-4-16", "comments":15 }
#獲取映射
GET lagou/_mapping GET lagou/_mapping/job GET _all/_mapping/job
#索引中的那個咱們創建好了某個字段的映射後,就沒法更改了