我在试着做一个能修改我分数的剧本。所以我做了这个:
if (!(doc['score_mod'].empty)) {
_score * doc['score_mod'].value
}但是现在我有一个名为web_page的类型,它没有score_mod值,它是通过:https://github.com/codelibs/elasticsearch-river-web生成的。所以,当它被生成的时候,我不能人工地把它的值放在里面。
是否有一种方法可以为web_page获得静态分数,或者让groovy脚本检查该值是否存在?
对于web_pages结果,当前代码失败,但是对于具有score_mod值的结果,它运行得很好。
发布于 2015-08-07 11:27:37
您应该能够使用elvis操作符和?.快捷运算符,如下所示:
_score * (doc['score_mod']?.value ?: 1)因此,如果doc['score_mod']为null,或者value为null (或零或空),则默认为1 (并乘以_score)。
https://stackoverflow.com/questions/31874820
复制相似问题