脚本模块能够帮你通过脚本来自定义表达式求值。例如,你可以使用脚本作为搜索请求的一部分返回“脚本字段”或自定义一个评分查询。
默认脚本语言为Painless。您能够通过添加lang
插件来启用其他语言编写的脚本。任何使用脚本的地方,您都可以通过设置lang
参数来指定脚本的语言。
这些语言可以用于任何的脚本API,并给予了最大的灵活性。
语言 | 沙盒 | 所需插件 |
---|---|---|
painless | yes | 内置 |
groovy | no | 内置 |
javascript | no | lang-javascript |
python | no | lang-javascript |
这些语言不太灵活,但对于某些任务通常有更高的性能。
语言 | 沙盒 | 所需插件 | 用途 |
---|---|---|---|
expression | yes | 内置 | 快速自定义评分与排序 |
mustache | yes | 内置 | 模板 |
java | n/a | 自己写 | 专业API |
脚本与安全(警告)
语言在设计时是考虑到安全沙盒的。然而,非沙盒语言可能是一个安全问题,请阅读脚本与安全来获取详细信息。