背景
有時候業(yè)務(wù)需要,希望上線一個新字段,希望 elasticsearch 能夠像 mysql 關(guān)系型數(shù)據(jù)庫一樣,添加字段并且能夠賦予初始默認(rèn)值,默認(rèn)貌似是不支持的.
解決方法
變通使用script方式來實現(xiàn),如下例子
curl -XPOST http://127.0.0.1:9200/instance/type/_update_by_query -d '
{
"script":{
"lang":"painless",
"inline":"if (ctx._source.agent_version == null) {ctx._source.agent_version= \"0.0.1\"}"
}
} '
index名稱為 instance,type 名稱為 type, 給里面的每條老數(shù)據(jù)增加一個字段
agent_version 并賦予初始默認(rèn)值 0.0.1.