一 、用途
我们一般在添加一个需要计算后的字段或者通过某种规则计算后的值来排序是会使用到elasticsearch的脚本功能,es在5.x版本以后默认使用的就是painless无痛脚本
script_fields用法:
sort用法:
二、painless语法
1、常用数据类型: int、double、String、List、Map、bool (和java一致)
2、变量定义:
定义变量有两种方式,动态类型和静态类型,建议用静态类型,静态类型的计算速度是动态类型的10倍
动态类型定义方式: def a = “abc”
静态类型定义方式: int a = 1; Sting b = “asdsd”
3、获取文档中某个字段的值的用法:
获取doc下字段: doc[‘name’].value
nested字段取出来后就是数组,可用下标获取, 后面不用加value: doc[‘expect_jobs’][1]
doc以外的字段可直接使用,如下:
4、提取参数的用法
在script下面添加params字段,params中就是我们提取的参数,用params.age的方式在脚本中使用,如下:
5、if else用法,与条件使用&& , 或的条件使用|| ,在使用painless脚本时,每一行结束需要加分号, 大括号后不能加分号;
6、for循环的用法:
7、script中必须有return, return是返回给es计算后的值, 没有return会报错:
特别注意: painless在 有int和double字段混合计算时,会对double值自动取整, 导致计算值有偏差,所以建议数值计算都使用double类型
今天的文章elasticsearch作用_useless用法[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/69321.html