Статистика и рекомендации для пользователей

MuXaJIbI41981

Новичок
Статистика и рекомендации для пользователей

Стоит следующая задача.
На сайте есть больше 100000 страниц с информацией. Сейчас идет сбор статистики с какого айпи какая страница открывалась.
После сбора статистики надо будет обработать эти данные так, чтобы потом было удобно выдавать рекомендации пользователям.
То есть когда кто то будет открывать какую то страницу, то надо будет просмастреть кто еще смотрел эту страницу. Далее определить какие страницы эти пользователи так же просматиривали и на основе их выдать что можно посмотреть еще тому пользователю, который открыл эту страницу.
Так то задача вроде простая. Но хотелось бы узнать может кто то реализовывал подобные алгоритмы. Чтобы обработка не занимала много времени, так как при массовой перегенерации страниц время их генерации не увеличилось в разы.
 

x-yuri

Новичок
в бд к каждой странице добавляешь список URL - последние переходы. Обновлять этот список нужно следовательно при каждом переходе
Можно делать это в фоне каким-нибудь cron'ом. Тогда можно сделать по-качественнее - не просто последние просмотры, а куда чаще всего переходили
 

x-yuri

Новичок
что значит "После сбора статистики"? она один раз будет собираться? и в каком виде она будет? в бд? обновление рекомендуемой пользователю информации должно происходить при каждом запросе страницы?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
MuXaJIbI41981 подробный готовый алгоритм Вам тут не напишут. Какой именно совет Вам нужен?

Не вижу в Вашем вопросе "Теории программирования" - это конкретный практический вопрос.
 

MuXaJIbI41981

Новичок
x-yuri
да она будет собираться довольнотаки редко ... где то по неделе раз в квартал ... щас она просто пишется в файл в виде id|ip
нет страницы статические, но они начнут перегенерятся при смене шаблонов и встраивания туда рекомендаций ... после сбора надо будет ее занести в базу но предварительно обработав чтобы потом при выборе рекомендаций при генерации этих страниц не происходило больших нагрузок.
grigori
я и не прошу готовый алгоритм ... хотелось бы узнать как лучше хранить данные в базе исходя из требований чтобы не производить поом больших расчетов ... сразу подготовить рекомендации для такого количества страниц это тоже накладно
 

x-yuri

Новичок
ну во-первых можно сразу в бд писать. Там же на каждый запрос одна запись будет добавляться
после сбора статистики скрипт преобразует ее в таблицу типа "урл, рекомендация". Лучше, конечно, чтобы у каждой страницы был числовой идентификатор
запускать ночью, чтобы никто не заметил ;-)

-~{}~ 06.01.09 09:52:

стастистика, кстати, должна иметь вид "страница источник, страница назначение". По-крайней мере такая инфомрация должна быть в наличии
 

MuXaJIbI41981

Новичок
в базу данных сразу писать не рекомендуется в задании, так как в сутках больше 100кк хитов присходит ... представьте какая эта лищняя нагрузка ... хотя нет писать можно было бы ... но тогда при обработки этой статистики будет уходить много времени ... а так записали временно в файл ... потом обработали .. подготовили к удобному виду и занесли в базу ... везде пишеться id ... это я что то просто не сказал сначала ... ночью запускать нельзя так как основная аудитория американцы ... и даже когда у нас день и они все спят там больше 1000 человек в онлайне ... вот такие пироги :(
 

Modjo

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

x-yuri

Новичок
представьте какая эта лищняя нагрузка ...
а ты попробуй сделай и посмотри на вклад в нагрузки этих запросов к бд
ночью запускать нельзя так как основная аудитория американцы ... и даже когда у нас день и они все спят там больше 1000 человек в онлайне ...
ну если все так страшно то преобразовывать статистику в рекомендации можно на др машине
а если переходы хранить в базе, а инфу с советами генерить по необходимости и хранить в кеше (читай в файле) с датой годности? хотя наверное это же и предлагал юрий
а поиск рекомендаций при этом быстро происходить будет?

-~{}~ 06.01.09 18:45:

или типа для каждой страницы по файлу?
 

Modjo

Новичок
угу, по файлу
тут подумалось следом - а почему тогда в файле? почему бы и генеренные советы тоже в базе не хранить? только отдельно от переходов
 
Сверху