sym134
V2EX  ›  PHP

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

  •  
  •   sym134 · Oct 20, 2020 · 4305 views
    This topic created in 2058 days ago, the information mentioned may be changed or developed.

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

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

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

    干脆像 2 楼说的,一次查完,随机输出。如果查询比较耗时,就二次查询的时候加上前面出现过的 ID 作排除查询,一百几十个 ID 也不会让 SQL 变多长。
    freeeyu
        7
    freeeyu  
       Oct 20, 2020
    简单的做法,随机取页数展示,翻页按顺序翻,到最后一页之后从第一页开始取,取到你随机的那一页就到底了..
    chogath
        8
    chogath  
       Oct 20, 2020
    漏斗
    ladotech
        9
    ladotech  
       Oct 20, 2020
    想象一下一副洗好的扑克牌,切一下,然后从最上面一张开始依次展示出来。服务器定时做洗牌,用户浏览时做切牌。
    sym134
        10
    sym134  
    OP
       Oct 21, 2020
    @chogath 一脸懵逼,求大师指点
    sym134
        11
    sym134  
    OP
       Oct 21, 2020
    @freeeyu 这个的确比较简单😄6666
    sym134
        12
    sym134  
    OP
       Oct 21, 2020
    @ox180 google 了一下,一脸懵逼,我这肉鸡应该吃不消,如有方便的工具方法可以推荐一下 😄
    sym134
        13
    sym134  
    OP
       Oct 21, 2020
    @ben1024 不错不错,我感觉可以专门缓存一个公共的总页数,然后用户随机提取页数,同时求差集
    sym134
        14
    sym134  
    OP
       Oct 21, 2020
    @xunbug 研究过,但 php 恐怕吃不消,其他语言没学过,压力山大😓
    sym134
        15
    sym134  
    OP
       Oct 21, 2020
    @wangritian 弄个这么个,但缓存的量感觉太多了😓
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3753 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 04:38 · PVG 12:38 · LAX 21:38 · JFK 00:38
    ♥ Do have faith in what you're doing.