wc3banderlog
Новичок
Встала задача, расчет рейтинга для публикаций. Имеем следующие сущности: публикация, отзыв на публикацию, оценка отзыва.
Формула:
где r0 - функция среднего значения рейтинга всех публикаций, которое со временем стремится к нулю (таким образом новым публикациям дается шанс попасть немного в топ на некоторое время)
, где n - количество дней(или другая единица измерения), за которое стартовый рейтинг упадет до нуля
R - оценка поставленная в отзыве (например шкала от 1 до 5),
m - количество добавленных отзывов,
V - насколько полезен был отзыв (сумма голосов за и против),
Vc - общее количество голосов за отзыв.
Таким образом если отзыв максимально полезен, то он получит заявленное значение, если же нет, то значение будет меньше, ну тут думаю все понятно.
Подошли к архитектуре.
Текущий рейтинг публикации хранится в самой публикации.
В отзывах хранится разница положительных и отрицательных оценок за него
Сервер крутиться на php, framework bitrix.
Хотелось бы узнать ваше мнение по поводу всего этого и:
- какой период времени задать для стартового рейтинга (т.е. какой n) и как часто пересчитывать его?
- использовать ли средний рейтинг по всем публикациям или средний рейтинг публикаций в корневой категории (например, раздел Спорт)?
- повесить вычисления средних значений на cron или делать все расчеты на ходу? Если на ходу, то как в php их можно перенаправить в отдельный поток (или как это назвать), например, я добавил отзыв/добавил оценку к отзыву, рейтинг публикации изменился, а следовательно и средний рейтинг всех публикаций (что с большим количеством публикаций со временем будет занимать время)
ЗЫ. Простите за сумбур, полночь на дворе)
Формула:

где r0 - функция среднего значения рейтинга всех публикаций, которое со временем стремится к нулю (таким образом новым публикациям дается шанс попасть немного в топ на некоторое время)

R - оценка поставленная в отзыве (например шкала от 1 до 5),
m - количество добавленных отзывов,
V - насколько полезен был отзыв (сумма голосов за и против),
Vc - общее количество голосов за отзыв.
Таким образом если отзыв максимально полезен, то он получит заявленное значение, если же нет, то значение будет меньше, ну тут думаю все понятно.
Подошли к архитектуре.
Текущий рейтинг публикации хранится в самой публикации.
В отзывах хранится разница положительных и отрицательных оценок за него
Сервер крутиться на php, framework bitrix.
Хотелось бы узнать ваше мнение по поводу всего этого и:
- какой период времени задать для стартового рейтинга (т.е. какой n) и как часто пересчитывать его?
- использовать ли средний рейтинг по всем публикациям или средний рейтинг публикаций в корневой категории (например, раздел Спорт)?
- повесить вычисления средних значений на cron или делать все расчеты на ходу? Если на ходу, то как в php их можно перенаправить в отдельный поток (или как это назвать), например, я добавил отзыв/добавил оценку к отзыву, рейтинг публикации изменился, а следовательно и средний рейтинг всех публикаций (что с большим количеством публикаций со временем будет занимать время)
ЗЫ. Простите за сумбур, полночь на дворе)