1. 程式人生 > >ElasticSearch 設定mapping

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