ElasticSearch实战(三十四)-Painless 脚本编程

Posted 张志翔ۤ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch实战(三十四)-Painless 脚本编程相关的知识,希望对你有一定的参考价值。

        我们之前看见了在Elasticsearch里的ingest node里,我们可以通过以下processor的处理帮我们处理我们的一些数据。它们的功能是非常具体而明确的。那么在Elasticsearch里,有没有一种更加灵活的方式可供我们来进行编程处理呢?如果有,它使用的语言是什么呢?

        在Elasticsearc中,它使用了一个叫做Painless的语言。它是专门为Elasticsearch而建立的。Painless是一种简单,安全的脚本语言,专为与Elasticsearch一起使用而设计。 它是Elasticsearch的默认脚本语言,可以安全地用于inline和stored脚本。它具有像Groovy那样的语法。自Elasticsearch 6.0以后的版本不再支持Groovy,javascript及Python语言。

一、脚本语法

        脚本的语法为:

"script": {
    "lang":   "...",  
    "source" | "id": "...", 
    "params": { ... } 
}
  • 这里lang默认的值为"painless"。在实际的使用中可以不设置,除非有第二种语言供使用
  • source可以为inline脚本,或者是一个id,那么这个id对应于一个stored脚本
  • 任何有名字的参数,可以被用于脚本的输入参数

二、简单使用例子

        我们准备了几个例子供大家实战操作:

        注:下面的示例中 "source&#

以上是关于ElasticSearch实战(三十四)-Painless 脚本编程的主要内容,如果未能解决你的问题,请参考以下文章

Android项目实战(三十四):蓝牙4.0 BLE 多设备连接

SQL开发实战技巧系列(三十四):数仓报表场景☞如何对数据分级并行转为列

ElasticSearch实战(十四)-关联关系类型数据字段

ElasticSearch实战(三十)-排序查询

ElasticSearch实战(三十)-排序查询

ElasticSearch实战(三十九)-聚合框架