Apache Nutch 2.3.1 отдает предпочтение начальным доменам в точке выбора
Я настроил apache Nutch 2.3.1 с полной экосистемой Hadoop/Hbase. Я хочу, чтобы мой сканер больше отдавал предпочтение тем доменам, которые заданы в seed в каждой итерации. Согласно моим испытаниям; Он может завершиться в любом направлении, т.е. выбрать все URL-адреса из исходящих ссылок или наоборот. Допустим, я хочу, чтобы 40% выбранных URL были из исходящих ссылок (отличных от заданных в seed), а 60% URL должны принадлежать доменам, которые указаны в seed. Возможно ли это и как?
Я думаю, что это шаг генератора, который вызывает это поведение.
1 ответ
Во-первых, в отношении 60%, 40% Nutch не предлагает никакого встроенного механизма. При этом я думаю, что многое из того, что содержится в этом ответе ( /questions/21182733/apache-nutch-231-upravlenie-domashnej-stranitsej-sajta/21182737#21182737), применимо здесь.
Генератор отсортирует URL-адреса по количеству баллов, а затем соберет первые n URL-адресов для следующего цикла. Одним из способов было бы сначала добавить высокий балл в начальном файле ( https://github.com/apache/nutch/blob/master/src/java/org/apache/nutch/crawl/Injector.java#L80), так что когда URL-адреса добавляются в ваш crawldb, этот высокий балл будет распространяться на исходящие ссылки, поэтому, когда наступит следующий цикл, у вас будет некоторое "предпочтение" для этих исходящих ссылок, исходящих из вашего исходного файла.
Это может добавить немного шума, учитывая, что у вас может быть ссылка на начальный URL, указывающая на другой домен, и оценка будет также распространяться. Это можно исправить с помощью настраиваемого атрибута в начальном файле и настраиваемого фильтра оценки, чтобы вы получили более высокий балл для этих ссылок в одном домене.
Но если вы действительно хотите достичь соотношения 60/40 (или чего-то детерминированного), я думаю, что вы можете использовать собственный генератор, когда у вас есть полный контроль над тем, какие URL сканировать.