腳本模塊使你能夠使用腳原本評估自定義表達式,例如,你能夠使用腳本將「腳本字段」做爲搜索請求的一部分返回,或者爲查詢評估自定義分數。html
默認腳本語言是Painless
,附加的lang
插件使你能夠運行用其餘語言編寫的腳本,在能夠使用腳本的任何地方,均可以包含一個lang
參數來指定腳本的語言。java
這些語言在腳本API中可用於任何用途,並提供最大的靈活性。express
語言 | 沙盒 | 必需的插件 |
---|---|---|
painless |
yes | 內建的 |
這些語言不太靈活,但一般對某些任務具備更高的性能。segmentfault
語言 | 沙盒 | 必需的插件 | 用途 |
---|---|---|---|
expression |
yes | 內建的 | 快速自定義排名和排序 |
mustache |
yes | 內建的 | 模板 |
java |
n/a | 你編寫它! | 專家API |
腳本和安全性
沙盒語言在設計時考慮了安全性,可是,非沙盒語言多是一個安全問題,請閱讀腳本和安全性以獲取更多詳細信息。api
painless
是一種簡單,安全的腳本語言,專爲與Elasticsearch一塊兒使用而設計,它是Elasticsearch的默認腳本語言,能夠安全地用於內聯和存儲腳本,有關painless
語法和語言功能的詳細說明,請參閱Painless語言規範。安全
你能夠在Elasticsearch中使用腳本的任何地方使用Painless腳本,Painless提供:less
def
類型。準備開始使用Painless編寫腳本了嗎?請參閱Painless腳本語言指南中的Painless入門。elasticsearch