MST
星途 面试题库

面试题:ElasticSearch 结果排序算法基础

在 ElasticSearch 中,简单描述常用的结果排序算法有哪些,并说明如何在查询语句中指定按照某字段进行升序或降序排序。
49.4万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

常用结果排序算法

  1. 按文档相关性得分排序:Elasticsearch 默认根据文档与查询条件的相关性进行排序,相关性得分越高,文档越靠前。相关性得分计算基于多种因素,如词频、逆文档频率等,使用 BM25 算法等进行计算。
  2. 按字段值排序:可以按照文档中某个字段的值进行排序,例如数字字段(如价格、年龄)、日期字段等。

在查询语句中指定按某字段升序或降序排序

使用 sort 子句来指定排序字段及排序顺序。

升序排序示例

{
    "query": {
        "match_all": {}
    },
    "sort": [
        {
            "price": {
                "order": "asc"
            }
        }
    ]
}

上述示例中,对 price 字段进行升序排序,asc 表示升序。

降序排序示例

{
    "query": {
        "match_all": {}
    },
    "sort": [
        {
            "price": {
                "order": "desc"
            }
        }
    ]
}

这里对 price 字段进行降序排序,desc 表示降序。