本指南将介绍 Discourse 的高级主题过滤系统,包括完整的查询语言语法、过滤选项以及如何有效使用
/filter路由。
所需用户级别:所有用户
使用 Discourse 主题过滤器查询语言
Discourse 的主题过滤器提供了一种强大的查询语言,用于根据多个条件查找主题。这种高级搜索界面允许您组合过滤器、对结果进行排序以及为论坛上的任何内容创建精确的查询。
访问过滤器
您可以通过两种方式访问主题过滤器:
直接 URL 访问:
导航到 Discourse 实例上的 /filter(例如:https://meta.discourse.org/filter)
侧边栏导航:
点击侧边栏中的“更多”,然后选择过滤器选项
过滤器界面包含一个智能自动完成系统,可在您键入时建议可用的过滤器和值。
基本查询语法
过滤器使用结构化语法,格式为:
filter-name:value
组合多个过滤器:
category:support status:open created-after:2023-01-01
包含常规搜索词:
category:support ssl certificate error
这将搜索“support”类别中包含“ssl certificate error”一词的主题。
类别过滤器
category:(别名:categories:)
按类别过滤主题
基本用法:
category:support
category:dev,support # 主题在 dev 或 support 类别中
category:documentation:admins # 主题在 documentation 的 admins 子类别中
高级前缀:
=- 类别不含子类别:=category:general-- 排除类别:-category:off-topic-=- 排除不含子类别的类别:-=category:meta
示例:
category:bug,feature # 包含 bug 或 feature 类别(含子类别)
=category:bug,feature # 包含 bug 或 feature 类别(不含子类别)
-category:bug,feature # 排除 bug 或 feature 类别(含子类别)
-=category:bug,feature # 排除 bug 或 feature 类别(不含子类别)
标签过滤器
tag:(别名:tags:)
按标签过滤主题(需要启用标记功能)
基本用法:
tag:bug
tag:feature,enhancement # 具有 feature 或 enhancement 标签的主题
tag:bug+urgent # 同时具有 bug 和 urgent 标签的主题
排除:
-tag:solved # 排除具有 solved 标签的主题
-tag:bug+urgent # 排除同时具有 bug 和 urgent 标签的主题
-tag:bug,urgent # 排除具有 bug 或 urgent 标签的主题
tag_group:
按标签组过滤
基本用法:
tag_group:moderation
-tag_group:staff-only # 排除具有 staff-only 组标签的主题
日期过滤器
所有日期过滤器都支持特定日期(YYYY-MM-DD)和相对天数:
活动日期
activity-before:- 上次活动在此日期之前的主题activity-after:- 上次活动在此日期之后的主题
创建日期
created-before:- 在此日期之前创建的主题created-after:- 在此日期之后创建的主题
最新帖子日期
latest-post-before:- 最新帖子在此日期之前的主题latest-post-after:- 最新帖子在此日期之后的主题
日期格式示例:
created-after:2023-12-25 # 特定日期 (YYYY-MM-DD)
created-after:30 # 30 天前
created-after:1 # 昨天
created-after:0 # 今天
快速建议:
1- 昨天7- 上周30- 上个月365- 去年
用户过滤器
created-by:
按主题作者过滤
基本用法:
created-by:username
created-by:user1,user2 # user1 或 user2 的主题
created-by:@username # @ 前缀是可选的
个人过滤器(仅限已认证用户)
in:
按您与主题的个人关系过滤
可用选项:
in:pinned- 为您固定的主题in:bookmarked- 您已加书签的主题in:watching- 您正在关注的主题in:tracking- 您正在跟踪的主题in:muted- 您已静默的主题in:normal- 通知级别正常的主题in:watching_first_post- 只关注第一帖的主题
示例:
in:bookmarked category:support
in:watching,tracking # 您正在关注或跟踪的主题
数字过滤器
点赞过滤器
likes-min:- 所有帖子点赞总数最小值likes-max:- 所有帖子点赞总数最大值likes-op-min:- 开帖点赞数最小值likes-op-max:- 开帖点赞数最大值
帖子数过滤器
posts-min:- 帖子数最小值posts-max:- 帖子数最大值
参与者过滤器
posters-min:- 参与者数最小值posters-max:- 参与者数最大值
浏览量过滤器
views-min:- 浏览量最小值views-max:- 浏览量最大值
示例:
likes-min:10 # 点赞数至少为 10 的主题
posts-min:5 posts-max:20 # 帖子数在 5-20 之间的主题
views-min:100 likes-op-min:5 # 参与度高的开帖和热门主题
状态过滤器
status:
按主题状态过滤
可用状态:
status:open- 开放的主题(未关闭或存档)status:closed- 已关闭的主题status:archived- 已存档的主题status:listed- 已列出的(可见的)主题status:unlisted- 未列出的主题status:deleted- 已删除的主题(需要权限)status:public- 公开主题(非限制类别)
插件特定状态:
status:solved- 已解决的主题(使用 Solved 插件)status:unsolved- 未解决的主题(使用 Solved 插件)
示例:
status:open category:support
status:closed created-after:30
排序选项
order:
按不同条件对结果进行排序
可用排序:
order:activity- 最新活动(默认,降序)order:activity-asc- 最早活动优先order:created- 创建日期(最新优先)order:created-asc- 最早优先order:latest-post- 最新帖子日期order:latest-post-asc- 最早最新帖子order:likes- 所有帖子点赞总数最多order:likes-asc- 点赞数最少order:likes-op- 开帖点赞数最多order:likes-op-asc- 开帖点赞数最少order:posters- 参与者最多order:posters-asc- 参与者最少order:title- 按标题字母顺序order:title-asc- 按标题反向字母顺序order:views- 浏览量最多order:views-asc- 浏览量最少order:category- 类别名称order:category-asc- 类别名称反向order:read- 最后阅读日期(已认证用户)order:read-asc- 最早阅读优先
高级示例
查找热门近期讨论:
created-after:7 likes-min:10 order:likes
需要关注的支持主题:
category:support status:open posts-max:3 created-after:7
您加书签的开发主题:
category:dev in:bookmarked order:activity
排除已解决的 bug 报告:
category:bug -tag:solved status:open order:created
来自特定用户的参与度高的话题:
created-by:admin,moderator likes-min:5 views-min:100
近期未列出的主题(仅限员工):
status:unlisted created-after:30 order:created
自动完成功能
过滤器输入提供智能建议:
- 过滤器建议 - 在您键入时显示可用过滤器
- 类别自动完成 - 按名称或 slug 建议类别
- 标签自动完成 - 建议带帖子数的标签
- 用户名自动完成 - 建议带显示名称的用户名
- 日期建议 - 提供快速日期选项(昨天、上周等)
- 前缀支持 - 显示类别和标签的前缀选项
提示和最佳实践
- 使用自动完成 - 过滤器界面会在您键入时提供智能建议
- 组合过滤器 - 混合使用不同类型的过滤器以获得精确结果
- 共享过滤器 URL - 过滤器 URL 可共享 - 复制 URL 以共享您的搜索
- 将有用的过滤器添加到侧边栏 - 过滤器 URL 可以添加到侧边栏以便轻松访问
- 使用排除 - 使用
-前缀排除不需要的结果 - 日期快捷方式 - 使用数字表示相对日期(30 = 30 天前)
- 键盘导航 - 使用箭头键导航建议,使用 Tab/Enter 选择
创建自定义侧边栏链接
您可以将过滤器链接作为自定义链接添加到侧边栏:
- 转到您的侧边栏设置
- 添加一个自定义链接,其过滤器 URL 类似于
/filter?q=category:support status:open - 为其指定一个描述性名称,例如“Open Support Topics”
技术说明
- 过滤器将全文搜索与过滤器结合用于关键字搜索
- 关键字搜索有最小搜索词长度限制
- 结果具有权限感知性 - 您只能看到您可以访问的主题
- 过滤器查询在服务器端处理以提高性能
- 该功能支持插件扩展以实现自定义过滤器
