我正在使用ElasticSearch,并且正在运行NullPointerExceptions,因为基于得分的字段对于多个文档来说是NULL。
如何让ElasticSearch将这些空字段视为0?
FWIW,我正在使用Tire gem,这是我的Ruby代码:
s = Tire.search "articles" do
query do
custom_score :script => "_score < 2 ? 0 : doc['num_likes'].value" do
match fields, keyword
end
end
end
答案 0 :(得分:2)
我发现我需要做这样的事情:
_score < 2 ? 0 : (doc['num_likes'].empty ? 0 : doc['num_likes'].value)
答案 1 :(得分:1)
如下脚本:
"_score < 2 ? 0 : (doc['num_likes'] == null ? 0 : doc['num_likes'].value)"
有效吗?