能否从搜索中排除用户名

有没有办法从搜索结果中删除特定用户的帖子?目前,如果一个活跃用户有一个以社区中的热门词语开头或包含该热门词语的用户名,例如……

搜索词:“ABCD”
用户名:“ABCDAndUser…”

……搜索该词语通常会列出该用户的帖子,以至于几乎不可能区分该用户随机发布的帖子和实际与主题相关并仅包含该用户参与讨论的帖子。理想情况下,大多数成员希望看到与主题相关的帖子列表,而不是仅包含该用户发布而没有主动使用该词语的帖子。

编辑:目前我不知道有什么变通方法,除了更改该用户名和/或用户在搜索时阻止该用户名。这两种方法都不是理想的。

3 个赞

哦,哇。它实际上是显示该用户刚发布的帖子,还是显示包含其用户名的回复的帖子?

2 个赞

说得有理。仔细一看,是那些回复中包含其用户名的帖子。

2 个赞

似乎确实存在一些可能的改进——一个名字可以像这样“劫持”搜索似乎不太对,而且人们很可能会选择与特定论坛主题相关的用户名。

我不知道这在底层有多难实现,但也许可以考虑在没有“@”符号的情况下隐藏用户名。

2 个赞

这是保留的用户名存在的原因之一。

默认情况下,Discourse 会阻止以下内容:

没有人希望有一个名为discourse的用户来混淆讨论。

社区可以更新此列表以添加其讨论特有的任何术语。

3 个赞

我认为那不是解决这个问题的最佳方案。例如,我能想象在一个汽车论坛上,有人会用一个用户名来宣称他们拥有或喜爱某个汽车型号。你真的想禁止这种可能性——还是维护这个列表?

另外,我曾经不得不向 AT&T 咨询一个支持问题,而我无法使用名字“Matthew”。想猜猜为什么吗?

2 个赞

也许我误解了所述的设置。您是否需要为未来用户名中任何可能存在问题的单词的每个实例进行预留,并追溯性地将其从社区成员的用户名中删除?

我知道我们确实有一些成员使用诸如“testuser”之类的名称。也就是说,除非我们使用通配符来大规模禁止用户名,否则这只能作为一种解决方案,对吗?这似乎很容易在众多缩写中变得过于严苛(这个特定的实例是在一个金融社区中出现的 ETF 代码)。

1 个赞

此外,从实际操作的角度来看,用户名限制与 SSO 的配合效果不佳。如果 SSO 不强制执行相同的限制,而用户无意中选择了“禁止”的名称,Discourse 会为其分配一个随机的、类似 uuid 的长用户名。

1 个赞

作为一个具体的例子,我猜

  1. 用户自称为 msft_2000
  2. 现在每次有人说“@msft_2000说什么”或“msft_2000说什么”时,都会在搜索中显示出来

我真的不确定该怎么做,我可能会从相反的方向着手。

  • 一个特殊的插件,将 MSFT → “神奇的 msft 单框,带有额外数据”
  • 解析搜索查询中的已知股票代码,并对搜索查询进行转换。

这肯定会非常复杂且成本高昂。我唯一能想到的简单解决方法是重命名用户。

1 个赞

Discourse 是否有特定原因不模仿 Google 的减号来从搜索结果中排除包含某个词(或在此情况下,排除包含用户名的搜索结果)?如果存在的话,我认为这将是最简单的解决方法。

抱歉,我需要将此对话进行接地。

您是说您想搜索:

msft -msft_user

这在我们的当前索引中技术上是可行的,但需要大量工作才能实现。特别是由于 msft_user 会被分词为两个词元(msft / user),因此我们需要使用 is followed by 语法。我可以看到实现 - 运算符的优点,但这并非一项微不足道的更改。

3 个赞

是的,如果这太冗长了,我很抱歉。那绝对不是我的本意。

我想在我们的一位成员提出这种情况后问一下,因为当你们团队最近在改进搜索时,这似乎是一个合适的改变。

这回答了问题。:+1:

2 个赞

完全没问题,我认为这是一个完全合乎情理的要求,支持 -something-"some longer phrase" 在各种情况下都可能非常有用。

这不是一个微不足道的变化,但也不是一项巨大的工作,这项变化的主要之处在于它有点棘手。

我将标记这个,并在下一轮搜索工作中我们可以重新审视!

非常感谢你提出这个问题。

7 个赞

这不也是标签的一个好用例吗?

排除标签也受支持:

-tags:bug+feature:排除标记为 bug 和 feature 的主题
-tags:bug,feature:排除标记为 bug 或 feature 的主题

5 个赞