面试题答案
一键面试结合排序与评分实现精准搜索结果
在ElasticSearch中,可以通过sort
参数指定排序规则,同时利用默认的相关性评分,来将排序与评分结合。
常见场景及查询语句
- 按日期排序并结合相关性评分:例如新闻搜索场景,希望最新的新闻排在前面,同时考虑相关性。
{
"query": {
"match": {
"content": "疫情防控"
}
},
"sort": [
{
"publish_date": {
"order": "desc"
}
}
]
}
这里content
是新闻内容字段,publish_date
是新闻发布日期字段。先按相关性匹配新闻,再按发布日期倒序排序。
- 按数字字段排序并结合相关性评分:比如商品搜索,希望价格低的商品排在前面,同时考虑商品与搜索词的相关性。
{
"query": {
"match": {
"product_name": "手机"
}
},
"sort": [
{
"price": {
"order": "asc"
}
}
]
}
其中product_name
是商品名称字段,price
是商品价格字段。先按相关性匹配商品,再按价格升序排序。