6

私たちが取り組んでいるプロジェクトには、SO のものと同様の「評価」システムが必要です。ただし、私たちの場合、賛成票で「タグ付け」する必要がある複数のエンティティがあります(増分のように、賛成票のみで、反対票を投じることはありません)。エンティティの種類に関係なく、評価の高い順にすべてのエンティティを表示する必要がある場合があり、基本的には結果セットを混ぜ合わせていると思います。柔軟でスケーラブルであるように、これを実装するためにどのデータ構造/アルゴリズムを使用していますか?

4

1 に答える 1

6

reddit のランキング アルゴリズムは非常に優れているため、コピーしない場合でも、それを確認することは非常に理にかなっています。


エントリが投稿された時刻 A と 2005 年 12 月 8 日午前 7 時 46 分 43 秒の時刻 B を考えると、秒単位の差としてt sが得られます。

t s = A - B

x は、賛成票数 U と反対票数 D の差です。

x = U - D

どこ

y = 1 if x > 0
y = 0 if x = 0
y = -1 if x < 0

z は x と 1 の絶対値の最大値です。

z = |x| if |x| >= 1
z = 1 if |x| < 1

関数 ƒ(t s , y, z)として評価があります。

ƒ(t s , y, z) = log 10 z + (y • t s )/45000


于 2008-08-29T17:20:34.947 に答える