Elasticsearch 参考指南(脚本)
脚本
脚本模块使你可以使用脚本来评估自定义表达式,例如,你可以使用脚本将“脚本字段”作为搜索请求的一部分返回,或者为查询评估自定义分数。
默认脚本语言是Painless
,附加的lang
插件使你可以运行用其他语言编写的脚本,在可以使用脚本的任何地方,都可以包含一个lang
参数来指定脚本的语言。
通用语言:
这些语言在脚本API中可用于任何用途,并提供最大的灵活性。
语言 | 沙盒 | 必需的插件 |
---|---|---|
Painless | yes | 内建的 |
专用语言:
这些语言不太灵活,但通常对某些任务具有更高的性能。
语言 | 沙盒 | 必需的插件 | 用途 |
---|---|---|---|
expression | yes | 内建的 | 快速自定义排名和排序 |
mustache | yes | 内建的 | 模板 |
java | n/a | 你编写它! | 专家API |
脚本和安全性
沙盒语言在设计时考虑了安全性,但是,非沙盒语言可能是一个安全问题,请阅读脚本和安全性以获取更多详细信息。
Painless脚本语言
Painless
是一种简单,安全的脚本语言,专为与Elasticsearch一起使用而设计,它是Elasticsearch的默认脚本语言,可以安全地用于内联和存储脚本,有关Painless
语法和语言功能的详细说明,请参阅Painless语言规范。
你可以在Elasticsearch中使用脚本的任何地方使用Painless脚本,Painless提供:
- 性能快:Painless脚本运行速度比备选方案快几倍。
- 安全:具有方法调用/字段粒度的细粒度白名单,有关可用类和方法的完整列表,请参阅Painless API参考。
- 可选输入:变量和参数可以使用显式类型或动态
def
类型。 - 语法:扩展Java的语法,以提供Groovy样式的脚本语言功能,使脚本更易于编写。
- 优化:专为Elasticsearch脚本编写而设计。
准备开始使用Painless编写脚本了吗?请参阅Painless脚本语言指南中的Painless入门。
下一篇:如何使用脚本
相关推荐
newbornzhao 2020-09-14
做对一件事很重要 2020-09-07
renjinlong 2020-09-03
明瞳 2020-08-19
李玉志 2020-08-19
mengyue 2020-08-07
molong0 2020-08-06
AFei00 2020-08-03
molong0 2020-08-03
wenwentana 2020-08-03
YYDU 2020-08-03
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。
sifeimeng 2020-08-03
心丨悦 2020-08-03
liangwenrong 2020-07-31
sifeimeng 2020-08-01
mengyue 2020-07-30
tigercn 2020-07-29
IceStreamLab 2020-07-29