Elasticsearch提供的增删改查相关API虽然能解决大部分业务场景的问题,但是在一些相对复杂的业务场景,使用增删改查不太好实现的时候,此时就需要借助Elasticsearch脚本进行实现,Elasticsearch脚本可以使用编程语言的方式,帮助我们解决复杂业务问题
Scripting 使用语法:
"script": {
"lang": "...", // 指定编写脚本的语言,默认为painless。
"source" | "id": "...", // 指定脚本的来源,inline脚本是指定source,存储的脚本是指定的id,并从集群状态中检索
"params": { ... } // 传递给脚本使用的变量参数。使用参数而不是硬编码值来减少编译时间。
}

Upsert:
使用Elasticsearch脚本有两点需要注意的:
官方文档性能优化中明确指出使用脚本会导致性能低;
非复杂业务场景下,基础的增、删、改、查基本上就能搞定。
批量更新数据: