文档居于 ElasticSearch 5.4.3 版本 在kibana中操作
设置mapping有3种情况,1 创建index时同时设置type的mapping 2 追加字段的mapping到已经存在的type 3 新增新的type的mapping到已经存在的index下
情况1
PUT / my_index
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0,
"index": {
"analysis": {
"analyzer": {
"search_synonyms": {
"tokenizer": "ik_smart"
}
}
}
}
},
"mappings": {
"_default_": {
"_all": {
"enabled": true
}
},
"my_type_01": {
"properties": {
"bizdate": {
"type": "date",
"format": "yyyyMMdd",
"store": true
}
}
}
}
}
ps:若未在mapping中指定的字段将被默认为text类型
情况2:
PUT / my_index/ _mapping / my_type_01{
"properties": {
"bizdate2": {
"type": "date",
"format": "yyyyMMdd",
"store": true
}
}
}
ps:bizdate2 字段必须是不存在的,已经存在的字段是不允许修改mapping的
情况3:
PUT / my_index/ _mapping / my_type_02/ {
"properties": {
"bizdate": {
"type": "date",
"format": "yyyyMMdd",
"store": true
}
}
}
ps: 和第二种情况很相似,会先判断type是否存在,不存在时会新建type和mapping