elasticsearch,Groovy,elasticsearch" /> elasticsearch,Groovy,elasticsearch" />

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,但它似乎工作得很好,谢谢!酷!答案是:-)