[solved] Thuật toán hiển thị bài viết của bạn bè trên mạng xã hội

Hiện tại mình đang làm một mạng xã hội up ảnh. Mình muốn hiển thị các bài đăng của bạn bè lên new feed kiểu này: chỉ lấy bài đăng những bài đăng mới nhất của 10 bạn bè (mỗi người tối đa 5 bài nếu không có đủ 5 bài thì không sao), khi load đến trang 2 cũng vậy lấy tiếp 10 người tiếp theo (nếu bạn bè ở trang 1 vẫn còn bài đăng mới thì sẽ lấy tiếp) cứ như thế. Tất cả record lấy được mình sắp xếp lại theo thời gian mới nhất hiển thị lên đầu. Tất nhiên là mình không thể lấy toàn bộ record trong database rồi limit rồi sắp xếp :((. Cảm ơn mọi người đã đọc, ai có cách hiển thị khác mình thì comment nhé. feeling :sunny:

1 Like

Thuật toán hiển thị theo thời gian thì quá đơn giản rồi bạn. Như facebook là họ lấy rất nhiều yếu tố sau đó tính điểm, cộng điểm lại hiển thị theo thứ tự điểm từ cao xuống thấp. Vì như tính toán New Feed có giá trị khoảng 7 - 10 bài đăng đầu (Vì ít có người dùng cứ kéo và kéo như vậy họ chỉ chú ý và thực sự có ấn tượng với một số bài đăng đầu). Vì vậy 7 - 10 bài đăng đầu phải là những bài đăng có giá triji nhất với người dùng ko nhất thiết phải là bài đăng mới. Một số ý tưởng cho bạn (Mình bên marketting facebook lên cũng biết một số thuật toán hiển thị của họ, nhưng phải nói là nó THAY ĐỔI LIÊN TỤC VÀ CỰC KÌ PHỨC TẠP VÌ NÓ DỰA VÀO DỮ LIỆU LỚN VÀ CÔNG NGHỆ MÁY HỌC. NÓI ĐƠN GIẢN LÀ NÓ BIẾT NGƯỜI DÙNG THÍCH XEM NHỮNG NỘI DUNG GÌ):
1, Hiển thị theo tương tác của bạn bè. A và B hay liên hệ với nhau thì ưu tiên hiển thị. Tính Điểm
2, Thời gian bài đăng. Tính Điểm. Bài đăng mới điểm cao hơn
3, Bài đăng có lượt tương tác cuối cùng. Tính Điểm
4. THời gian xem bài đăng. Ví Dụ A hay xem bài đăng của B thời gian lâu hơn. Tính Điểm
5, Lượt xem bài đăng. A xem bài đăng của B nhiều hơn thì ưu tiên B. Tính Điểm.
CỘNG ĐIỂM LẠI. ĐIỂM TỪ CAO ĐẾN THẤP SẼ HIỂN THỊ THEO THỨ TỰ TỪ ĐẦU ĐẾN SAU…
Ngoài ra còn kiểu bài đăng: CHỉ text, hình ảnh, text kèm hình ảnh, Video, Album, …
Rất nhiều yếu tố bạn ah. Nhưng nói chung bạn phải theo dõi và biết đc sở thích của họ
Ngoài ra, Facebook còn có cách tối ưu newfeed của họ: Mời khoảng 700 người và cho họ xem các nội dung trên Newfeed của họ và cho họ đánh giá đâu là những nội dung họ thích xem nhất và tính điểm.

2 Likes

cảm ơn bạn! mình cũng định làm tính điểm, vẫn còn cảm thấy nó phức tạp. mình sẽ suy nghĩ thêm :slight_smile:

Hình như là nếu bác không vào một trang nào đó sau một khoảng thời gian thì nó sẽ không hiện lên newsfeed , nhưng nếu bác vào trang đó rồi xem 3-4 bài viết,like các kiểu thì nó sẽ lại nhảy lên :slight_smile:

1 Like

Tạm thời em đang làm đơn giản đã. Chưa làm đến đây :slight_smile: giờ đang nghĩ cách query theo điểm tương tác.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?