サイトでネストされた返信(階層型返信)を有効にしている場合、メンバーが返信を**「ホット(Hot)」**順に並べ替えることができます。この並べ替え順序は、単に「いいね」が多い投稿や最新の投稿ではなく、現在実際に人々が参加している議論を前面に表示します。
なぜ必要なのか
「トップ(Top)」順の並べ替えは、トピックの存続期間中に蓄積された「いいね」を重視するため、初期に人気があった投稿がずっと上位に固定されがちです。一方、「最新(New)」順の並べ替えは最新のアクティビティを表示しますが、何が読む価値があるのかという文脈が欠如しています。「ホット(Hot)」順はこれらの中間に位置します。それは「いいね」をもらっているかつ「最近」にその「いいね」を得ている返信を優先するため、トピックの深い部分で活発に行われている会話が進行中に上位に浮上し、議論が沈静化すると優雅に順位を下げます。
これはフラットなトピックよりもネストされた返信の方が重要度が高まります。なぜなら、アクティビティはサブスレッド内で行われることが多いためです。「ホット」順の並べ替えはこの点を考慮しています。3段階も深い階層に埋もれていた返信が話題になると、その親スレッドも一緒に順位を上げ、読者が実際にそれを見つけることができるようになります。
仕組み
各返信には、以下の3つの要素に基づいてホットスコアが割り当てられます。
- エンゲージメント - 「いいね」と直接の返信。重み付けされ対数スケールで調整されており、特定の投稿が永遠に支配することを防ぎます
- 新鮮さ - 新着投稿に対するボーナス。半減期は7日で減衰するため、既存の投稿に対しても新しい投稿が公平なチャンスを得られます
- スレッドのアクティビティ - ホットな返信は、そのスコアを先祖(親スレッド)に伝播します(階層ごとに小さなペナルティを引きます)。これにより、個々の投稿だけでなく、ホットな議論を含んでいるスレッド自体が浮上します
技術的な側面では、ホットスコアはオンデマンドで計算されます。誰も「ホット」順に並べ替えていないトピックについては何も計算されません。誰かがトピックの「ホット」順並べ替えを初めてリクエストすると、バックグラウンドジョブでスコアが計算されキャッシュされます。そのリクエストは「トップ」順にフォールバックし、以降のアクセスでは実際のスコアが使用されます。キャッシュされたスコアは30分間有効とみなされます。30分経過後も、次のリクエストではキャッシュされた順序が即座に返され、バックグラウンドで更新がキューに追加されます。
いくつかの合理的な省略処理も実装されています。非常に小さなトピック(投稿が5件以下)や、30日以上新しい投稿がないトピックについては、ホットスコアで意味のある違いを生むものがないため、単に「トップ」順を使用します。実際には、ホット順並べ替えは、差が出ないサイト部分では実質ゼロの負荷しか追加しません。
有効にする方法
- サイト全体、および対象トピック(グローバルデフォルトまたはカテゴリ設定を通じて)でネストされた返信が有効である必要があります
- 管理設定で
nested replies hot sort enabled(ネストされた返信のホット順並べ替えを有効化)を有効にします。これにより、並べ替えオプションに「hot」が表示されます - 必要に応じて、
Nested replies default sort(ネストされた返信のデフォルト並べ替え)でデフォルトの並べ替え順序を設定できます
スコアリングの計算式(いいねの重み、返信の重み、新鮮さの半減期など)は、コミュニティのペースに合わせて調整する必要がある場合は、隠しサイト設定でチューニング可能です。ただし、デフォルト値はそのままでも十分に動作するように設計されています。
Happy Discoursing!