需要做个首页用户推荐,不知道有老司机可以分享一下经验吗?

2020-10-20 09:19:43 +08:00
 sym134

需求是首页有个用户推荐板块,可以一直分页加载,直到数据全部加载完

这个推荐没有什么特定的匹配或是人为指定,只是想每次打开都不一样,或是随机去展示,但用随机分页又会有重复的数据出现,不知道过往老司机有何办法或是更好的推荐方式

3201 次点击
所在节点    PHP
15 条回复
wangritian
2020-10-20 09:34:55 +08:00
先定一个推荐用户数量限制 N,因为不太可能有人耐心的刷完这么多推荐用户,每 M 分钟从 mysql 随机提取 N 个到 redis,在 php 代码中做分页
ben1024
2020-10-20 09:42:37 +08:00
数据整片输出,随机返回页数,加个用户计数器记录请求输出页数(用户登出清空计数)
返回时两页数求差集,重排输出随机页数
huayumo
2020-10-20 13:28:30 +08:00
可以根据发帖量来排序,并分页就完了,感觉没必要搞那么复杂
hahaba
2020-10-20 13:30:52 +08:00
基于用户或者物品的协同过滤
ox180
2020-10-20 13:43:56 +08:00
既然如此,可以上个 word2vec 做内容推荐哇
eason1874
2020-10-20 13:53:28 +08:00
再推荐也不可能推荐上千个吧?一般最多就一百多几十个,一两百多个。

干脆像 2 楼说的,一次查完,随机输出。如果查询比较耗时,就二次查询的时候加上前面出现过的 ID 作排除查询,一百几十个 ID 也不会让 SQL 变多长。
freeeyu
2020-10-20 14:07:42 +08:00
简单的做法,随机取页数展示,翻页按顺序翻,到最后一页之后从第一页开始取,取到你随机的那一页就到底了..
chogath
2020-10-20 15:07:01 +08:00
漏斗
ladotech
2020-10-20 15:46:50 +08:00
想象一下一副洗好的扑克牌,切一下,然后从最上面一张开始依次展示出来。服务器定时做洗牌,用户浏览时做切牌。
sym134
2020-10-21 15:41:48 +08:00
@chogath 一脸懵逼,求大师指点
sym134
2020-10-21 15:46:16 +08:00
@freeeyu 这个的确比较简单😄6666
sym134
2020-10-21 15:47:52 +08:00
@ox180 google 了一下,一脸懵逼,我这肉鸡应该吃不消,如有方便的工具方法可以推荐一下 😄
sym134
2020-10-21 15:49:01 +08:00
@ben1024 不错不错,我感觉可以专门缓存一个公共的总页数,然后用户随机提取页数,同时求差集
sym134
2020-10-21 15:49:39 +08:00
@xunbug 研究过,但 php 恐怕吃不消,其他语言没学过,压力山大😓
sym134
2020-10-21 15:50:56 +08:00
@wangritian 弄个这么个,但缓存的量感觉太多了😓

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/716572

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX