「ピン留めされていない」トピックの検索で予期せぬ結果が返ってくる

再現手順

  1. https://meta.discourse.org にアクセス
  2. [検索] ボタンをクリック
  3. [オプション] リンクをクリック
  4. [高度な検索] サイドバーの「次の条件のトピック/投稿のみを返す…」で「ピン留めされていない」を選択
  5. [:magnifying_glass_tilted_left: 送信] ボタンをクリック

期待される動作: 一度もピン留めされたことのないトピックの一覧が表示される
実際の動作: 以前はピン留めされていたが、現在はピン留めされていないトピックの一覧が表示される

詳細

検索キーワード in:unpinned を見ると、実際の結果は納得がいきます。しかし、これは「ピン留めされていない」という「人間向けのテキスト」と一致しているとは思えません。「ピン留めされていない」の人間向けのテキストとしては「ピン留めされていない(are unpinned)」を提案します。

さらに、ピン留めされていない、またはピン留めされたことのないトピックを検索できる機能も欲しいです(私が当初検索しようとしていた内容です)。以下のコミットから判断すると、以下のような実装になると考えられます。

advanced_filter(/in:not_pinned/) do |posts|
  posts.where("topics.pinned_at IS NULL")
end

ただし、この特定のフィルタの必要性は非常に稀である可能性が高いため、バグ修正に比べると優先度は低めです :grinning:

「いいね!」 4

そうですね、来週 @sam がこれを割り当ててくれるかもしれませんか?

「いいね!」 3

ここでコピーについてお手伝いが必要です @codinghorror

discourse/config/locales/client.en.yml at bb4e8899c41889f7316e512d6ed89a3847fa655b · discourse/discourse · GitHub

以下のようにすべきでしょうか:

「私にはピン留めされていないが、ピン留めされているトピック」

「私がピン留め解除したトピック」

確信が持てません…おそらく、ユーザーに説明するのが混乱を招くだけなので、このオプションを UI から削除するべきかもしれません。

@lee-dohm 特別な検索演算子が必要になった理由について詳しく説明していただけませんか。一般的に、トピックの 99.99% はピン留めされていません。検索結果からピン留めされたトピックを除外するのは、非常に特殊なケースのように思えます(in:pinned はすでに機能しています)

「いいね!」 1

単に「ピン留め」で十分です。「ピン留めされているが自分向けではない」という状態を探している時点で、誰もそんなこと気にしないと思います。ピン留めされたトピックかどうか、それが「私個人」にとってピン留めされているかどうかは関係ありません。なぜ混乱を招くオプションを提供する必要があるのでしょうか。

「いいね!」 3

はい… @vinothkannans さん、UI から「Are not pinned」を削除し、翻訳などを整理してください。

「いいね!」 1

返信のないトピックを検索していたところ、上位の結果の多くは「X カテゴリについて」というピン留めされたトピックでした。人間の未回答トピックを探すことが意図だったので、「システムユーザー以外」と指定する簡単な方法が見つからなかったため、「ピン留めされていない」が最も近い条件だと考えました。Meta で同様の検索をさらにテストしたところ、「about」はストップワードのようで、私のテスト検索では「about」を含むトピックも、ピン留めされたトピックも上位に表示されませんでした。したがって、さらに調査を進めた結果、この機能リクエストは実際には不要である可能性が高いです👍

「いいね!」 3

以下のコミットでフィルタが削除されました

「いいね!」 6