elasticsearch批量更新文件的某個欄位
阿新 • • 發佈:2018-12-16
版本為ES 5.2
POST index/type/_update_by_query
{
"script": {
"lang": "painless",
"inline": "if (ctx._source.abc== null) {ctx._source.abc= 0}"
}
}
abc是某欄位;
當es中資料量非常巨大時,一次請求不能完全執行成功,會出現超時(預設1分鐘),此時採用帶有搜尋條件的批量操作,如下:
POST index/type/_update_by_query { "script": { "inline": "ctx._source.actionTime='20181008104853';ctx._source.createTime='20181008104853'" }, "query": { "range": { "productID": { "gte": 0, "lte": 10000 } } } }
或
POST index/type/_update_by_query
{
"script": {
"lang": "painless",
"inline": "if(ctx._source.test== null){ctx._source.test= 0} if(ctx._source.ab== null){ctx._source.ab= 1}"
}
}