사용자의 게시물이 댓글과 좋아하는 것, 그리고 만든 날짜로 구성된 경우 가장 높은 게시물의 댓글 및 좋아요 및 날짜를 포함하는 일종의 순위를 어떻게 구현할 수 있습니까? 최저로.모든 사용자의 게시물을 가장 높은 것부터 가장 낮은 것까지
1
A
답변
2
당신이 찾고있는 것을 Ranked Feeds이라고합니다. 순위가 매겨진 피드는 맞춤 활동 순위를 허용합니다. 자신의 수식을 사용하여 각 활동의 점수를 계산할 수 있습니다. 귀하의 활동에 필요한 정보 (예 : likes_count
, comments_count
)가있는 한이 정보를 사용하여 피드의 순위를 매길 수 있습니다.
다음은 순위 식의 간단한 예제 :
{
"score": "likes_count + comments_count",
"defaults": {
"likes_count": 0,
"comments_count": 0
}
}
매우 일반적인 방법은 활동의 나이가 몇 가지 인기 점수를 결합하는 것입니다. 이를 수행하려면 time decay 함수 중 하나를 사용하고 결과에 좋아요와 주석의 합계를 곱하십시오. 예를 들어
:
{
"functions":{
"popularity_gauss":{
"base":"decay_gauss",
"scale":"5d",
"offset":"1d",
"decay":"0.3"
}
},
"defaults": {
"likes_count": 0,
"comments_count": 0
},
"score":"popularity_gauss(time) * (likes_count + comments_count)"
}
예는 스케일 오프셋 및 감쇠 파라미터와 decay_gauss
함수를 사용한다. 선택한 매개 변수를 사용하면 활동이 1 일 임계 값을 초과 할 때 점수가 감소합니다. 5 일 된 활동의 경우 점수가 3 분의 1로 줄어 듭니다.
동기화 데이터
우리가 likes_count
및 comments_count
명확하게 시간이 지남에 따라 변화하는 예에서 사용 된 두 개의 카운터. 순위가 매겨진 피드가 작동하려면이 값을 동기화해야합니다. 활동 데이터는 using the APIs으로 업데이트 할 수 있습니다.
참고 : 활동 업데이트 API는 부분 업데이트를 지원하지 않으므로 트랜잭션 활동을 업데이트하지 않는 것이 좋습니다 (예 : 사용자가 like -> API 호출을 보내 X에서 X + 1로 카운터 업데이트). X 초마다 대량으로 업데이트됩니다.
crontab 명령 예를 매 5 분 :
*/5 * * * * /path/to/script/update_activities_counters
관련 문제
- 1. 가장 높은 것부터 가장 낮은 것까지 목록 정렬
- 2. 가장 높은 것부터 가장 낮은 것까지 선택 옵션을 시작하십시오.
- 3. .NET에서 가장 큰 것부터 가장 작은 것까지
- 4. 가장 큰 것부터 가장 큰 것까지 합치기
- 5. 랜덤 넘버 생성기는 C++에서 가장 낮은 것부터 가장 높은 것까지 어떻게 올 수 있습니까?
- 6. 파이썬에서 barchart를 가장 높은 것부터 가장 낮은 것까지 정렬 할 데이터를 정렬합니다.
- 7. 가장 낮은 것부터 가장 큰 것부터 배열 정렬
- 8. 숫자 배열을 가장 낮은 것부터 가장 큰 것으로 바꾼다
- 9. 다차원 배열을 정렬합니다. 가장 낮은 것부터 높은 것까지 첫 번째 요소 만 정렬되지 않은 채로 있습니다.
- 10. 사용자 정렬 목록이 가장 작은 것부터 가장 큰 것까지
- 11. SQL에서 가장 일반적인 값을 찾고 가장 높은 것부터 가장 낮은 것 (오름차순)으로 정렬
- 12. C++ mergesort 두 패스로 다항식을 가장 낮은 것부터 가장 높은 것 순으로 표시
- 13. MySQL - 하위 문자열을 가장 낮은 것부터 가장 큰 것으로 정렬합니다.
- 14. mysql은 가장 높은 값에서 가장 낮은 값 순으로 행을 표시합니다.
- 15. 가장 큰 것부터 작은 것까지 정수 목록을 정렬하는 방법
- 16. 가장 높은 값에서 가장 낮은 값으로 표시 할 변수를 주문하십시오.
- 17. 배열 A의 숫자가 낮은 것부터 높은 것까지 포함 할 수있는 함수.
- 18. 분산 된지도의 가장 낮은/가장 높은 키 찾기
- 19. C#에서 가장 높은 정수와 가장 낮은 정수를 어떻게 결정합니까?
- 20. Pandas Python의 groupby 데이터 중 가장 큰 것부터 가장 작은 것까지 정렬하는 방법
- 21. 가장 오래된 것부터 가장 오래된 것까지 정렬 된 사진 앨범을 표시하는 방법
- 22. 티켓을 가장 오래된 것부터 가장 오래된 것으로 나열하는 방법은 무엇입니까?
- 23. 가장 높은 순위에서 가장 낮은 순위로 연결될 때의 처리 관계
- 24. 직원의 급여 사이의 differrence을 찾아 정렬 가장 높은 가장 낮은
- 25. 가장 높은 가격과 가장 낮은 가격의 매일 차이 계산
- 26. PHP는 숫자를 가장 높은 순서에서 가장 낮은 순서로 정렬합니까?
- 27. 모든 높은 값 중 가장 낮은 값을 찾습니다.
- 28. WordPress, 가장 높은 댓글을 기반으로 게시물을 표시
- 29. 가장 큰 것에서 가장 작은 것까지 무작위 배열의 목록을 정렬하십시오.
- 30. 가장 낮은 값에서 가장 큰 값으로 STL 맵 정렬
이 데이터 층에 있습니다. 당신은 테이블에 게시물 순위를 추가하고 날짜와 사용자별로 정렬하거나 그룹화 할 수 있습니다. 또한 코드와 특정 문제로 특정 질문을 게시함으로써 SO에서 더 나은 행운을 찾을 수 있습니다. –