Sauberer ist es, die Datei »regex-urlfilter.txt« im »conf« -Verzeichnis von Nutch zu benutzen. Hier lassen sich Ausnahmen definieren, bereits vorhanden sind Regeln die etwa das Einlesen von CSS-Dateien oder Bildern verhindern. So veranlasst
-^(http|https)://www.wikipedia.de
beispielsweise den Crawler dazu, Links auf http://www.wikipedia.de gar nicht zu verfolgen. Noch besser ist es jedoch, eine Whitelist zu definieren und so nur einzelne Server zu erlauben:
+^(http|https)://intranet.company.local
Oder auch mehrere Adressen, mit Regex-Ausdrücken spezifiziert:
+^http://([a-z0-9\-A-Z]*\.)*.company.local/([a-z0-9\-A-Z]*\/)*
Wichtig ist dabei, die letzte Zeile zu korrigieren – sie gibt die generelle Policy vor:
# accept anything else +.
ersetzt der Admin am besten durch:
# deny anything else -.
Nur auf diese Weise greift die Whitelist, der Kommentar in der vorletzten Zeile erleichtert beispielsweise der Urlaubsvertretung die Arbeit.
Es kann losgehen
Nun ist alles bereitet, der Suchvorgang kann starten, wenn der Admin dem Crawler noch das Ziel – oder besser den Startpunkt – seiner Recherche nennt. Dazu legt er unter »/opt/nutch/« Unterverzeichnisse und Dateien an, die die URLs enthalten:
mkdir /opt/nutch/urls echo "http://intranetserver.company.local" > /opt/nutch/urls/seed.txt
Beliebig viele URLs sind hier erlaubt. Als Nächstes startet der Crawler:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre/ /opt/bin/crawl /opt/nutch/urls/ /opt/nutch/IntranetCrawler/ http://localhost:8080/solr/ 10
Der erste Parameter des Crawl-Befehls nennt das Verzeichnis, in dem sich die oben angelegte »seed.txt« -Datei befindet. Nach dem Crawler ruft Nutch so genannte Fetcher-Prozesse auf. Diese laden und parsen die gefundenen Inhalte. Die Option »/opt/nutch/IntranetCrawler« gibt ein Verzeichnis an, in das Nutch diese Inhalte legen soll. Es folgt die Adresse samt Port des Solr-Servers, in dem Nutch die Suchergebnisse ablegt.
Die Zahl 10 am Ende beziffert die Durchläufe des Crawlers. Je nach gefundenen Seiten sowie Suchtiefe kann es einige Zeit dauern, bis der Befehl fertig ist. Für initiale Tests mag es besser sein, mit 1 oder 2 zu beginnen.
Wenn der Fetcher die Inhalte herunterlädt und parst, findet er in der Regel weitere Links auf andere Inhalte. Diese landen in seiner Link-Datenbank im oben erwähnten Verzeichnis. Beim nächsten Durchlauf liest der Crawler auch diese URLs und übergibt sie an Fetcher-Prozesse. Das führt dazu, dass diese To-do-Liste mit Links für den Crawler am Anfang sehr schnell anwächst, weil dieser pro Durchlauf immer nur eine gewisse Menge an Inhalten verarbeitet, dabei aber immer wieder neue Links findet.




