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

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

「いいね!」 13