検索フィルター - トピックのみ / 投稿のみ

通常のトピック/投稿の検索でほとんどのユースケースに対応できることは理解していますが、ユーザーから、検索結果をフィルタリングして返信のみ、またはトピック(トピックの最初の返信に相当すると思われます)のみを表示できるようにしてほしいという要望がありました。

これはテーマコンポーネントでも実現可能かもしれませんが、何か明白なことを見落としている場合に備えて、まず質問させていただきました。

よろしくお願いします。

「いいね!」 1

現在、トピックと投稿をすべて検索する機能があります。

トピックタイトルの検索結果を除外したこの機能をご希望ということでしょうか?

「いいね!」 1

高度な検索機能のフィルタリングについて確認しましたか?

トピックと投稿の両方で検索できることはわかっています。現在報告されているのは、トピックと投稿の結果が混在していることであり、Discourse に「トピックのみ」または「投稿のみ」を表示する方法、あるいはその両方(現在はそうなっています)を表示する方法を指示できると良いということです。

結果は無限スクロールインターフェイスで表示されるため、ユーザーがすでにそこにはないことを知っているものを除外できると、ノイズを減らすことができます。

投稿を探していることがわかっている場合、目的のものを見つけるためにトピックもスクロールし続ける理由はありません。

これで明確になったことを願っています。

「いいね!」 1

Discourse では、「トピック」とはすべてのメッセージを意味します。最初の投稿は、元の投稿(OP)または最初の投稿です。

しかし、ボタン New Topic は最初は 1 つの投稿で構成され、返信があるとさらに投稿が増えるトピックを作成するため、混乱を招く可能性があることは理解しています。

それを踏まえると、

は「トピックの最初の投稿のみ」を意味し、実際には in:first フィルターで利用可能です。

最初の投稿以外のすべての投稿を検索することはできません。現時点では、用語、フィルター、カテゴリなどを除外する演算子はありません。

「いいね!」 2

@Canapin様、洞察をありがとうございます。

トピックのみを返すという仕様についてもありがとうございます。完全に失念していました :blush:

回避策として、検索結果が実際の返信を返す際にURLを構築しますが、URL形式が投稿を指定するものと、その逆(トピックを指定するもの)に従うものに style="display:none" を追加するコンポーネント/プラグインを実装することは可能でしょうか?

プラグインの場合、検索結果のどこかに「これは最初の返信である」または「これは最初の返信ではない」を判断する関数があるはずです。それをインターセプトして、新たに追加された特定のフィルターを指定することで、結果の配列に追加されるのをスキップすることは可能でしょうか?

そのコントローラー/モデルが含まれるファイルをご存知でしたら、こちらにリンクしていただけますでしょうか?私も確認してみたいです :slight_smile:

「いいね!」 1

私にとっては未知で奇妙で恐ろしい世界ですが、コードを見ると、コントローラーはここにあります。

検索フィルターはここにあるようです。

そして、Discours Assign が検索にフィルターを追加する方法を見ると、興味深いかもしれません。

「いいね!」 2

@Canapinさん、ありがとうございます。仕事が立て込んでいるため、もう少し余裕ができたら何に取り組めるかの情報を集めています。数週間後にまた確認しますね :slight_smile:

「いいね!」 1