脚本模块使你能够使用脚原本评估自定义表达式,例如,你能够使用脚本将“脚本字段”做为搜索请求的一部分返回,或者为查询评估自定义分数。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