V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xush
V2EX  ›  PHP

能不能给个思路 大伙

  •  
  •   xush · 2016-02-04 17:10:29 +08:00 · 2602 次点击
    这是一个创建于 3010 天前的主题,其中的信息可能已经有所发展或是发生改变。
    该怎么设置权重...
    用户发文章,防止用户发文章刷屏,控制在展示页面上每页最多只会出现该用户发的两篇文章...
    不限制用户发文章数目..
    6 条回复    2016-02-25 17:21:35 +08:00
    sin30
        1
    sin30  
       2016-02-04 18:33:20 +08:00
    什么需求!!!不好好做垃圾内容过滤,弄个这需求!!
    直接给文章加审核状态,默认发布未审核,通过自动或者人工过滤之后再展示不行吗?

    要是沿着你的思路走,之后分页怎么办?
    lecher
        2
    lecher  
       2016-02-04 21:50:41 +08:00
    这个需求确实奇怪,比如用户刷了两天,那么第一页用户 A 只显示两篇,第二页呢?还显示用户 A 发布的文章吗。
    如果每一页同一个用户的文章都最多显示两条,那么文章列表的时间序就是乱的,可能用户连发十篇,第五页才能把用户 A 最早发布的显示出来?

    先把需求理清楚吧。
    如果非要做这个需求,只是单纯的限制显示频率,不能考虑在一条 SQL 语句里面取出来,考虑一下按用户分别取。很多社区按 tag 抽取文章的模型都可以加这样的限制。
    或者做其它 spam 策略,比如设置一个发布时间 spam 参数,发布时间扣去这个 spam 参数,比如连发 10 条,从第三条开始,十分钟内每发一条就触发 spam ,每次累加时间参数 60 分钟,之后在写入文章表的时候,发布时间减去这个 spam 时间,当他连续发布十条之后,第十篇文章的发布时间就是七小时之前。

    个人觉得做好这种内容审查策略,在文章发布的时候就确定排序比较好,否则在读取列表的时候做排序计算会浪费比较多的时间,毕竟大部分文章类型的产品业务,读取的频率还是大于写入频率很多的。
    czk1997
        3
    czk1997  
       2016-02-05 02:19:54 +08:00
    一般正常的用户不会发那么多刷屏吧……
    最简单方法让用户(或者审核)输入个数字,数字最大的两个的列出来就可以……基本上由用户决定出现那两篇……
    newkedison
        4
    newkedison  
       2016-02-05 09:11:22 +08:00
    分两种情况, 一种是优秀文章的展示, 这个需要人工审核, 不存在被刷屏的可能, 一种是随机展示, 这种情况每个用户一两篇足够了, 再加上顶, 踩, 举报三个功能, 让读者来帮助过滤垃圾信息
    movtoy
        5
    movtoy  
       2016-02-06 09:46:58 +08:00
    人工惩罚
    ershisi
        6
    ershisi  
       2016-02-25 17:21:35 +08:00
    根据用户发帖的访问量 回帖量 和发帖数进行计算。然后给每一个帖子加权重字段可行吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1871 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:12 · PVG 00:12 · LAX 09:12 · JFK 12:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.