Входящие: site_id, page_url
Возвращаемые: TRUE если без ошибок, иначе FALSE.
1) Получаем содержимое страницы по указанному url
2) Извлекаем из БД информацию о сайте по указанному id
3) Если плохой url, timeout, петля перенаправлений и так далее, то добавляем страницу и устанавливаем для неё статус добавления с ошибкой. Также добавляем её к текущему списку страниц у сайта и выходим с FALSE.
4) Проверка кода возврата. Если код возврата не 200, то добавляем страницу и устанавливаем для неё статус добавления с ошибкой кода возврата и добавляем её к текущему списку страниц сайта. Выходим с FALSE.
5) Получаем кодировку страницы и перекодируем в UTF-8.
6) Если у сайта в настройках указаны специальные классы, в которых находятся заголовок и содержимое страницы, то извлекаем их оттуда, иначе берём содержимое метатега title и весь текст, что нам попадается.
7) Выкидываем из текста всё лишнее (теги, цифры, ненужные слова и т.д.).
8) Если слов в тексте меньше, чем M, то выходим с ошибкой "недостаточно текста", добавляя страницу в БД, сохраняя только заголовок.
9) Стеммизируем слова, оставляя основу слова.
10) Строим частотный массив.
11) Выбираем N (сейчас = 20) слов, которые чаще всего употребляются.
12) Берём описание страницы K символов.
13) Добавляем страницу в БД с успешным статусом. Добавляем страницу к списку страниц сайта.
14) Записываем слова, их повторяемость и частотность для каждой страницы в БД, сохраняя для каждого слова список страниц, на котором оно встретилось. Если слова в БД нет, то добавляем, иначе обновляем счётчик повторяемости +1.
15) Находим похожие страницы
16) Конец. Вернуть TRUE.
Прочтите следующие тексты, чтобы избежать недопонимания:
Объявление можно закрыть, нажав на крестик справа вверху.
Алгоритм добавления страницы
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость