Làm cách nào để triển khai trang web có hệ thống đề xuất tương tự như stackoverflow/digg/reddit? Tức là, người dùng gửi nội dung và trang web cần tính toán một số loại "nóng" theo mức độ phổ biến của mục. Dòng chảy như sau:Làm cách nào để triển khai thuật toán giống Digg?
- Người dùng gửi nội dung
- người dùng khác xem và bỏ phiếu về nội dung (giả định 90% số người dùng chỉ xem nội dung và 10% chủ động bỏ phiếu lên hoặc xuống trên nội dung)
- Nội dung mới liên tục được gửi
Làm cách nào để triển khai thuật toán tính toán "độ nóng" của mục được gửi, tốt nhất là trong thời gian thực? Có bất kỳ thực hành hay mẫu thiết kế nào tốt nhất?
tôi sẽ giả định rằng các thuật toán mất sau đây vào xem xét:
- Khi một mục đã được gửi
- Khi mỗi phiếu được đúc
- Khi mục được xem
Ví dụ: một vật phẩm nhận được một số phiếu bầu liên tục sẽ ở lại phần nào "nóng" liên tục trong khi một mục nhận được số phiếu bầu khi lần đầu tiên được gửi sẽ nhảy lên đầu danh sách "nóng" nhưng sau đó giảm xuống khi phiếu bầu dừng lại sắp tới.
(Tôi đang sử dụng MySQL + PHP nhưng tôi quan tâm đến các mẫu thiết kế chung).
câu hỏi liên quan, tài liệu công thức chúng tôi sử dụng: http://meta.stackexchange.com/questions/11602/what-formula-should-be-used-to-determine-hot-questions –