用戶搜索之根據同城同行優先排序

在用戶查詢時,有時候有需要把“同城”,“同行”等相關度教高的用戶排在前面的需求。

而使用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的字段。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章