因爲業務的發展,因爲數據庫須要加字段,致使ES也應該新增字段來保持同步。所幸的是ES仍是支持能夠加字段,同時ES-5.0以後支持了一個叫作Painless的腳本語言。數據庫
Painless是使用白名單來限制函數和字段的訪問的。由於只針對Es來作優化,因此安全性很好,同時十分輕量級,執行速度很快。他支持JAVA靜態類型和lambda表達。總而言之,Painless就是專門爲了Elasticsearch定製的!安全
既然如此,話很少說,直接操做一波,直接API訪問less
POST http://ip:9200/index/type/_update_by_query { "script": { "lang": "painless", "inline": "if (ctx._source.test_no == null) {ctx._source.test_no= ctx._source.orderNo}" } }
上面的例子就是新加一個test_no字段,同時將orderNo的值初始化賦值。函數
其實Painless還有不少東西能夠學習,畢竟他是專門爲es定製的腳本語言。後續找時間繼續研究下咱們比較經常使用的功能,而後記錄下來!學習
未完,待續。。。優化