我正在实现一个项目,其中结果将根据分数进行排序,如果分数相同,结果集将根据日期字段进行排序。 当分数相差 .00001,即小数点后第 5 位或第 6 位时,就会出现问题。有没有什么方法可以将 Elasticsearch 中得出的分数四舍五入到小数点后第四位,以便二次排序可以对其进行处理。 如果没有任何解决方法可以实现这一点。
谢谢 阿希特
最佳答案
这是一个使用 script score 的有效解决方案对实际分数进行四舍五入
GET /post/_search
{
"query": {
"function_score": {
"query": {
"match": {"title": "example"}
},
"script_score" : {
"script" : {
"source": "Math.round(_score)"
}
}
}
},
"sort": [
"_score",
{"postdate": "desc"}
]
}
在这个搜索示例中,我们首先对四舍五入的 _score 进行排序,然后对 post.postdate 进行降序排序。
关于elasticsearch - 我们可以四舍五入 Elasticsearch 中的分数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43588482/