Elasticsearch-Painless

  • 前言

因爲業務的發展,因爲數據庫須要加字段,致使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定製的腳本語言。後續找時間繼續研究下咱們比較經常使用的功能,而後記錄下來!學習

未完,待續。。。優化

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息