実験トピックリストフィルタ機能

/filterルートを導入し、トピックリストのフィルタリングをより高度に行えるようになりました。これは、検索とフィルタリングの両方で統一されたトピックフィルタリング言語に向けた最初のステップとなります。さらに、トピックリストフィルタリング専用のルートにより、サイドバーのカスタマイズ性が向上し、ユーザーはサイドバー内にリンクをカスタムセクションリンクとして追加できるようになりました。

有効化の方法

管理インターフェースで experimental_topics_filter サイト設定を有効にします。

仕組み

/filterには、ユーザーがクエリ文字列を入力してトピックリストをフィルタリングできる入力フィールドがあります。

例えば、category:documentation tag:how-to+email は、Documentation カテゴリにあり、how-toemail の両方のタグが付いたトピックをフィルタリングします。

現在サポートされているフィルタのリストは以下の通りです。

status:open クローズまたはアーカイブされていないトピック
status:closed クローズされたトピック
status:public 読み取り制限のないトピック(例:セキュアカテゴリに属するもの)
status:archived アーカイブされたトピック
status:unlisted 表示されていないトピック
status:listed 表示されているトピック
status:deleted 削除されたトピック

in:pinned ピン留めされたトピック(グローバルまたはカテゴリごとのピン留め)
in:watching 監視中のもの - (muted, normal, tracking, watching_first_post) をサポートし、トラッキング、ウォッチングなどのものに絞り込むことができます。複数の値をカンマ区切りで指定できます。
in:bookmarked ブックマークした項目

category:bug bug カテゴリおよびすべてのサブカテゴリのトピック
=category:bug bug カテゴリのトピック(サブカテゴリを除く)
category:documentation:admins documentation の admins サブカテゴリのトピック
category:bug,feature bug または feature カテゴリのトピック(すべてのサブカテゴリを含む)
=category:bug,feature bug または feature カテゴリのトピック(すべてのサブカテゴリを除く)
-category:bug,feature bug または feature カテゴリのトピックを除く(すべてのサブカテゴリを含む)
-=category:bug,feature bug または feature カテゴリのトピックを除く(すべてのサブカテゴリのみを除く)
categories: category のエイリアス

tag:bug+feature bug と feature の両方のタグが付いたトピック
tag:bug,feature bug または feature のいずれかのタグが付いたトピック
-tag:bug+feature bug と feature のタグが付いたトピックを除く
-tag:bug,feature bug または feature のタグが付いたトピックを除く
tags: tag のエイリアス

tag_group:tag_group_name tag_group に含まれるいずれかのタグが付いたトピック
-tag_group:tag_group_name tag_group に含まれるいずれかのタグが付いたトピックを除く

created-by:@USERNAME 特定のユーザーによって作成されたトピック

posts-min:X X件以上の投稿があるトピック
posts-max:X 最大X件までの投稿があるトピック
posters-min:X 少なくともX人の異なるユーザーが投稿したトピック
posters-max:X 最大X人の異なるユーザーが投稿したトピック
likes-min:X X件以上の「いいね」が付いたトピック
likes-max:X 最大X件までの「いいね」が付いたトピック
likes-op-min:X 最初の投稿にX件以上の「いいね」が付いたトピック
likes-op-max:X 最初の投稿に最大X件までの「いいね」が付いたトピック
views-min:X X回以上の閲覧数があるトピック
views-max:X 最大X回までの閲覧数があるトピック

activity-before:YYYY-MM-DD 指定した日付より前に最後に更新されたトピック
activity-after:YYYY-MM-DD 指定した日付より後に最後に更新されたトピック
created-before:YYYY-MM-DD 指定した日より前に作成されたトピック
created-after:YYYY-MM-DD 指定した日より後に作成されたトピック
latest-post-before:YYYY-MM-DD 指定した日より前に最新の投稿が作成されたトピック
latest-post-after:YYYY-MM-DD 指定した日より後に最新の投稿が作成されたトピック

order:activity アクティビティ日時の降順で並べ替え
order:latest-post 最新の投稿作成日時の降順で並べ替え
order:created 作成日時の降順で並べ替え
order:views 閲覧数の降順で並べ替え
order:likes トピックの「いいね」数の降順で並べ替え
order:likes-op 各トピックの最初の投稿の「いいね」数の降順で並べ替え
order:posters 投稿したユーザー数の降順で並べ替え
order:category カテゴリ名で並べ替え
order:ANY-asc 結果の順序を反転させて昇順にする

フィードバック

この機能が皆様のコミュニティにとって価値があるかどうか、またどのように活用されているか、コミュニティの皆様からお聞かせいただければ幸いです。

もし、ご自身のニーズに役立つと思われるフィルタがあれば、どのようなことを実現したいのか、例を挙げてお知らせください。

最後に、これは非常に初期のバージョンであり、まだ実験的な機能であることを強調しておきます。ユーザーエクスペリエンスの改善が必要であり、現在、インラインオートコンプリートのようなものや、ユーザーがフィルタをすべて覚えることなくトピックフィルタリングクエリ言語を構築できるインターフェースの追加に取り組んでいます。

「いいね!」 33

何を見逃したんだろう…?
Bug カテゴリで、chatpri-high の両方にタグ付けされたトピックが返されないようです。

「いいね!」 2

プライオリティタグは私たちだけのものであるべきだと思います。 :shushing_face: :slight_smile:

含めない場合は機能しますか?

「いいね!」 3


このタグを削除しても機能しないようです。


更新: 「エイリアス」は完璧に機能します。

「いいね!」 2

申し訳ありません、tag:エイリアスのサポートを追加する私のPRがマージされていなかったことに気づきました。

マージされたので、tag:エイリアスはまもなく機能するはずです。

「いいね!」 6

別の問題です。tags フィルターは現在、中国語のような非 ASCII 文字をサポートしていません。

例: tags:一个不存在的标签 はすべてのトピックを返しますが、tags:a-non-existent-tag は想定どおり何も返しません。


ソースを確認したところ、原因は以下の部分にあるようです。

    value.scan(
        /\A(?<tag_names>([a-zA-Z0-9\-]+)(?<delimiter>[,+])?([a-zA-Z0-9\-]+)?(\k<delimiter>[a-zA-Z0-9\-]+)*)\z/,
「いいね!」 5

@tgxworld 素晴らしい仕事ぶり、おめでとうございます。これにより、多くの可能性が開かれます。

興味深いのですが、コンテキストフィルタリングオプションを提供することは可能でしょうか?

例えば、サイドバーから「お知らせ」カテゴリを選択した場合、カテゴリ内で複数のタグ(チャット、新機能)でフィルタリングするために、フィルタパネル(あなたが作成した新しいもの)を一番上に表示することはできますか?

現在、エンドユーザーは直感的に複数のタグでフィルタリングすることはできません。手動で /tags/interesection/chat/new-feature エンドポイントを使用する必要があります。エンドユーザーは、特にカテゴリ内でこれを行うことができる可能性に気づいていないかもしれません。

「いいね!」 5

おっと、よく見つけましたね。タグの修正は以下で行いました。

category フィルターも同様の修正が必要ですが、少し複雑です。来週までには完了するはずです。

「いいね!」 5

/filter に新しいトピックが表示される際に、翻訳文字列が欠落しています。

[en.topic_count_all count=1]

「いいね!」 4

この機能は堅実で、ユーザー向けのより優れたカスタマイズされたトピックフィードの構築に間違いなく役立ちます!ありがとうございます!

ちなみに、この機能で特定のカテゴリ/タグ内の複数のトピックから最新の投稿を埋め込むことができるかという質問がありますか?

「いいね!」 1

いいえ、それは現在のところ計画には含まれていないと思います。

もし、現在の機能を試してみて、それでもこの機能が必要だと感じた場合は、どのようなことを考えているのか、もう少し詳しく説明して新しいトピックを開始していただけますか?

「いいね!」 1

この非常に便利な機能について、ありがとうございます!

現在のユーザーが作成したトピックを自動的にフィルタリングする created-by:me のような機能も追加することは可能でしょうか?これはもちろん /my/activity/topics と似ていますが、他のフィルタと組み合わせて、すべてのユーザーのサイドバーに追加すると便利かもしれません。

また、トラッキング/通知設定に関係なく、私が投稿したすべてのトピックに対する in:participated フィルタはどうでしょうか?

「いいね!」 5

素晴らしいですね! :pray: status:unsolved のサポートもいただけると嬉しいです。また、ユーザーによって結果が変わるような assigned:me のようなものでフィルターを構築できれば、さらに素晴らしいと思います。ユースケースとしては、モデレーターに割り当てられたトピックを表示できるリンクを送信するボットです。これにより、フォーラムのモデレーションに必要なすべてのクエリへのリンクを含む汎用的なメッセージをすべてのモデレーターに送信できます。もちろん、Web UI から割り当てられたトピックに簡単に移動できますが、リンクをクリックしたりブックマークしたりできると、ちょっとした QoL 向上になると思います。

「いいね!」 4

現在の機能にはこのような前例がいくつかあるため、このような他のことも確実に検討できると思います。

「いいね!」 3

こんにちは、

これは公開バージョンですか、それとも何らかのベータ版ですか?設定が見つかりませんでした。

Tonyさん、こんにちは:wave:

インスタンスは最新の状態になっていますか?

テストフォーラムには以下の設定があります。

これは、セルフホストだけでなく、Discourseホストフォーラムでも利用可能です。

「実験的」と記載されているように、時間の経過とともに多くの変更やバグ、一貫性のない動作が発生する可能性があります。

「いいね!」 1

Discourse の基本的な機能をプラットフォームに慣れていないコミュニティマネージャーに説明するのに、すでに非常に役立っています。つまり、「トピックのコレクションがあり、それらをさまざまな方法でフィルタリングおよび並べ替えできる」ということです。

これまでのところ、これらのフィルターはインターフェイス全体に分散していましたが、フィルター ルートは、利用可能なオプションにアクセスして学習するための 1 つの中央の場所を提供します。

これを念頭に置いて、さらに 2 つのオプションを含めると役立つでしょう。

  • 日付セクションで、相対時間(過去 1 週間、1 か月、1 年など)でフィルタリングする
  • 並べ替えセクションで、人気度(いいねの数とは異なる)で並べ替える
「いいね!」 5

その機能は気に入っています。ただし、プレーンテキストのみで検索できるようになりたいです。時々、削除されたトピックを見つける必要があるのに、どのユーザーが作成したかわからないため、キーワードで削除されたものを検索する代わりに、多くのトピックを確認しなければなりません。

将来的には、同等性を確保するためにこれを検索に接続することが構想されていますが、残念ながら確定的なタイムラインはありません。

「いいね!」 3

結果を返信数または投票数で並べ替えることはできますか?これを、コミュニティの関心が高い順に機能リクエストをリストし、「実装済み」タグが付いたものを除外するために使用したいと考えていました。しかし、そのようなオプションはないようです。

私のユースケースは、こちらで詳しく説明されています。

「いいね!」 2