用户搜索之根据同城同行优先排序

本文介绍了一种使用SQL进行个性化排序的方法,通过计算用户与查询目标之间的行业ID、城市ID等特征的差值绝对值,实现了将相关度较高的同城、同行用户优先展示的需求。这种方法适用于需要按相关性排序的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在用户查询时,有时候有需要把“同城”,“同行”等相关度教高的用户排在前面的需求。

而使用sql的排序可以简单的实现这个需求,但也有不全面的地方。


//根据同乡同行排序
$data = $userModel->with(['hometown','trade','city'])->orderByRaw("ABS({$self->trade_id}
- trade_id) + ABS({$self->hometown_id} - hometown_id) + ABS({$self->city_id} - city_id)")
->orderBy('info_rate','DESC')->paginate($limit,$this->field);

思路如上所示(代码是laravel的orm语法):

以用户与被查询用户的行业id , 城市id等之间id的差的绝对值作为 orderBy的字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值