elasticsearch - 我们可以四舍五入 Elasticsearch 中的分数吗

标签 elasticsearch elasticsearch-plugin

我正在实现一个项目,其中结果将根据分数进行排序,如果分数相同,结果集将根据日期字段进行排序。 当分数相差 .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/

相关文章:

elasticsearch - Elasticsearch 嵌套查询是否可以只返回嵌套字段的匹配嵌套文档?

elasticsearch - 为什么rsyslog无法使用通过TCP转发到某个端口的json模板解析传入的syslog(例如10514)?

elasticsearch - 如何在Elasticsearch中删除嵌套字段

elasticsearch - 如何在 ElasticSearch 中使用另一个查询来过滤查询

elasticsearch - 查找所有 Elasticsearch 文档,其字段为数组

elasticsearch - Couchbase文档映射到Elasticsearch

python-3.x - python3 UnicodeEncodeError : 'charmap' codec can't encode characters in position 95-98: character maps to <undefined>

elasticsearch - 带有大型char_filter列表创建的自定义分析器,用于elasticsearch

elasticsearch - 带有Ingest插件的ElasticSearch Bulk

amazon-web-services - 无法将S3存储库注册到AWS Elasticsearch