V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
xgdgsc
V2EX  ›  全球工单系统

列表展示去重是什么世界级难题吗

  •  
  •   xgdgsc · 2022-10-12 10:54:25 +08:00 via Android · 4039 次点击
    这是一个创建于 774 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么我在 b 站,贴吧,微博,知乎等等的评论区,都有看到过把几个评论显示一次,然后紧接着又显示一次的现象?从 10 年前到现在一直有?

    23 条回复    2022-10-12 18:09:36 +08:00
    HeyWeGo
        1
    HeyWeGo  
       2022-10-12 10:57:10 +08:00
    用手机刷 B 站 APP 也是这种感觉。
    第一次不知道,一直往下滑,好奇怎么滑不完?后来仔细看才发现,评论会循环出现!
    kop1989smurf
        2
    kop1989smurf  
       2022-10-12 11:04:42 +08:00
    应该是默认会有几个作为官方定调,或者系统自动判定的“热评”置顶导致的。
    HariopaNic
        3
    HariopaNic  
       2022-10-12 11:08:21 +08:00
    这属于前端问题还是后端问题
    BugCry
        4
    BugCry  
       2022-10-12 11:08:40 +08:00 via Android
    分页问题吧,假设原本的评论序号是 10 ,在你浏览第一页的过程中,突然别的评论被顶上去了,刚刚的评论序号就成了 11 。接着加载第二页,从序号为 11 的评论开始,所以就出现了重复显示的现象
    icyalala
        5
    icyalala  
       2022-10-12 11:10:05 +08:00
    我猜大概是这样:现在的评论既不是按时间也不是按 id 排序的,都是按一堆规则排的,所以每隔一段时间再去取排序是会变的,所以去重只能在前端做。

    前端翻页的时候如果去重的话,可能会出现新的一页评论只有很少几条,或者翻页但是没有任何新评论出现的情况。
    zhang77555
        6
    zhang77555  
       2022-10-12 11:12:07 +08:00
    应该是分页和缓存的问题, 估计由于不会造成什么问题, 所以也懒得去解决?
    edward1987
        7
    edward1987  
       2022-10-12 11:16:48 +08:00
    有一种原因是 排序没有按时间正序,然后分页拉取的时候就出了问题
    比如评论 A 本来在第一页,等你要拉第二页的时候它又被挤到了第二页.
    Leonard
        8
    Leonard  
       2022-10-12 11:19:00 +08:00
    有的是因为就是有两条相同的评论😂知乎有时候评论的时候提示错误,然后又点了一次发送,就发送了两次
    nothingistrue
        9
    nothingistrue  
       2022-10-12 11:22:50 +08:00   ❤️ 3
    多变内容在分页显示时,不管是分页还是自动往下扩展,都会因为后台顺序变动导致重复或丢失信息,这确实是世纪难题。

    对于评论,还是可以解决的,额外增加一个筛选条件“ time < 首次进入页面或者首次查询的时间” ,同时另起区域单独显示 “time > 上述时间”的新评论,就行了。这有两个前提,一,列表严格按照时间排序,二,列表的元素一旦添加就不可更改,即列表只会追加元素,不会移动元素。所以这只适合按照时间排序的评论,对于主题列表,或者不按照时间排序的评论列表,就无效了。
    otakustay
        10
    otakustay  
       2022-10-12 11:42:02 +08:00
    大并发、高热点下列表去重就是世界级难题,包括关系型数据范式、事务原子性等也会在大并发下变成世界难题
    otakustay
        11
    otakustay  
       2022-10-12 11:42:33 +08:00
    热点数据的分页根本不是正常的实时筛选这种逻辑,全是靠缓存的,自然不同的缓存之间有数据重复很正常
    HugoChao
        12
    HugoChao  
       2022-10-12 11:50:47 +08:00
    我猜是后端根据热度来排序的算法问题
    pkoukk
        13
    pkoukk  
       2022-10-12 11:56:03 +08:00
    现在的评论排序算法综合了 点赞 评论 UP 主回复 UP 主点赞 UP 主置顶 时间 等等一系列规则,已经没办法做到稳定的后端分页了,只能让前端去去重。
    前端去重偶尔出点问题很正常
    lookStupiToForce
        14
    lookStupiToForce  
       2022-10-12 12:00:08 +08:00   ❤️ 7
    本贴非常好地展示了外行人眼里天经地义般简单的一个事情在内行人眼中的真实难度

    #用户
    #开发团队
    #产品经理
    #程序员
    #甲方
    #乙方

    🐶
    Helsing
        15
    Helsing  
       2022-10-12 12:14:03 +08:00 via iPhone
    分页问题,很难处理
    Building
        16
    Building  
       2022-10-12 12:17:56 +08:00 via iPhone
    给你一堆精选评论,审核后通过,仅对方可见,黑白名单,三天可见……等等一堆规则,你也瞎
    rgyyt
        17
    rgyyt  
       2022-10-12 12:20:18 +08:00
    啊原来是普遍现象吗,我一直以为是我因为网卡
    Jooooooooo
        18
    Jooooooooo  
       2022-10-12 12:55:59 +08:00
    分页问题, 你要完美解决要花大量成本, 收益却没多少. 得不偿失.
    abc8678
        19
    abc8678  
       2022-10-12 14:39:24 +08:00 via Android
    现在看手机没意思,全是看过的在反复推荐
    yinhuochong6666
        20
    yinhuochong6666  
       2022-10-12 14:40:51 +08:00
    理论上可以把刷到过的条目缓存,刷新时去重;但是如上所述,没啥收益不如不做
    duanxianze
        21
    duanxianze  
       2022-10-12 16:59:56 +08:00
    确实是个很难的问题,主要是要解决的话需要花费很大的精力,但提升却很小,得不偿失
    callmesmc
        22
    callmesmc  
       2022-10-12 17:01:03 +08:00 via iPhone
    reddit 也是...
    dtdths1
        23
    dtdths1  
       2022-10-12 18:09:36 +08:00
    很难,因为评论是不断变化的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   902 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:03 · PVG 06:03 · LAX 14:03 · JFK 17:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.