同时搜索公共主题和私信,并将此选项设为默认

Is there a way to search for both public topics and PMs at once – and make that the default behavior for my site?

User case: I often know I’ve talked with someone about something but I can’t recall whether it was a message or a topic. To find it, I sometimes have to do two searches. And that’s charitably assuming that I use the correct keywords, which isn’t always the case :slight_smile:

3 个赞

我想尝试将 Search public topics and PMs simultaneously 的行为设置为我们论坛的默认行为。

以前有人尝试过这样做吗?

背景:
我们将 Discourse 用作学校的交流平台。大多数分类仅限于特定的群组。
通过私信 (PM) 进行交流是跨群组联系人们的常规方式。
当用户搜索对话时,他们不记得应该搜索私信还是主题。

4 个赞

我之前没有听说过这个 - 这感觉像是一个功能请求,所以将其移到#feature。

1 个赞

接续自 在高级搜索 UI 中将“在所有”作为选项 的讨论:

事实证明,这并不容易做到!因此,这是一个新的功能请求。

在我们的实例中,我们大量使用群组收件箱,因此将消息包含在搜索中是很常见的需求。在搜索前加上 in:all 可以实现此目的,但这不容易教给用户。

得益于 @zogstrip 最近的出色工作,现在可以通过用户界面 (UI) 来实现这一点。虽然这对我们的高级用户来说非常棒,但我们的新手用户需要一段时间才能找到它,或者会忘记使用它,等等。

我希望有一种方法可以为我的用户(和我自己!)设置默认搜索。

3 个赞

嗯……也许你可以用 JavaScript 在搜索框中添加 in:all

我试着用 JavaScript 写了一些,但那对我来说太难了,我的“笨”人工智能似乎也支持不了。有什么建议吗?

嗯……像下面这样如何:

document.addEventListener("DOMContentLoaded", () => {
  if (window.location == "/search") {
    const searchBar = document.getElementById("someId");
    searchBar.value = "in:all";
  }
});

这是我凭空想出来的,因为我正在度假,没有带笔记本电脑。

更好的解决方案是使用插件 API 的 api.onPageChange,但这可能仍然有效。

我只是想快速链接一些类似的功能请求:

1 个赞

不幸的是,我没能让它生效!

说得好!我错过了现有的主题。我已经标记它们全部合并。

1 个赞

我有几个站点大量使用群组消息(Group Messages),这是一种将“论坛外”主题与公开分类清晰区分的绝佳方式。

然而,这造成了一点功能上的搜索孤岛。虽然可以使用 in-all 在消息和更广泛的论坛中进行搜索(参见 https://meta.discourse.org/t/searching-for-content-effectively/273328),但实际上无法从搜索用户界面(UI)访问此功能。

对于我们的用例,如果在“高级搜索”(Advance Search)UI 中有以下功能会非常有帮助:

  1. 一个易于使用的选项来控制是否在搜索中包含消息(和/或聊天)

    • 它可以很好地作为额外的下拉选项放在这里:
      image

    • 或者也许更容易作为其中一个复选框(因为这些只是将前缀插入搜索栏):
      image

  2. 能够为整个站点设置此项的默认值

2 个赞

将复选框和下拉菜单混合使用一直让我觉得很奇怪。所以我将它们全部“合并”到一个“多选”下拉菜单中,并确保“in:all”过滤器也在列表中。

4 个赞

@nathank 上述的拉取请求(PR)已在 meta 上线,你觉得怎么样?

1 个赞

这是一个相当不错的(而且明智的)改进!!!

现在我只需要弄清楚如何让它成为我网站的默认搜索……

1 个赞

总结一下,按主题和私信(PMs)的搜索已完成,in:all 现已在筛选器中。
完成此功能请求的剩余部分是将其设为默认搜索的能力。

2 个赞