映射是建立索引的时候,能够预先定义字段的类型以及相关属性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
#索引中的那个咱们创建好了某个字段的映射后,就没法更改了