Меня попросили написать мой дипломный проект по созданию собственной системы управления контентом SEO; Дело в том, что запрос состоит в том, чтобы реализовать алгоритм PageRank для внутренней поисковой системы этой CMS, чтобы упорядочить результаты запроса по PR. Является ли это возможным? Как я могу начать с этого? CMS построена на PHP и MySql (или PostgreSql). Огромное спасибо заранее.
PageRank во внутренней поисковой системе CMS
Ответы (4)
В Википедии есть некоторая информация об алгоритме Page Rank. Это займет у вас несколько дней.
Затем вы можете объединить это со своим алгоритмом поиска, чтобы получить набор релевантных результатов.
Удачи в твоем задании.
-Мэттью
Вы могли бы создать какой-нибудь массив, а затем отсортировать его, здесь я использовал результаты вашего алгоритма $pageRank
(вы его создали, не так ли?) В качестве ассоциативного ключа для ссылки на объект результата поиска. Хотя, по-видимому, вы можете (в зависимости от производительности вашей системы) хранить весь набор результатов в массиве, если хотите.
$pageRankedResults = array("$pageRankAlgorithmResult" => "$referenceToSearchResultObject")
);
echo "<ol>";
foreach(asort($pageRankedResults) as $key => $value) {
echo "<li>$value</li>";
}
echo "</ol>";
Если у вас есть алгоритм PageRank, вы, вероятно, не захотите рассчитывать его при каждом поиске. Я бы запланировал регулярные расчеты (ежедневно? Еженедельно? В зависимости от того, что наиболее подходит), а затем сохранял бы PR в вашей базе данных.
Затем, когда вы запустите свой SQL-запрос, просто ORDER BY page_rank
Вам нужно придумать алгоритм, который может определять «важность» страницы. Google имеет тенденцию использовать обратные ссылки для определения этого, но использование ключевых слов также является важным фактором. Что делает страницу важной на вашей CMS? Возьмите конкретную страницу или поисковый запрос и сделайте из этого вариант использования. Какая страница должна открываться при выполнении этого поиска и почему она должна открываться? Используйте эту информацию, чтобы определить, что ваш алгоритм должен искать при ранжировании этих страниц.