効果的にコンテンツを検索する

:bookmark: このガイドでは、Discourseの検索機能について、フィルター、オプション、高度なテクニックを含め、包括的に概説します。

:person_raising_hand: 必要なユーザーレベル: すべてのユーザー

Discourseは、多数のフィルターと基準を備えた強力な検索機能を提供します。高度な検索フォームを使用すると、関連する構文が自動的にクエリに追加されます。たとえば、\[x\] 私のメッセージ内を選択すると、検索クエリに in:personal が追加されます。

このガイドでは、Discourseで利用可能なすべての検索オプションと機能、および検索機能を使用するための役立つヒントとコツを説明します。

フィルター

Discourseは、検索結果を絞り込むための幅広いフィルターを提供します。利用可能なフィルターの包括的なリストを次に示します。

| 構文 | 説明 |
| — | — |
| in:personal-direct | 2人のユーザー間のプライベートメッセージ内の投稿のみを返します |
| in:all-pms | :information_source: 管理者のみ \u003cbr\u003e あなたが参加していないものを含む、すべてのプライベートメッセージからの投稿を返します |
| in:all | 公開トピックとプライベートメッセージからの投稿を返します |
| in:replies | 返信である投稿のみを返し、トピックのOP(元の投稿者)は除外します |
| in:all-posts | 複数の投稿が同じトピック内で一致する場合でも、クエリに一致するすべての投稿を返します |
| in:tagged | 少なくとも1つのタグが付いているトピックからの投稿を返します |
| in:untagged | タグのないトピックからの投稿を返します |
| in:seen | あなたが見た投稿を返します(ログインユーザーの場合) |
| in:unseen | あなたが見ていない投稿を返します(ログインユーザーの場合) |
| in:wiki | ウィキ投稿を返します |
| in:watching | あなたがウォッチしているトピックからの投稿を返します |
| in:tracking | あなたがトラッキングしているトピックからの投稿を返します |
| posts_count:X | ちょうどX個の投稿があるトピックからの投稿を返します |
| min_posts:X | 少なくともX個の投稿があるトピックからの投稿を返します |
| max_posts:X | 最大X個の投稿があるトピックからの投稿を返します |
| min_views:X | 少なくともX回の閲覧があるトピックからの投稿を返します |
| max_views:X | 最大X回の閲覧があるトピックからの投稿を返します |
| badge:name_or_id | 特定のバッジ付与にリンクされた投稿を返します |
| created:@username | usernameによって作成されたトピックからの投稿を返します |
| group:group_name | group_nameグループ内のユーザーからの投稿を返します |
| group_messages:group_name | group_nameグループに送信されたプライベートメッセージからの投稿を返します |
| personal_messages:username | :information_source: 管理者のみ \u003cbr\u003e 指定されたユーザーのプライベートメッセージからの投稿を返します |
| -tags:tag1,tag2,tag3 | tag1tag2、またはtag3のタグが付いていない投稿を返します |
| filetypes:ext1,ext2,ext3 | ext1ext2、またはext3のファイル拡張子のアップロードを含む投稿を返します |
| categories:category1,category2 | category1category2のカテゴリからの投稿を返します |
| status:open | クローズまたはアーカイブされていないトピックからの投稿を返します |
| status:closed | クローズされたトピックからの投稿を返します |
| status:archived | アーカイブされたトピックからの投稿を返します |
| status:noreplies | 返信のないトピックからの投稿を返します |
| status:single_user | 1人のユーザーからの投稿のみがあるトピックからの投稿を返します |
| status:public | 公開カテゴリにあるトピックからの投稿を返します |
| before:YYYY-MM-DD | 指定された日付より前に作成された投稿を返します |
| after:YYYY-MM-DD | 指定された日付より後に作成された投稿を返します |
| with:images | 画像を含む投稿を返します |

並べ替え順序

以下の並べ替えオプションを使用して、検索結果を並べ替えることができます。

| 構文 | 説明 |
|----|----|
| order:latest | 結果を新しいものから古いものの順に並べ替えます(ショートカット: l) |
| order:oldest | 結果を古いものから新しいものの順に並べ替えます |
| order:latest_topic | トピックの日付で、新しいものから古いものの順に結果を並べ替えます |
| order:oldest_topic | トピックの日付で、古いものから新しいものの順に結果を並べ替えます |
| order:views | 閲覧数で結果を並べ替えます |
| order:likes | いいねの数で結果を並べ替えます | |
| order:read | (ログインユーザーのみ)トピックに最後にアクセスした日付で並べ替えます(ショートカット: r) | |

エイリアス

Discourseは、検索を容易にするためにいくつかのエイリアスを提供しています。

| 構文 | 等価物 |
|----|----|
| l | order:latest |
| in:personal | in:messages |
| min_post_count: | min_post: |
| in:mine | in:created |
| category: | categories: |
| # | コンテキストに応じて、カテゴリとタグの両方に使用できます |
| user: | @ |
| @me | @your_own_username |
| f | in:first |
| t | in:title |

完全一致の単語を検索する

Discourseは、関連する単語を見つけるためにステミングと呼ばれる手法を使用します。これは多くの場合役立ちますが、完全一致の単語を検索したい場合もあります。これは、単語をスペースと二重引用符で囲むことによって行うことができます。次のようにします: \" term \"

これにより、「term」という単語のみが検索され、他の関連する単語は除外されます。

:information_source: スペースは検索語の一部と見なされるため、投稿の最初または最後の単語である場合、「term」は前後にスペースがないため返されません。

例: @メンションの検索

現在、@メンションの検索は直接サポートされていません。ただし、完全一致の単語検索方法を使用してこれを実現できます。

\u003chttps://meta.discourse.org/search?q=“%20%40username%20”\u003e

:information_source: これは、%20がURLでスペースがどのようにエンコードされるか、%40@記号がどのようにエンコードされるかによるものです。

このクエリは、スペースで囲まれた@usernameを具体的に検索します。

検索オプションの組み合わせ

複数の検索オプションを組み合わせて、より具体的なクエリを作成できます。たとえば:

  • status:open category:support tag:urgent after:2023-01-01 order:latest
    これは、2023年1月1日以降に作成された、緊急としてタグ付けされたオープンなサポートトピックを検索し、結果を最新の投稿で並べ替えます。

  • @jane_doe in:watching min_posts:5 with:images
    これは、あなたがウォッチしているトピック内のJane Doeによる投稿を、少なくとも5つの投稿があり、画像を含むものを検索します。

権限と制限

一部の高度な検索オプションでは、特定のユーザー権限が必要な場合や、特定のユーザーロールに限定される場合があります。たとえば:

  • in:all-pms は、管理者のみが利用でき、一般ユーザーやモデレーターは利用できません。
  • personal_messages:username は、管理者のみが利用できます。

高度な検索オプションを使用する際は、常にユーザーロールと権限を考慮してください。

検索の代替: トピックリストフィルター

多くのフィルタータイプをサポートする実験的な/filter機能が利用可能です。詳細については、公式トピックをご覧ください: Experimental topics list filter feature

ソースファイル

これらのオプションをより技術的に確認するには、すべての検索フィルターとパラメーターはsearch.rbで見つけることができます。advanced_filterメソッドを探してください。

追加のヒント

  1. Bug のようなタグのメンションも検索できます: \u003chttps://meta.discourse.org/search?q=“%20%23bug”\u003e

  2. 一部のフィルターはプラグインによって追加される場合があります。たとえば、Solvedプラグインは以下を追加します。

    • status:solved: 解決済みのトピックからの投稿を返します
    • status:unsolved: 解決済みマークを許可するカテゴリ内の未解決のトピックからの投稿を返します
  3. Topic Votingプラグインは、追加の並べ替えオプションを追加します。

    • order:votes: 投稿を含むトピックの投票数で結果を並べ替えます

:bulb: 時間をかけて、さまざまなフィルターとオプションの組み合わせを試して、ニーズに最も効果的な検索戦略を見つけてください。

「いいね!」 12

一部のフィルター(例:in:pinnedin:bookmarks)や、エイリアスを持つフィルターの説明が不足しているため、不足している情報を追加しようとしました。その結果、テーブルがかなり複雑になったため、より小さなテーブルに分割することを試みました。これはボットもこちらで行ったことです。説明がすべて正しいかどうかはわかりません。トピック内の説明と、@sam とボットとの会話内の説明が異なっています。中には、ボットに再度尋ねて別の結果を得たものもあります(これらはハイライトされています)。誰か説明を修正するのを手伝ってくれるとありがたいです。全体的な見た目にもあまり満足していません。テーブルの列の幅がすべて異なります。


フィルター

検索フィルター

構文 説明
topic:topic_id 特定のトピック内の投稿を返します
in:title
t
タイトルに用語を含むトピックを返します
in:first
f
トピックの最初の投稿のみを返します
in:replies 返信のみを返し、トピックのOPを除外します
in:regular 小さなアクション投稿、ささやき、スタッフの色が適用された投稿を除外します
in:whispers
in:whisper
:information_source: ささやきへのアクセス権を持つユーザーのみ
ささやき投稿を返します
include:unlisted
include:invisible
:information_source: TL4およびスタッフのみ
未掲載トピックからの投稿を含む投稿を返します
in:all :information_source: ログインユーザーのみ
公開トピックと個人メッセージからの投稿を返します/mark>
in:all-posts 同じトピック内で複数の投稿が一致する場合でも、一致するすべての投稿を返します
in:pinned ピン留めされた投稿を返します
in:wiki ウィキ投稿を返します
with:images 画像を含む投稿を返します
filetypes:ext1,ext2,ext3
filetype:ext1,ext2,ext3
ext1ext2、またはext3のファイル拡張子のアップロードを含む投稿を返します
badge:name_or_id 特定のバッジ付与にリンクされた投稿を返します

メッセージフィルター

(ログインユーザー向け)

構文 説明
in:personal
in:messages
個人メッセージからの投稿を返します
in:personal-direct あなたとちょうど一人の他のユーザーとの間の個人メッセージからの投稿を返します
group_messages:group_name_or_id group_nameグループに送信された個人メッセージからの投稿を返します(グループとそのメンバーがあなたに見える場合にのみ機能します)
personal_messages:username :information_source: 管理者のみ
指定されたユーザーの個人メッセージからの投稿を返します
in:all-pms :information_source: 管理者のみ
あなたが参加していないものを含む、すべての個人メッセージからの投稿を返します

ユーザーおよびグループ固有のフィルター

構文 説明
@username
user:username_or_id
usernameによる投稿を返します
created:@username
in:first @username
usernameによって作成されたトピックの最初の投稿を返します
group:group_name_or_id group_nameグループ内のユーザーからの投稿を返します
in:bot
in:bots
システムおよびボットアカウント(例:@system@discobot)からの投稿を返します
in:human
in:humans
通常のユーザーからの投稿を返します

カテゴリおよびタグフィルター

構文 説明
category:category1
#category1
category1からの投稿を返します
categories:category1,category2
category:category1,category2
category1およびcategory2のカテゴリからの投稿を返します
tag:tag1
#tag1
tag1でタグ付けされたトピックからの投稿を返します
-tag:tag1 tag1でタグ付けされていないトピックからの投稿を返します
tags:tag1,tag2
tag:tag1,tag2
tag1またはtag2でタグ付けされたトピックからの投稿を返します
-tags:tag1,tag2
-tag:tag1,tag2
tag1またはtag2でタグ付けされていないトピックからの投稿を返します
tags:tag1+tag2
tag:tag1+tag2
tag1tag2でタグ付けされたトピックからの投稿を返します
-tags:tag1+tag2
-tag:tag1+tag2
tag1tag2でタグ付けされていないトピックからの投稿を返します
in:tagged 少なくとも1つのタグが付いているトピックからの投稿を返します
in:untagged タグのないトピックからの投稿を返します

パーソナライズされたフィルター(ユーザー固有)

(ログインユーザー向け)

構文 説明
in:seen あなたが見た投稿を返します
in:unseen あなたが見ていない投稿を返します
in:watching あなたがウォッチしているトピックからの投稿を返します
in:tracking あなたがトラッキングしているトピックからの投稿を返します
in:bookmarks あなたがブックマークした投稿を返します
@me
@your_own_username
あなたが書いた投稿を返します
in:posted あなたが投稿したトピックのすべての投稿を返します
in:created
in:mine
あなたが書いたトピックの最初の投稿を返します

投稿数と閲覧数フィルター

構文 説明
min_posts:X
min_post_count:X
少なくともX件の投稿があるトピックからの投稿を返します
max_posts:X 最大X件の投稿があるトピックからの投稿を返します
posts_count:X ちょうどX件の投稿があるトピックからの投稿を返します
min_views:X 少なくともX回閲覧されたトピックからの投稿を返します
max_views:X 最大X回閲覧されたトピックからの投稿を返します

日付フィルター

すべての日付はUTCです。期間の開始時刻には、常にその日のUTCの始まりを使用します。

構文 説明
before:YYYY-MM-DD 指定された日付より前に作成された投稿を返します
after:YYYY-MM-DD 指定された日付より後に作成された投稿を返します
before:day_of_week 指定された曜日の前に作成された投稿を返します
after:day_of_week 指定された曜日以降に作成された投稿を返します
before:X X日以上前に作成された投稿を返します
after:X 過去X日以内に作成された投稿を返します
before:month 指定された月の前に作成された投稿を返します
after:month 指定された月内に作成された投稿を返します
before:YYYY 指定された年より前に作成された投稿を返します
after:YYYY 指定された年内に作成された投稿を返します

ステータスフィルター

構文 説明
status:open クローズまたはアーカイブされていないトピックからの投稿を返します
status:closed クローズされたトピックからの投稿を返します
status:archived アーカイブされたトピックからの投稿を返します
status:noreplies 返信のないトピックからの投稿を返します
status:single_user ユーザーが一人だけの投稿しかないトピックからの投稿を返します
status:public 公開カテゴリ内のトピックからの投稿を返します

言語フィルター

構文 説明
locale:language_code その言語の投稿を返します(例:enen_USen-gb
locale:any
locale:present
ロケールが設定されている投稿を返します
locale:none
locale:null
ロケールなしの投稿を返します

プラグインによって追加されたフィルター

構文 説明
Assign
in:assigned 誰かに割り当てられているトピックからの投稿を返します
in:unassigned 誰にも割り当てられていないトピックからの投稿を返します
assigned:username usernameに割り当てられているトピックからの投稿を返します
Docs
in:docs
in:kb
ドキュメントに含まれるカテゴリとタグからの投稿を返します
Doc Categories
in:docs インデックストピックを持つカテゴリからの投稿を返します
Polls
in:polls 投票を含む投稿を返します
Solved
status:solved 解決済みのトピックからの投稿を返します
status:unsolved 解決済みマークを許可するカテゴリ内の未解決のトピックからの投稿を返します
Topic voting
min_vote_count:X 少なくともX票あるトピックからの投稿を返します

並べ替え

構文 説明
order:latest
l
結果を新しいものから古いものの順に並べ替えます
order:oldest 結果を古いものから新しいものの順に並べ替えます
order:latest_topic トピックの日付で、新しいものから古いものの順に結果を並べ替えます
order:oldest_topic トピックの日付で、古いものから新しいものの順に結果を並べ替えます
order:views 閲覧数順に結果を並べ替えます
order:likes いいねの数順に結果を並べ替えます
order:read
r
:information_source: ログインユーザーのみ
トピックを最後に訪問した日付順に結果を並べ替えます

プラグインによって追加された並べ替えオプション

構文 説明
Topic voting
order:votes 投稿を含むトピックの投票数順に結果を並べ替えます
「いいね!」 5

@meと同じだと思います

「いいね!」 1

検索結果から返信を除外し、トピックのみを表示する方法はありますか?

はい

「いいね!」 5

どうもありがとうございます。

「いいね!」 1

このリンクは意図したページにリンクしていますか?

そうだと思います。フィルターバーが上部にあるトピックリストに移動します。

何を期待していましたか?

なるほど。リンクをクリックすると、これが表示されます。

つまり、フィルターバーが何であるかを知らなければ、それを見つけることはできないということですね!読者が意図しているものをお送りいただきありがとうございます。

「いいね!」 1

改行があった方が読みやすいことに気づきました。

OP のテーブルが、Search improvements to make community management easier! で発表された新しくリリースされた in:all-posts および in:replies を含めるように更新されました。

「いいね!」 3

ありがとうございます。以前の編集で削除された改行も戻していただけるとありがたいです。

新しいフィルターも投稿に追加します。公式の投稿に欠けているフィルターを含める予定はありますか?

こんにちは、@Moinさん

私の目的は、見過ごされる前にその2つの新機能を取り上げるだけでした。

このトピックを割り当て、チームの誰かが時間を取れるときにOP(元の投稿者)が完全に最新の状態に更新されるか確認します。

「いいね!」 2

ロケールフィルターも過去1か月に新たに追加されました:https://meta.discourse.org/t/topic/385034/15。
そのため、なぜ他のフィルターではなく、これらのフィルターを追加したのかは明らかではありませんでした。

in:repliesin:all-posts のリリースに関与し、それを認識していたこと、そしてリアルタイムでドキュメントを編集していた経歴があるためです。OP(元の投稿)から特定の機能を意図的に省略したわけではありません。

「いいね!」 1

タイムリーなアップデートには感謝していますが、前回の編集から何が変わったかを見るだけでは不十分になったため、何が欠けているのかを把握するのがほとんど困難になっています。最後の4回の変更のうち2回が既に追加されたように感じます(順序:readin:replies/all-postsin:bots/humanlocale:language)。

変更点を指摘する方法について、何かご要望はありますか?私は以前に in:bots を追加しました。ここに返信することもできましたが、これらのコメントが変更につながることはめったにないという一般的な印象があります。「チームメンバーのみが編集可能」に切り替わってから、コミュニティが見つけた側面を改善に変えるためのワークフローが欠けているように感じます。

それは私一人の決定ではないので、皆さんのフィードバックをチームに持ち帰り、どうするか検討します。

現時点では、ドキュメントのウィキ化に戻さない限り(あるいは戻るまでは?)、コメントは役立つと思います。なぜなら、チームメンバーがドキュメントの更新を優先できるようになったときに、特定の項目が見落とされないようにするのに役立つからです。

コメントがすぐに反映される即座の満足感は得られないかもしれませんが、更新が行われた際には間違いなく感謝されるでしょう。

「いいね!」 1