0

ランク付けする必要がある何千もの投稿がある Reddit.com のような Web サイト アルゴリズムをコーディングする方法を学ぼうとしています。彼らのランキングアルゴリズムは次のように機能します(読む必要はありません。私が持っている一般的な質問です):http://amix.dk/blog/post/19588

現在、データベースに投稿が保存されています。日付を記録し、それぞれに賛成票と反対票のフィールドがあるため、記録を保存しています。ランキングをどのように保存しているのか知りたいです。特定の投稿にランキング値があり、時間の経過とともに変化する場合、ランキングをどのように保存できますか?

それらが保存されていない場合、ユーザーがページをロードするたびにすべての投稿をランク付けしますか?

いつ投稿を保存しますか?cron ジョブを実行して、すべての投稿に x 分ごとに新しい値を自動的に付与しますか? それらの値を保存しますか? これは一時的なものです。たぶん、その投稿が最小スコアに達して忘れられるまで?

4

2 に答える 2

1

私は実際にランキングシステムの説明を読みました、そして私が正しければ彼らは現在の時間ではなく、投稿の提出の時間を気にします。これは、スコアが2ポイント変化することを意味します。1)投稿が送信されたとき、2)誰かが投稿に賛成または反対票を投じたとき

したがって、何かを投稿するとき、および誰かが賛成または反対するときに、スコアを(再)計算する必要があります。スコアを再計算することはサーバーにとってそれほど重くはないので(実際にはまったく)、投票の変更を再計算するだけです!

于 2012-10-01T11:39:16.387 に答える
0

ほとんどの場合、ある種のキャッシュを使用するでしょう。、 、および に加えてpost_timeup_votes、およびがありdown_votesます。20 分を超える場合は、再度ランク付けし、そうでない場合は、キャッシュされたランクを表示します。current_ranklast_rankedlast_ranked

別のアプローチは、ランク付けしてランクを保存することです (つまりcurrent_rank、投稿が賛成票または反対票を投じられるたびに、また定期的に (X 分ごと))、データベースにランクを尋ねることができます。 ) 最新の。

于 2012-10-01T11:33:36.850 に答える