首页 > 编程知识 正文

elasticsearch教程java,elasticsearch组件

时间:2023-05-04 05:39:43 阅读:161560 作者:2821

写在前面

painless是比较新的脚本语言,毕竟没有1 1=2那么简单。 变得不明白是很正常的。 如果不明白的话请看第二遍第三遍至第n遍。 我相信我一定能理解。 书读一百遍,自有分晓

es5及更高版本推出了简单、安全、快速的painless脚本,以代替现有的脚本语言。 最近,您学习了painless,因为您需要过滤和查询逻辑复杂的数据,并升级现有的groovy脚本。 网上对这个脚本的说明非常少,官网上有英语版的说明,所以特别要分享学习结果。

painless安全高效,写法与java相似。 之所以安全,是因为painless提供了链接的所有类和方法的白名单(链接: painless支持的类)。 不能使用除这些方法以外的所有方法。 很容易使用,而不是像groovy那样提供浅沙箱。 (之所以高效,是因为painless是es团队自己开发的脚本,不支持重载方法,因此有保证其高效。 此外,由于不支持重载方法,因此一旦定义了def动态参数,就可以立即获得与该参数对应的静态类,而无需逐一检查所有的重载方法。 这是比groovy更有效率的地方。 另外,也不需要安装其他插件,可以立即写入,很简单。

以下是es painless脚本过滤器数据的示例和分析。

举一个例子

首先考虑一下剧本:

一个团队常常会选出最有潜力的选手,并简单地按照进球数排序。 但是,助攻和普通攻击也可以作为选拔指标。 最后的需求是进球数权重5,助攻权重3,普通攻击权重2的方式是选手的排名。 怎么排名呢? 只用dsl写很复杂。 可用脚本

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。