PageRank во внутренней поисковой системе CMS

Меня попросили написать мой дипломный проект по созданию собственной системы управления контентом SEO; Дело в том, что запрос состоит в том, чтобы реализовать алгоритм PageRank для внутренней поисковой системы этой CMS, чтобы упорядочить результаты запроса по PR. Является ли это возможным? Как я могу начать с этого? CMS построена на PHP и MySql (или PostgreSql). Огромное спасибо заранее.


person bobighorus    schedule 12.09.2009    source источник


Ответы (4)


В Википедии есть некоторая информация об алгоритме Page Rank. Это займет у вас несколько дней.

Затем вы можете объединить это со своим алгоритмом поиска, чтобы получить набор релевантных результатов.

Удачи в твоем задании.

-Мэттью

person The Pixel Developer    schedule 12.09.2009
comment
Большое спасибо за ответ, я уже много читал о PR, но мне нужна помощь, чтобы написать это в коде. :) - person bobighorus; 13.09.2009

Вы могли бы создать какой-нибудь массив, а затем отсортировать его, здесь я использовал результаты вашего алгоритма $pageRank (вы его создали, не так ли?) В качестве ассоциативного ключа для ссылки на объект результата поиска. Хотя, по-видимому, вы можете (в зависимости от производительности вашей системы) хранить весь набор результатов в массиве, если хотите.

$pageRankedResults = array("$pageRankAlgorithmResult" => "$referenceToSearchResultObject")
                     );
echo "<ol>";
foreach(asort($pageRankedResults) as $key => $value) {

echo "<li>$value</li>";

}
echo "</ol>";
person David says reinstate Monica    schedule 12.09.2009
comment
Большое спасибо за ответ ... Я не создавал PR-алгоритм ... Понятия не имею ... На самом деле я реализовал в своей внутренней поисковой системе механизм результатов запроса, основанный на релевантности запрос, предполагающий разницу в весе, если поисковый запрос находится в заголовке страницы, или в ‹h1› или ‹p› и так далее ... но как я могу сопоставить эти результаты с оценкой PR? - person bobighorus; 12.09.2009

Если у вас есть алгоритм PageRank, вы, вероятно, не захотите рассчитывать его при каждом поиске. Я бы запланировал регулярные расчеты (ежедневно? Еженедельно? В зависимости от того, что наиболее подходит), а затем сохранял бы PR в вашей базе данных.

Затем, когда вы запустите свой SQL-запрос, просто ORDER BY page_rank

person MattBelanger    schedule 12.09.2009
comment
Это неплохая идея; но ... по-видимому, вам понадобится несколько результатов page_rank; для поиска по запросу "точильный камень" результаты page_rank существенно отличаются от результатов поиска по запросу "ночлег и завтрак". (Я понятия не имею, какие поисковые запросы он ожидал бы.) - person David says reinstate Monica; 12.09.2009
comment
Насколько мне известно - что, по общему признанию, неполное - PageRank (по крайней мере, исходная итерация) не имеет отношения к используемому поисковому запросу. Это просто рейтинг того, насколько доверяют странице в целом. - person MattBelanger; 12.09.2009
comment
Большое спасибо за ответ. Infact PR не имеет отношения к термину запроса ... поэтому я понятия не имею, как мне упорядочить результаты поиска как по PR, так и по релевантности запроса ... - person bobighorus; 12.09.2009
comment
Вам нужно будет найти некоторую взаимосвязь между релевантностью, не связанной с PR, и PR, чтобы определить общий результат запроса. Если вы хотите достичь 50/50, вы можете взять оценку релевантности из 10 и свой рейтинг PR из 10 и сложить их вместе, при этом наивысший общий балл будет вашим лучшим результатом. Или вы берете все результаты, которые соответствуют термину запроса, и просто сортируете их по PR, что делает PR вашей оценкой релевантности. - person MattBelanger; 12.09.2009
comment
Большое спасибо за ответ ... У вас есть предложения по внедрению алгоритма PageRank в PHP? - person bobighorus; 12.09.2009

Вам нужно придумать алгоритм, который может определять «важность» страницы. Google имеет тенденцию использовать обратные ссылки для определения этого, но использование ключевых слов также является важным фактором. Что делает страницу важной на вашей CMS? Возьмите конкретную страницу или поисковый запрос и сделайте из этого вариант использования. Какая страница должна открываться при выполнении этого поиска и почему она должна открываться? Используйте эту информацию, чтобы определить, что ваш алгоритм должен искать при ранжировании этих страниц.

person Joe Phillips    schedule 12.09.2009