Просмотр темы
Поиск новых и популярных страниц для пользователя
|
|
Vveb--ws |
Опубликовано 19.02.2019 17:23
|
Опытный пользователь Сообщений: 379 Зарегистрирован: 25.11.2010 14:16 |
Допустим пользователь пришёл на сайт. Мне надо подобрать для него набор новых и популярных страниц, которые наиболее высоко оценили другие пользователи и которые он ещё не видел. сайт развлекательный и потому показывать "страницы этой категории" "новые страницы" и "лучшие страницы" особого смысла нет. как я обычно делаю. Какой алгоритм вы предложите? 1) Я поставил ему куку с id 2) Делаем поле "оценка страницы" "rating" как квадрат разности like и dislike 3) Все id просмотренных пользователем страниц записываем в файл. а при обращении к сайту эксплодим его в массив $user_viewed_pages. 4) по крону или периодически делаем выборку всех страниц сайта из БД "ORDER BY rating DESC" записываем в файл в массив $all_pages все имеющиеся в БД id страниц сайта (некоторые могут быть удалены). вначале самые лучшие. 5) находим первые 13 страниц которых нет в массиве $user_viewed_pages. 12 - для отображения меню "похожих страниц" 6) если не нашли, делаем новую выборку из БД пока не найдём. 7) вносим в список $user_viewed_pages текующую страницу 8) отображаем страницу и меню "похожих страниц" чё скажете ? немного смущает скорость работы сравнения 2 массивов с тыщами id. но наверное хостинг потянет. всё сводится к 1 функции array_diff(): https://php.ru/forum/threads/kak-iz-odnogo-massiva-udalit-sxodnye-ehlementy-drugogo.14532/ - точно мой пример ! http://php.net/manual/ru/function.array-diff.php http://php720.com/lesson/37 Изменил(а) Vveb--ws, 19.02.2019 18:04 PHP-Fusion 7 Bogatyr - бесплатная мультиязычная CMS для блога, форума, фотогалереи vk.com/phpfusion Создаю интернет-магазины и блоги, лендинги, форумы. Telegram: t.me/Vova_Kazakov |
|
|
Polarfox |
Опубликовано 19.02.2019 22:05
|
Администратор Разработчики Группа поддержки Сообщений: 3387 Зарегистрирован: 20.08.2010 14:03 |
и зачем?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
|
|
|
Vveb--ws |
Опубликовано 20.02.2019 20:49
|
Опытный пользователь Сообщений: 379 Зарегистрирован: 25.11.2010 14:16 |
Vveb--ws написал: Мне надо подобрать для него набор новых и популярных страниц, которые наиболее высоко оценили другие пользователи и которые он ещё не видел. чтобы он читал. PHP-Fusion 7 Bogatyr - бесплатная мультиязычная CMS для блога, форума, фотогалереи vk.com/phpfusion Создаю интернет-магазины и блоги, лендинги, форумы. Telegram: t.me/Vova_Kazakov |
|
|
ovas |
Опубликовано 21.02.2019 17:44
|
Опытный пользователь Сообщений: 232 Зарегистрирован: 10.05.2016 13:40 |
Гугл с Яндексом в сторонке нервно курят
|
|
|
Polarfox |
Опубликовано 21.02.2019 21:02
|
Администратор Разработчики Группа поддержки Сообщений: 3387 Зарегистрирован: 20.08.2010 14:03 |
просто исключи страницы которые он видел, сделай доп таблицу куда пиши что он видел, либо массив в печенье где отмечены страницы которые он видел. можно и иначе, суть ты понял. Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
|
|
|
Vveb--ws |
Опубликовано 21.02.2019 21:36
|
Опытный пользователь Сообщений: 379 Зарегистрирован: 25.11.2010 14:16 |
Polarfox написал: просто исключи страницы которые он видел, сделай доп таблицу куда пиши что он видел, либо массив в печенье где отмечены страницы которые он видел. можно и иначе, суть ты понял. ну я ж это и предлагаю. Изменил(а) Vveb--ws, 21.02.2019 23:32 PHP-Fusion 7 Bogatyr - бесплатная мультиязычная CMS для блога, форума, фотогалереи vk.com/phpfusion Создаю интернет-магазины и блоги, лендинги, форумы. Telegram: t.me/Vova_Kazakov |
|
Поделиться этой темой | |
Социальные закладки: | |
URL: | |
BBcode: | |
HTML: |
Перейти на форум: |