Discourse 可以有多少个最大组?

我希望在我的 Discourse 实例中拥有大约 20000 个群组,这是否可行,是否会对网站性能产生任何影响?

2 个赞

您将有多少用户?
20,000 个群组在解决什么问题?

2 个赞

这是场景。我正在使用 Discourse 来实现一个研究论文讨论平台。每篇论文都用一篇带有论文 ID 的标签来表示。在该论文标签下创建的所有主题都会显示在该论文的标签页面上。

问题是我缺少以下功能:

我对上传到系统的论文作者有一个手动审批流程。我想让他们能够编辑被标记为他们论文的帖子。但我了解到,无法基于标签授予权限。

然后,我产生了为每篇论文创建一个群组的想法,论文的作者将属于同一个群组。但我不确定这是否能解决我的问题,因为我不确定如何授予编辑特定帖子的权限。

如果您能提供一种实现此功能的优雅方法,我将不胜感激。谢谢。

3 个赞

您希望作者能够编辑他人的帖子,如果该帖子是对其论文的回应?

您指的是帖子而不是主题?

是的,帖子是否是回复或与其论文相关目前由标签决定。

但如果这有帮助,我也可以为每篇论文创建一个小组。

理想情况下,帖子和主题都应该是可编辑的。

组非常轻量级,您可以轻松拥有数千个组。\n\n另一方面,拥有 20,000 个类别将是一个性能问题。

10 个赞

帖子没有标签,主题才有。

我不明白你为什么希望人们能够编辑别人的帖子。你可以把它们变成维基,但那样的话任何人都可以编辑它们。

或者你可能希望用户主题成为维基,这样任何人都可以编辑它。

我就是不明白,在什么模型下,更改别人的话是有意义的。

2 个赞

在考虑了几种场景后,我也开始质疑编辑带来的好处。但是,如果有一个机制可以查看回复某话题的人是否是该论文的作者,那就太好了,而且我认为目前在群组中还无法实现。

更具体地说:假设一个用户发布了一个帖子,标记了ID为5的论文。如果论文5的作者回复了该话题:理想的功能是某种方式(可以是标记、标题、帖子顶部的简短默认文本)来表明回复的用户是正在讨论的论文的作者。

如果每篇论文都是一个主题,并且您将主题的 OP(原始发帖人)分配给作者,那么创建 CSS 规则来为 OP 在其进一步回复中对他们所讨论的论文的回复添加一些视觉区分就很容易了。

1 个赞

为什么不为每篇论文设置一个主题?这样就不会有混淆了。您将不需要标签或分组。

另外,您似乎混淆了 Discourse 中“主题”(一组帖子)和“帖子”(一个人在主题中发布的单个消息)的概念。

不过,@falco 已经抢先一步了……

1 个赞

@pfaffman @falco 从技术上讲,每篇论文都是一个标签。原因是,一个主题不足以包含关于一篇论文的所有讨论或问题。有很多不同的方面需要讨论,而这个论坛的主要目的是成为围绕一篇论文发生的所有讨论的单一来源。因此,每篇论文都是一个标签,在论文标签下创建的所有主题都可以从页面 /tag/:paper_id 查看。

在这种情况下,是否可以使用 CSS 技巧?如果需要,我可以创建一个外部数据库来定义标签与其各自“作者用户”之间的关系。

1 个赞

是的,你可以创建一个 CSS 文件,该文件可以从解析该数据库自动生成。

你也可以通过使用自定义插件在 Discourse 中完成所有这些操作。它会在主题序列化器中为匹配的帖子作者添加一个额外的字段,然后前端应用程序可以利用该字段。

1 个赞

好的,我刚开始接触插件,但我会看看能做什么。非常感谢您的建议!

2 个赞

如果您在开发过程中遇到任何问题,请随时在 Dev 频道上开贴提问。

1 个赞

所以你明白主题有标签,帖子没有。我认为你在这里使用“帖子”一词时,指的是“主题”。

我不认为你回答了这个问题。如果你不想让人们编辑其他人的帖子,我认为你没有任何问题。我无法想象你为什么会想让人们编辑其他人的帖子,但如果你想,将其设为 wiki 可能是解决方案。

用关于特定论文的主题标签(比如 DOI,但我想在论文的这个生命周期阶段可能还没有 DOI)来标记主题是一个好主意,你现在就可以通过 API 来实现。另外,能够编辑主题的用户(trust_level 3 和主题所有者)可以添加标签;其他人可以标记它并要求添加标签(但发起主题的人难道不知道它与论文有关吗?)。

我不太清楚你现在需要插件做什么。

您能谈谈性能问题会出现在哪里吗?也就是说,是在特定页面上,还是普遍存在的问题?如果每个类别都链接到一个或两个组,而平均用户总共只能访问 10-20 个类别,那么拥有 20,000 个类别仍然是个问题吗?

对于我(假设的)用例,它是为了允许通过群组私信来讨论公开话题。这种方法可以以几种不同的方式使用,试图围绕两极分化的话题产生富有成效的公开讨论。本质上,可以通过要求人们加入与特定话题相关的团队(群组),然后遵循一套规则以团队形式回应公开话题来对讨论进行游戏化。

我已经准备好应对数千个群组可能给网站工作人员带来的用户界面问题。我意识到这是 Discourse 群组的一个意想不到的用例,所以在这里发帖,以防我忽略了任何明显的性能问题。

1 个赞

这比我想象的要合理得多。 :slight_smile:

我认为有一个用户创建组的功能正在开发中,但我怀疑还需要一段时间。

1 个赞

那将是很好的,但目前可以通过 API 来完成。

1 个赞

哦。我有点离题了,但你可以使用那种 API 来接收每个新主题的 webhook,然后为其创建一个群组。无需插件。我不知道为什么以前没想到让 Discourse 成为其中一项服务的前后端。

另外,今天我看到了 https://github.com/triggerdotdev/trigger.dev。看起来你可以让它来完成工作,而不是付费给那些服务。我怀疑它是否开箱即用地支持 Discourse,但应该很容易让它工作起来。

1 个赞