面试题答案
一键面试常用结果排序算法
- 按文档相关性得分排序:Elasticsearch 默认根据文档与查询条件的相关性进行排序,相关性得分越高,文档越靠前。相关性得分计算基于多种因素,如词频、逆文档频率等,使用 BM25 算法等进行计算。
- 按字段值排序:可以按照文档中某个字段的值进行排序,例如数字字段(如价格、年龄)、日期字段等。
在查询语句中指定按某字段升序或降序排序
使用 sort
子句来指定排序字段及排序顺序。
升序排序示例:
{
"query": {
"match_all": {}
},
"sort": [
{
"price": {
"order": "asc"
}
}
]
}
上述示例中,对 price
字段进行升序排序,asc
表示升序。
降序排序示例:
{
"query": {
"match_all": {}
},
"sort": [
{
"price": {
"order": "desc"
}
}
]
}
这里对 price
字段进行降序排序,desc
表示降序。