Crius
(Crius)
1
虽然我明白常规的主题/帖子搜索对于大多数用例来说已经足够了,但我收到了一些用户的请求,希望在搜索时能够过滤结果,只显示回复或主题(我想这可以翻译为主题的第一个回复)。
这或许也可以通过主题组件来实现,但我想先问一下,以防我遗漏了什么显而易见的东西。
谢谢。
1 个赞
isaac
(Isaac Janzen)
2
您目前可以搜索所有主题和帖子
您的意思是希望在排除主题标题搜索结果的同时拥有此功能吗?
1 个赞
Crius
(Crius)
4
我知道可以按主题和帖子进行搜索。目前报告的问题是搜索结果会混合主题和帖子,因此希望能够提供一个选项,让 Discourse 仅显示“仅主题”或“仅帖子”,以及两者都显示(目前就是这样)。
由于搜索结果以无限滚动界面的形式呈现,能够过滤掉用户已知不会出现的内容,将有助于减少干扰。
如果我知道我正在寻找的是一个帖子,就没有理由还要继续滚动浏览主题来寻找我想要的内容。
希望现在已经说清楚了。
1 个赞
Canapin
(Coin-coin le Canapin)
5
在 Discourse 中,“主题”(topic)指的是所有的消息。第一个帖子是原始帖子(OP)或首帖。
我明白这可能会令人困惑,因为按钮
最初创建一个包含 1 个帖子的主题,当有回复时,帖子会增加。
话虽如此,
将意味着“仅主题的第一个帖子”,并且确实可用,它是过滤器 in:first:
无法搜索除首帖之外的所有帖子,目前也没有运算符可以排除某个词、过滤器、类别或其他任何内容。
2 个赞
Crius
(Crius)
6
感谢 @Canapin 的见解。
感谢您关于基本只返回帖子的说明。我完全错过了这一点 
作为一种变通方法,当搜索结果返回实际结果时,它会构建 URL,您认为我们可以创建一个组件/插件,只为那些遵循指定帖子 URL 格式的帖子添加 style="display:none",反之亦然,用于主题。
在插件的情况下,搜索结果的某个地方必须有一个函数来确定“这是第一个回复”或“这不是第一个回复”。也许可以拦截它,并根据一个特别添加的新过滤器,使其不被添加到结果数组中?
如果您知道哪个文件包含该控制器/模型,您能在此处链接它,以便我也能查看一下吗? 
1 个赞
Canapin
(Coin-coin le Canapin)
7
对我来说,这是一个未知、奇怪且可怕的世界,但看看代码,控制器应该在这里:
搜索过滤器似乎在这里:
您可能也想看看 Discours Assign 如何为搜索添加过滤器:
2 个赞
Crius
(Crius)
8
谢谢 @Canapin。我会在几周后回来查看,因为我目前工作很忙,只是在收集一些信息,等我稍微空闲一些的时候再着手处理 
1 个赞