Elasticsearch 7.x版本是否支持将JavaScript作为脚本语言使用?
Elasticsearch JavaScript脚本支持情况说明
明确结论
Elasticsearch 目前已经完全移除了官方层面对JavaScript作为脚本语言的支持,没有任何官方维护的适配高版本的JavaScript脚本实现。
版本更迭历史
- 2.0及更早版本:原生内置基于Rhino引擎的JavaScript脚本支持,可直接在查询、更新等场景调用JS脚本
- 2.x版本周期内:官方将JS脚本支持拆分为独立插件
elasticsearch-lang-javascript,同时明确标记该插件为弃用状态,停止后续功能迭代 - 5.0及之后所有正式版本:该插件不再适配新版本,官方彻底下线所有JavaScript脚本相关的支持能力,仅保留自研的Painless作为官方主推的内置脚本语言
关于官方文档找不到相关说明的原因
当前最新版本文档仅覆盖目前处于维护周期内的版本功能,已经被彻底淘汰超过大版本周期的历史功能不会再在最新文档中保留相关条目,你可以在2.x、5.x的旧版官方发行说明中查询到对应的弃用、移除公告。
替代方案建议
如果有脚本使用需求,强烈建议使用官方原生的Painless脚本:其语法风格和JavaScript、Java高度接近,学习成本极低,同时享受官方的性能优化、安全沙箱防护和长期维护支持,是生产环境的唯一推荐脚本方案。
市面上存在少量第三方开源的JS脚本适配插件,均非官方维护,存在兼容性差、无安全补丁、性能落后等问题,不建议在生产环境使用。
内容的提问来源于stack exchange,提问作者orszaczky
相关产品推荐
相关产品推荐

