YEEHOLIC 2019-06-28
脚本模块使你可以使用脚本来评估自定义表达式,例如,你可以使用脚本将“脚本字段”作为搜索请求的一部分返回,或者为查询评估自定义分数。
默认脚本语言是Painless
,附加的lang
插件使你可以运行用其他语言编写的脚本,在可以使用脚本的任何地方,都可以包含一个lang
参数来指定脚本的语言。
这些语言在脚本API中可用于任何用途,并提供最大的灵活性。
语言 | 沙盒 | 必需的插件 |
---|---|---|
Painless | yes | 内建的 |
这些语言不太灵活,但通常对某些任务具有更高的性能。
语言 | 沙盒 | 必需的插件 | 用途 |
---|---|---|---|
expression | yes | 内建的 | 快速自定义排名和排序 |
mustache | yes | 内建的 | 模板 |
java | n/a | 你编写它! | 专家API |
沙盒语言在设计时考虑了安全性,但是,非沙盒语言可能是一个安全问题,请阅读脚本和安全性以获取更多详细信息。
Painless
是一种简单,安全的脚本语言,专为与Elasticsearch一起使用而设计,它是Elasticsearch的默认脚本语言,可以安全地用于内联和存储脚本,有关Painless
语法和语言功能的详细说明,请参阅Painless语言规范。
你可以在Elasticsearch中使用脚本的任何地方使用Painless脚本,Painless提供:
def
类型。准备开始使用Painless编写脚本了吗?请参阅Painless脚本语言指南中的Painless入门。
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。