Глубина ссылки означает, что количество «прыжков» страницы находится далеко от корня, где «прыжок» означает переход по ссылке на странице.Причина, по которой Nutch имеет это ограничение, заключается в том, что ссылки, расположенные очень «далеко» от главной страницы, вряд ли будут содержать много информации (главная страница будет содержать ссылку на самую важную информацию, поэтому чем дальше вы получаете, тем более подробную информацию вы находите),хотя их может быть очень много, поэтому они занимают много места для хранения, вычисляют время для ранжирования и полосы пропускания.
Таким образом, Nutch использует схему алгоритма, известную как поиск с ограниченной глубиной ограничить его время работы и использование пространства.Если бы он не использовал эту эвристику, ему пришлось бы сканировать весь сайт, чтобы ранжировать все страницы в нем, и найти верхнюю N .
. Чтобы выполнить сканирование до глубины 3, выполните это.алгоритм и дать ему границу глубины три.Хорошая особенность поиска с ограничением по глубине состоит в том, что это вариант поиска в глубину (DFS), поэтому он достаточно компактен:
function depth-limited-crawl(page p, int d)
if d == 0
return
/* do something with p, store it or so */
foreach (page l in links(p))
depth-limited-crawl(linked, d-1)
И нет, сайт в целом не может быть представлен какбинарное дерево;это ориентированный граф.Если вы как-то удалите обратные ссылки, то оно станет многостраничным деревом.В любом случае, многие сайты слишком велики для вашего сканера.