Übersicht
Der Crawler von Fess ist eine Funktion, die automatisch Inhalte von Websites, Dateisystemen usw. sammelt und im Suchindex registriert. Dieser Leitfaden erläutert die grundlegenden Konzepte und Konfigurationsmethoden des Crawlers.
Grundlegende Crawler-Konzepte
Was ist ein Crawler?
Ein Crawler ist ein Programm, das automatisch Inhalte sammelt, indem es von angegebenen URLs oder Dateipfaden ausgehend Links folgt.
Der Crawler von Fess hat folgende Merkmale:
Multi-Protokoll-Unterstützung: HTTP/HTTPS, Dateisystem, SMB, FTP usw.
Geplante Ausführung: Regelmäßiges automatisches Crawlen
Inkrementelles Crawlen: Aktualisierung nur geänderter Inhalte
Parallele Verarbeitung: Gleichzeitiges Crawlen mehrerer URLs
Einhaltung von Roboter-Regeln: Einhaltung von robots.txt
Crawler-Typen
Fess bietet folgende Crawler-Typen je nach Ziel.
Erstellen von Crawl-Konfigurationen
Hinzufügen grundlegender Crawl-Konfigurationen
Zugriff auf Verwaltungsoberfläche
Öffnen Sie
http://localhost:8080/adminim Browser und melden Sie sich als Administrator an.Crawler-Konfigurationsbildschirm öffnen
Wählen Sie im linken Menü „Crawler“ → „Web“ oder „Dateisystem“.
Neue Konfiguration erstellen
Klicken Sie auf die Schaltfläche „Neu erstellen“.
Grundinformationen eingeben
Name: Identifikationsname der Crawl-Konfiguration (z. B. Firmen-Wiki)
URL: Start-URL für das Crawling (z. B.
https://wiki.example.com/)Intervall: Zugriffsintervall pro URL in Millisekunden (z. B. 10000)
Thread-Anzahl: Anzahl paralleler Crawls (z. B. 5)
Tiefe: Hierarchietiefe für das Folgen von Links (z. B. 3)
Speichern
Klicken Sie auf „Erstellen“, um die Konfiguration zu speichern.
Beispiele für Web-Crawler-Konfiguration
Crawlen von Firmen-Intranet-Sites
Crawlen öffentlicher Websites
Beispiele für Datei-Crawler-Konfiguration
Lokales Dateisystem
SMB/CIFS (Windows-Dateifreigabe)
Konfiguration von Authentifizierungsinformationen
Für Sites oder Dateiserver, die Authentifizierung erfordern, konfigurieren Sie Authentifizierungsinformationen.
Wählen Sie in der Verwaltungsoberfläche „Crawler“ → „Web-Authentifizierung“ (für Dateiserver: „Datei-Authentifizierung“)
Klicken Sie auf „Neu erstellen“
Geben Sie Authentifizierungsinformationen ein:
Bemerkung
„Schema“ wird aus Basic / Digest / NTLM / Form ausgewählt. Wählen Sie außerdem im Feld „Web Config“ (bei Datei-Authentifizierung: „Dateisystem-Konfiguration“) die zugehörige Crawl-Konfiguration aus. Die Authentifizierungsdaten sind an eine Crawl-Konfiguration gebunden.
Klicken Sie auf „Erstellen“
Ausführung des Crawlings
Manuelle Ausführung
Um einen konfigurierten Crawl sofort auszuführen, starten Sie den Crawler-Job über das Menü „Scheduler“.
Öffnen Sie das Menü „Scheduler“
Wählen Sie den Job „Default Crawler“
Klicken Sie auf die Schaltfläche „Jetzt starten“
Überprüfen Sie den Job-Ausführungsstatus
Bemerkung
Die Listenansicht der Crawl-Konfigurationen (Web / Dateisystem) enthält keinen individuellen „Starten“-Button. Crawls werden als Scheduler-Job ausgeführt. Der Job „Default Crawler“ verarbeitet alle aktivierten Crawl-Konfigurationen.
Geplante Ausführung
Um Crawls regelmäßig auszuführen:
Öffnen Sie das Menü „Scheduler“
Wählen Sie den Job „Default Crawler“
Konfigurieren Sie den Zeitplanausdruck (Cron-Format)
Klicken Sie auf „Aktualisieren“
Bemerkung
Der Fess-Scheduler verwendet cron4j-Ausdrücke mit 5 Feldern (Minute Stunde Tag Monat Wochentag). Es gibt kein Sekundenfeld und kein ? (anders als bei Quartz). Der Wochentag wird als 0 (Sonntag) bis 6 (Samstag) angegeben.
Überprüfung des Crawl-Status
Überprüfung des Status laufender Crawls:
Öffnen Sie das Menü „Scheduler“
Überprüfen Sie laufende Jobs
Überprüfen Sie Details im Protokoll:
Bemerkung
Der obige Pfad gilt für RPM/DEB-Paketinstallationen. Bei zip/tar.gz-Bereitstellungen befinden sich die Protokolle im Verzeichnis
logs/.
Grundlegende Konfigurationselemente
Beschränkung von Crawl-Zielen
Beschränkung nach URL-Muster
Sie können bestimmte URL-Muster als Crawl-Ziele einschließen oder ausschließen.
Einzuschließende URL-Muster (regulärer Ausdruck):
Auszuschließende URL-Muster (regulärer Ausdruck):
Tiefenbeschränkung
Beschränkung der Hierarchietiefe für das Folgen von Links:
0: Nur Start-URL
1: Start-URL und von dort verlinkte Seiten
leer (nicht gesetzt): Unbegrenzt (allen Links folgen)
Bemerkung
Das Tiefe-Feld der Verwaltungsoberfläche akzeptiert nur ganze Zahlen >= 0. Für unbegrenztes Crawling lassen Sie das Feld leer (intern als -1 behandelt, was unbegrenzt bedeutet).
Maximale Zugriffszahl
Obergrenze für die Anzahl zu crawlender Seiten:
Stoppt nach dem Crawlen von 1000 Seiten. Wird das Feld leer gelassen, ist die Anzahl unbegrenzt (keine Obergrenze).
Anzahl paralleler Crawls (Thread-Anzahl)
Gibt die Anzahl gleichzeitig zu crawlender URLs an.
Warnung
Zu hohe Thread-Anzahlen belasten den Zielserver übermäßig. Konfigurieren Sie angemessene Werte.
Bemerkung
Der Standard-Thread-Wert bei Neuerstellung beträgt 1 (Web-Crawler) bzw. 5 (Datei-Crawler). Das Standard-Anforderungsintervall (Intervall) beträgt 10000 ms (Web-Crawler) bzw. 1000 ms (Datei-Crawler).
Crawl-Intervall
Gibt die Häufigkeit der Crawl-Ausführung an.
Konfiguration der Dateigröße
Sie können die Obergrenze für zu crawlende Dateigrößen konfigurieren.
Obergrenze für abzurufende Dateigrößen
Fügen Sie Folgendes zu den „Konfigurationsparametern“ der Crawler-Konfiguration hinzu:
Ruft Dateien bis zu 10 MB ab. Standardmäßig keine Beschränkung.
Bemerkung
Beim Crawlen großer Dateien passen Sie auch die Speichereinstellungen an. Details siehe Speicherkonfiguration.
Obergrenze für zu indizierende Dateigrößen
Sie können Obergrenzen für zu indizierende Größen nach Dateityp festlegen.
Standardwerte:
HTML-Dateien: 2,5 MB
Andere Dateien: 10 MB
Konfigurationsdatei: app/WEB-INF/classes/crawler/contentlength.xml
Standardkonfiguration:
Anpassungsbeispiel (PDF-Dateien bis zu 5 MB verarbeiten):
Fügt Konfiguration für PDF-Dateien bis zu 5 MB hinzu.
Warnung
Bei größeren Dateigrößen erhöhen Sie auch die Crawler-Speichereinstellungen.
Bemerkung
Wenn die Dokumentgröße 50 MB überschreitet, müssen Sie auch die OpenSearch-Einstellungen ändern. OpenSearch begrenzt die maximale Länge von Zeichenfolgenfeldern in JSON-Inhalten standardmäßig auf 50 MB.
Fügen Sie Folgendes zu opensearch.yml hinzu:
Das obige Beispiel setzt das Limit auf 100 MB. Weitere Details finden Sie in der OpenSearch-Dokumentation.
Längenbeschränkung für Wörter
Übersicht
Lange Zeichenfolgen nur aus alphanumerischen Zeichen oder aufeinanderfolgende Symbole verursachen Indexgrößen-Zunahme und Leistungsverschlechterung. Daher setzt Fess standardmäßig folgende Beschränkungen:
Aufeinanderfolgende alphanumerische Zeichen: Bis zu 20 Zeichen
Aufeinanderfolgende Symbole: Bis zu 10 Zeichen
Konfigurationsmethode
Bearbeiten Sie fess_config.properties.
Standardkonfiguration:
Beispiel: Lockerung der Beschränkung
Bemerkung
Wenn Sie nach langen alphanumerischen Zeichenfolgen suchen müssen (z. B. Seriennummern, Tokens), erhöhen Sie diesen Wert. Beachten Sie jedoch, dass die Indexgröße zunimmt.
Proxy-Konfiguration
Übersicht
Beim Crawlen externer Sites aus einem Intranet kann die Verbindung durch eine Firewall blockiert werden. In diesem Fall crawlen Sie über einen Proxy-Server.
Konfigurationsmethode
Fügen Sie in der Verwaltungsoberfläche in der Crawl-Konfiguration unter „Konfigurationsparameter“ Folgendes hinzu.
Grundlegende Proxy-Konfiguration:
Proxy mit Authentifizierung:
Bestimmte Hosts vom Proxy ausschließen:
Hosts, die vom Proxy ausgeschlossen werden sollen, werden nicht in den Konfigurationsparametern der Crawl-Konfiguration, sondern über JVM-Systemeigenschaften konfiguriert. Setzen Sie die Umgebungsvariable FESS_NON_PROXY_HOSTS in fess.in.sh (Linux/Mac) oder fess.in.bat (Windows).
Proxy gemeinsam für alle Crawl-Konfigurationen
Wenn kein Proxy in einer einzelnen Crawl-Konfiguration angegeben ist, wird ein gemeinsamer Crawler-Proxy aus fess_config.properties verwendet:
Diese Einstellung gilt für alle Crawl-Konfigurationen, die keinen eigenen Proxy festlegen (wenn client.proxyHost / client.proxyPort in einer Crawl-Konfiguration gesetzt sind, haben diese Werte Vorrang).
Systemweite Proxy-Konfiguration (JVM)
Um nicht nur den Crawler, sondern den gesamten HTTP-Verkehr von Fess (Crawler, SSO, LLM-Integration usw.) über einen Proxy zu leiten, setzen Sie folgende Umgebungsvariablen in fess.in.sh (Linux/Mac) bzw. fess.in.bat (Windows). Diese werden in JVM-Systemeigenschaften (-Dhttp.proxyHost usw.) umgewandelt:
Bemerkung
FESS_PROXY_HOST / FESS_PROXY_PORT gelten sowohl für HTTP als auch für HTTPS. Die Shell-Umgebungsvariablen http_proxy / https_proxy / no_proxy werden von der JVM nicht ausgewertet und haben daher keine Wirkung.
Konfiguration von robots.txt
Übersicht
robots.txt ist eine Datei, die Crawlern anweist, ob das Crawlen erlaubt ist. Fess befolgt standardmäßig robots.txt.
Konfigurationsmethode
Um robots.txt zu ignorieren, bearbeiten Sie fess_config.properties.
Der Standardwert dieses Eintrags ist false: Fess hält sich an robots.txt. Mit true wird robots.txt ignoriert.
Um auch HTML-Robots-Meta-Tags (noindex, nofollow usw.) zu ignorieren, verwenden Sie folgenden Eintrag (Standard: false):
Warnung
Beim Crawlen externer Sites befolgen Sie robots.txt. Das Ignorieren kann übermäßige Last auf Server ausüben oder gegen Nutzungsbedingungen verstoßen.
Konfiguration des User-Agent
Sie können den User-Agent des Crawlers ändern.
Für den Web-Crawler
Der Web-Crawler verfügt über ein dediziertes Feld „User Agent“ in der Bearbeitungsmaske der Crawl-Konfiguration. Tragen Sie dort den gewünschten User-Agent-String ein:
Bemerkung
Bei Web-Crawl-Konfigurationen wird der Wert von client.userAgent in den Konfigurationsparametern durch das dedizierte Feld „User Agent“ überschrieben. Verwenden Sie für den Web-Crawler stets das dedizierte Feld.
Für den Datei-Crawler und andere
Crawler ohne dediziertes User-Agent-Feld konfigurieren Sie über die „Konfigurationsparameter“ der Crawl-Konfiguration:
Codierungs-Konfiguration
Codierung von Crawl-Daten
Konfigurieren Sie in fess_config.properties:
Codierung von Dateinamen
Codierung von Dateinamen im Dateisystem:
Fehlersuche beim Crawling
Crawling startet nicht
Überprüfungspunkte:
Überprüfen Sie, ob der Scheduler aktiviert ist
Überprüfen Sie im Menü „Scheduler“, ob der Job „Default Crawler“ aktiviert ist
Überprüfen Sie, ob die Crawl-Konfiguration aktiviert ist
Überprüfen Sie in der Crawl-Konfigurationsliste, ob die Zielkonfiguration aktiviert ist
Überprüfen Sie Protokolle
Crawling stoppt mittendrin
Mögliche Ursachen:
Speichermangel
Überprüfen Sie
fess-crawler.logaufOutOfMemoryErrorErhöhen Sie den Crawler-Speicher (Details siehe Speicherkonfiguration)
Netzwerkfehler
Passen Sie Timeouts über die Konfigurationsparameter an:
client.connectionTimeoutist der Timeout für den Verbindungsaufbau,client.soTimeoutder Timeout für den Datenempfang; beide Angaben in Millisekunden.
Fehler im Crawl-Ziel
Überprüfen Sie, ob viele 404-Fehler auftreten
Überprüfen Sie Fehlerdetails im Protokoll
Bestimmte Seiten werden nicht gecrawlt
Überprüfungspunkte:
URL-Muster überprüfen
Überprüfen Sie, ob URL dem Ausschlussmuster entspricht
robots.txt überprüfen
Überprüfen Sie
/robots.txtder Ziel-Site
Authentifizierung überprüfen
Bei Seiten, die Authentifizierung erfordern, überprüfen Sie Authentifizierungseinstellungen
Tiefenbeschränkung
Überprüfen Sie, ob Hierarchietiefe der Links die Tiefenbeschränkung überschreitet
Maximale Zugriffszahl
Überprüfen Sie, ob maximale Zugriffszahl erreicht wurde
Crawling ist langsam
Gegenmaßnahmen:
Thread-Anzahl erhöhen
Erhöhen Sie Anzahl paralleler Crawls (beachten Sie jedoch Last auf Zielserver)
Unnötige URLs ausschließen
Fügen Sie Bilder, CSS-Dateien usw. zu Ausschlussmustern hinzu
Timeout-Einstellungen anpassen
Bei langsamen Sites verkürzen Sie Timeout
Crawler-Speicher erhöhen
Details siehe Speicherkonfiguration
Best Practices
Empfehlungen für Crawl-Konfiguration
Angemessene Thread-Anzahl konfigurieren
Konfigurieren Sie angemessene Thread-Anzahl, um Zielserver nicht übermäßig zu belasten.
URL-Muster optimieren
Durch Ausschluss unnötiger Dateien (Bilder, CSS, JavaScript usw.) verkürzen Sie Crawl-Zeit und verbessern Indexqualität.
Tiefenbeschränkung konfigurieren
Konfigurieren Sie angemessene Tiefe entsprechend der Site-Struktur. Das leere Feld (unbegrenzt) nur zum Crawlen der gesamten Site verwenden.
Maximale Zugriffszahl konfigurieren
Legen Sie Obergrenze fest, um unerwartetes Crawlen großer Seitenmengen zu vermeiden.
Crawl-Intervall anpassen
Konfigurieren Sie angemessenes Intervall entsprechend der Aktualisierungshäufigkeit. - Häufig aktualisierte Sites: Jede Stunde bis alle paar Stunden - Selten aktualisierte Sites: Täglich bis wöchentlich
Empfehlungen für Zeitplankonfiguration
Nächtliche Ausführung
Führen Sie zu Zeiten niedriger Serverlast aus (z. B. 2 Uhr nachts).
Vermeidung doppelter Ausführung
Konfigurieren Sie, dass der nächste Crawl erst nach Abschluss des vorherigen startet.
Benachrichtigung bei Fehlern
Konfigurieren Sie E-Mail-Benachrichtigung bei Crawl-Fehlern.
Referenzinformationen
Erweiterte Crawler-Konfiguration - Erweiterte Crawler-Konfiguration
Konfiguration von Thumbnail-Bildern - Thumbnail-Konfiguration
Speicherkonfiguration - Speicherkonfiguration
Protokollkonfiguration - Protokollkonfiguration