elasticsearch嵌套groovy脚本,其中值不为';不存在
我正在尝试制作一个脚本,可以修改我的分数。所以我做了这个:elasticsearch嵌套groovy脚本,其中值不为';不存在,groovy,
elasticsearch,Groovy,
elasticsearch,我正在尝试制作一个脚本,可以修改我的分数。所以我做了这个: if (!(doc['score_mod'].empty)) { _score * doc['score_mod'].value } 但是现在我有一个名为web\u page的类型,它没有score\u mod值,它是通过以下方式生成的:。所以我不能在生成时手动地将值放入 有没有一种方法可以让我对web\u页面进行静态评分,或者让groovy脚本检查该值是否存在 对于网页结果,当前代码失败,但对于具有分数(mod值)的网页结果
if (!(doc['score_mod'].empty)) {
_score * doc['score_mod'].value
}
但是现在我有一个名为web\u page
的类型,它没有score\u mod
值,它是通过以下方式生成的:。所以我不能在生成时手动地将值放入
有没有一种方法可以让我对web\u页面
进行静态评分,或者让groovy脚本检查该值是否存在
对于
网页
结果,当前代码失败,但对于具有分数(mod
值)的网页结果,当前代码工作正常您应该能够使用elvis操作符和快捷操作符,如下所示:
_score * (doc['score_mod']?.value ?: 1)
因此,如果doc['score\u mod']
为null
,或value
为null(或零,或空),它将默认为1
(并将其乘以\u score
)您是否尝试过\u score*(doc['score\u mod']值?:1)
,因此如果score\u mod
缺失,它将默认为1(或被认为是false
)不,以前从未使用过groovy,但它似乎工作得很好,谢谢!酷!答案是:-)