このガイドでは、Discourse の高度なトピックフィルタリングシステムについて、完全なクエリ言語構文、フィルタオプション、および
/filterルートの効果的な使用方法を説明します。
必要なユーザーレベル:全ユーザー
Discourse のトピックフィルタ クエリ言語の使用
Discourse のトピックフィルタは、複数の基準に基づいてトピックを検索するための強力なクエリ言語を提供します。この高度な検索インターフェイスを使用すると、フィルタを組み合わせ、結果を並べ替え、フォーラム上のあらゆるコンテンツに対して正確なクエリを作成できます。
フィルタへのアクセス
トピックフィルタには、次の 2 つの方法でアクセスできます。
直接 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
これにより、「ssl certificate error」という単語を含む「support」カテゴリのトピックが検索されます。
カテゴリフィルタ
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
解決済みのバグレポートを除外する:
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
オートコンプリート機能
フィルタ入力には、インテリジェントな提案が提供されます。
- フィルタの提案 - 入力中に利用可能なフィルタを表示します
- カテゴリのオートコンプリート - 名前またはスラッグでカテゴリを提案します
- タグのオートコンプリート - 投稿数とともにタグを提案します
- ユーザー名のオートコンプリート - 表示名とともにユーザー名を提案します
- 日付の提案 - クイック日付オプション (昨日、先週など) を提供します
- プレフィックスのサポート - カテゴリとタグのプレフィックスオプションを表示します
ヒントとベストプラクティス
- オートコンプリートを使用する - フィルタインターフェイスは、入力中にインテリジェントな提案を提供します
- フィルタを組み合わせる - さまざまなフィルタタイプを組み合わせて、正確な結果を得ます
- フィルタ URL を共有する - フィルタ URL は共有可能です。URL をコピーして検索を共有します
- サイドバーに便利なフィルタを追加する - フィルタ URL をサイドバーに追加して簡単にアクセスできるようにします
- 除外を使用する -
-プレフィックスを使用して、不要な結果を除外します - 日付のショートカット - 相対日付に数値を指定します (30 = 30 日前)
- キーボードナビゲーション - 矢印キーで提案をナビゲートし、Tab/Enter で選択します
カスタムサイドバーリンクの作成
フィルタリンクをカスタムリンクとしてサイドバーに追加できます。
- サイドバー設定に移動します
- フィルタ URL (例:
/filter?q=category:support status:open) を持つカスタムリンクを追加します - 「Open Support Topics」のような説明的な名前を付けます
技術的な注意点
- フィルタは、キーワード検索とフィルタを組み合わせて全文検索を使用します
- キーワード検索には、最小検索語長が適用されます
- 結果は権限を認識します - アクセスできるトピックのみが表示されます
- フィルタクエリは、パフォーマンスのためにサーバーサイドで処理されます
- この機能は、カスタムフィルタ用のプラグイン拡張をサポートします
