Elasticsearch 參考指南(腳本)

腳本

腳本模塊使你能夠使用腳原本評估自定義表達式,例如,你能夠使用腳本將「腳本字段」做爲搜索請求的一部分返回,或者爲查詢評估自定義分數。html

默認腳本語言是Painless,附加的lang插件使你能夠運行用其餘語言編寫的腳本,在能夠使用腳本的任何地方,均可以包含一個lang參數來指定腳本的語言。java

通用語言:

這些語言在腳本API中可用於任何用途,並提供最大的靈活性。express

語言 沙盒 必需的插件
painless yes 內建的

專用語言:

這些語言不太靈活,但一般對某些任務具備更高的性能。segmentfault

語言 沙盒 必需的插件 用途
expression yes 內建的 快速自定義排名和排序
mustache yes 內建的 模板
java n/a 你編寫它! 專家API

腳本和安全性

沙盒語言在設計時考慮了安全性,可是,非沙盒語言多是一個安全問題,請閱讀腳本和安全性以獲取更多詳細信息。api

Painless腳本語言

painless是一種簡單,安全的腳本語言,專爲與Elasticsearch一塊兒使用而設計,它是Elasticsearch的默認腳本語言,能夠安全地用於內聯和存儲腳本,有關painless語法和語言功能的詳細說明,請參閱Painless語言規範安全

你能夠在Elasticsearch中使用腳本的任何地方使用Painless腳本,Painless提供:less

  • 性能快:Painless腳本運行速度比備選方案快幾倍。
  • 安全:具備方法調用/字段粒度的細粒度白名單,有關可用類和方法的完整列表,請參閱Painless API參考
  • 可選輸入:變量和參數能夠使用顯式類型或動態def類型。
  • 語法:擴展Java的語法,以提供Groovy樣式的腳本語言功能,使腳本更易於編寫。
  • 優化:專爲Elasticsearch腳本編寫而設計。

準備開始使用Painless編寫腳本了嗎?請參閱Painless腳本語言指南中的Painless入門elasticsearch


下一篇:如何使用腳本

相關文章
相關標籤/搜索