ElasticSearch 设置mapping

文档居于 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

猜你喜欢

转载自blog.csdn.net/tangpengh/article/details/83578882