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


下一篇:如何使用脚本

相关文章
相关标签/搜索