这里是发送给一个闲置测试用户帐户的另一个示例:
- 最后上线时间 2024-09-12
- 摘要频率:每日
- “在摘要邮件中包含新用户的内容”:已勾选
- 没有相关标签被静音
热门话题:
“人工智能——越大越好?” – 重复 3 次。该话题有 3 个标签,0 条回复,0 个点赞。
“社会工程学挑战” – 重复 2 次。该话题有 2 个标签,1 条回复,0 个点赞。
为您推荐:
“新标签请求” – 未重复。该话题有 0 个标签,0 条回复,0 个点赞。
这里是发送给一个闲置测试用户帐户的另一个示例:
“人工智能——越大越好?” – 重复 3 次。该话题有 3 个标签,0 条回复,0 个点赞。
“社会工程学挑战” – 重复 2 次。该话题有 2 个标签,1 条回复,0 个点赞。
“新标签请求” – 未重复。该话题有 0 个标签,0 条回复,0 个点赞。
在最新的摘要中,我的一则帐户收到的摘要中,没有重复的主题,但下面的评论(“热门帖子”)却有重复。有五个栏位,其中两个是重复的(三个独特帖子),都来自同一个主题。
编辑:我正在查看发送给不同测试/管理员帐户的一些历史摘要:
@j127,了解您摘要主题有多少标签会很有趣。在我最近的样本中,重复与主题上的标签数量相对应。这可能只是巧合——也可能不是。
我已经在我的本地 Discourse 站点上重现了该问题,方法是在 digest suppress tags 站点设置中添加一个标签,然后创建一个带有多个标签的主题。
以下代码是导致该问题的原因:discourse/app/models/topic.rb at main · discourse/discourse · GitHub
if SiteSetting.digest_suppress_tags.present?
tag_ids = Tag.where_name(SiteSetting.digest_suppress_tags.split("|")).pluck(:id)
if tag_ids.present?
topics =
topics.joins("LEFT JOIN topic_tags tg ON topics.id = tg.topic_id").where(
"tg.tag_id NOT IN (?) OR tg.tag_id IS NULL",
tag_ids,
)
end
end
编辑:我认为这里不需要 LEFT JOIN。连接的 topic_tags 表中的列似乎在方法后面没有被使用。修复可能很简单:
if SiteSetting.digest_suppress_tags.present?
tag_ids = Tag.where_name(SiteSetting.digest_suppress_tags.split("|")).pluck(:id)
if tag_ids.present?
topics =
topics.where.not(id: TopicTag.where(tag_id: tag_ids).select(:topic_id))
end
end
我将把它留给 Discourse 团队来确定最佳方法。for_digest 方法运行了很多次,需要高效。
是的,所有重复的帖子都有两个标签。
@simon – 非常感谢您对此进行调查!
我确信这需要筛选大量信息。我期待 Discourse 团队回来并根据您的分析采取行动。
确认一下,删除我在 digest suppress tags 中的标签已将摘要恢复正常。(我暂时依赖 digest suppress categories。)
@simon 说得对
那确实是那个 bug
好消息!![]()
我不太清楚合并的提交何时可以在 beta 测试频道中获得。如果我使用的是 3.4.0.beta3-dev (53f9c81790) 并且它没有请求 GUI 更新,命令行更新会获取此更改吗?
即使不提示,您仍然可以拉取 UI,它会拉取新的提交。但执行 CLI 重建也可以拉取它们。
此主题已在 3 天后自动关闭。不允许回复。