also24
2021-05-03 23:37:13 +08:00
(以下内容,均不考虑 R2 节点)
现在的排序策略看起来是个比较复杂的逻辑,估测是维护了一个排序字段。
每当有新帖发出,此字段设置为当前时间戳。
例如:1620055744
如果发帖人被降权,则此字段会做相应调整(似乎有不同的幅度)。
例如:1620055744-86400 = 1619969344
如果帖子被人回复,则此字段会加上若干时间(估测在 10~60 分钟左右),可能会超过当前时间戳。
例如:1619969344 + 3600 = 1619972944
如果帖子被置顶,则此字段会无效,或直接设置为置顶结束时间。
例如:直接设置为 1620057540
当帖子置顶结束,此字段会被设置为当前时间(即置顶结束时间)。
例如:直接设置为 1620057540
以上逻辑,基于日常观察而来:
1 、新发的帖子未必排在最前面,热门帖可能由于回复多,在更前面
2 、被降权的人,发帖会直接拍在几天前的帖子附近
3 、帖子被回复后排位会上升,但坟贴很难因为被回复而出现在首页
4 、帖子置顶结束后,从首位开始向下掉位置