我试图按double字段(称为ranking)进行排序,但该字段没有完全填充。如果我试图按ranking字段进行排序,则没有ranking值的字段将被视为Infinity。我已经知道,在排序时可以将缺少的字段视为_first或_last。但是,在按字段排序时,有没有办法将缺少的字段值视为0呢?
double
ranking
Infinity
_first
_last
0
p8h8hvxi1#
如果我没理解错的话,在这种情况下你可以使用排序脚本。
POST idx_my/_bulk {"index":{}} {"name":"A", "ranking": 20.0 } {"index":{}} {"name":"B", "ranking": null } POST idx_my/_search { "query": { "match_all": {} }, "sort": { "_script": { "script": "if(doc['ranking'].size() == 0) { return 0.0; } else { return doc['ranking'].value; }", "type": "number", "order": "desc" } } }
1条答案
按热度按时间p8h8hvxi1#
如果我没理解错的话,在这种情况下你可以使用排序脚本。