MST
星途 面试题库

面试题:ElasticSearch中如何结合排序与评分进行搜索

在ElasticSearch中,阐述如何将排序(如按日期、数字字段排序)与评分(基于相关性等因素)结合起来实现更精准的搜索结果。请举例说明常见场景及对应的查询语句。
45.1万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

结合排序与评分实现精准搜索结果

在ElasticSearch中,可以通过sort参数指定排序规则,同时利用默认的相关性评分,来将排序与评分结合。

常见场景及查询语句

  1. 按日期排序并结合相关性评分:例如新闻搜索场景,希望最新的新闻排在前面,同时考虑相关性。
{
    "query": {
        "match": {
            "content": "疫情防控"
        }
    },
    "sort": [
        {
            "publish_date": {
                "order": "desc"
            }
        }
    ]
}

这里content是新闻内容字段,publish_date是新闻发布日期字段。先按相关性匹配新闻,再按发布日期倒序排序。

  1. 按数字字段排序并结合相关性评分:比如商品搜索,希望价格低的商品排在前面,同时考虑商品与搜索词的相关性。
{
    "query": {
        "match": {
            "product_name": "手机"
        }
    },
    "sort": [
        {
            "price": {
                "order": "asc"
            }
        }
    ]
}

其中product_name是商品名称字段,price是商品价格字段。先按相关性匹配商品,再按价格升序排序。