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

2022-10-12 10:54:25 +08:00
 xgdgsc

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

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

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

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

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

🐶
Helsing
2022-10-12 12:14:03 +08:00
分页问题,很难处理
Building
2022-10-12 12:17:56 +08:00
给你一堆精选评论,审核后通过,仅对方可见,黑白名单,三天可见……等等一堆规则,你也瞎
rgyyt
2022-10-12 12:20:18 +08:00
啊原来是普遍现象吗,我一直以为是我因为网卡
Jooooooooo
2022-10-12 12:55:59 +08:00
分页问题, 你要完美解决要花大量成本, 收益却没多少. 得不偿失.
abc8678
2022-10-12 14:39:24 +08:00
现在看手机没意思,全是看过的在反复推荐
yinhuochong6666
2022-10-12 14:40:51 +08:00
理论上可以把刷到过的条目缓存,刷新时去重;但是如上所述,没啥收益不如不做

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

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

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

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

© 2021 V2EX