Aus Linux-Magazin 02/2016

Im Eigenbau: Ein indizierender Suchmaschinenserver im Firmennetz (Seite 3)

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.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben