准备做一个圈子功能,当获取圈子列表时,用户按照时间(0.2),距离(0.3),是否关注(0.5)进行权重计算后排序展示。如果单位都是统一的很好计算,问题是这三个不同内容如何弄在一起进行排序,求大牛解答
准备做一个圈子功能,当获取圈子列表时,用户按照时间(0.2),距离(0.3),是否关注(0.5)进行权重计算后排序展示。如果单位都是统一的很好计算,问题是这三个不同内容如何弄在一起进行排序,求大牛解答
泻药
查询数据的时候计算权重,然后排序
一条查询语句就搞定了
SELECT *,(time * 0.2 + area * 0.3 + follow * 0.5) AS weight FROM `xxx_table` ORDER BY weight DESC;
10 回答11.1k 阅读
15 回答8.4k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.2k 阅读
2 回答2.7k 阅读✓ 已解决
有公式的权重才是权重,没有公式的只能叫优先级。
比如有这样一个公式f(time) 0.2 + f(distance) 0.3 + f(isFollow) * 0.5 = score,得出分数再进行排序。
但是没有这样一个公式,权重就没有意义,只能说有一个优先级,根据优先级进行多重排序。