我们可以在 Elasticsearch 中四舍五入吗

Ash*_*mar 5 elasticsearch elasticsearch-plugin

我正在实施一个项目,在该项目中,结果将根据分数进行排序,并且在分数相同的情况下,结果集将根据日期字段进行排序。当分数相差 0.00001,即小数点的第 5 位或第 6 位时,就会出现问题。有什么方法可以将 Elasticsearch 中得出的分数四舍五入到小数点后第 4 位,以便二级排序可以对其进行处理。如果没有任何解决方法可以实现这一点。

谢谢阿希特

小智 4

这是一个使用脚本分数来四舍五入实际分数的可行解决方案

GET /post/_search
{
    "query": {
        "function_score": {
            "query": {
                "match": {"title": "example"}
            },
            "script_score" : {
                "script" : {
                  "source": "Math.round(_score)"
                }
            }
        }
    },
    "sort": [
        "_score",
        {"postdate": "desc"}
    ]
}
Run Code Online (Sandbox Code Playgroud)

在此搜索示例中,我们首先对四舍五入的 _score 进行排序,然后对 post.postdate 进行降序排序。