Grundlegende Crawler-Konfiguration
Ü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/)Crawl-Intervall: Häufigkeit der Crawl-Ausführung (z. B. jede Stunde)
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
Name: Firmenportal
URL: http://intranet.example.com/
Crawl-Intervall: Einmal täglich
Thread-Anzahl: 10
Tiefe: Unbegrenzt (-1)
Maximale Zugriffszahl: 10000
Crawlen öffentlicher Websites
Name: Produkt-Site
URL: https://www.example.com/products/
Crawl-Intervall: Einmal wöchentlich
Thread-Anzahl: 5
Tiefe: 5
Maximale Zugriffszahl: 1000
Beispiele für Datei-Crawler-Konfiguration
Lokales Dateisystem
Name: Dokumentenordner
URL: file:///home/share/documents/
Crawl-Intervall: Einmal täglich
Thread-Anzahl: 3
Tiefe: Unbegrenzt (-1)
SMB/CIFS (Windows-Dateifreigabe)
Name: Dateiserver
URL: smb://fileserver.example.com/share/
Crawl-Intervall: Einmal täglich
Thread-Anzahl: 5
Tiefe: Unbegrenzt (-1)
Konfiguration von Authentifizierungsinformationen
Für Sites oder Dateiserver, die Authentifizierung erfordern, konfigurieren Sie Authentifizierungsinformationen.
Wählen Sie in der Verwaltungsoberfläche „Crawler“ → „Authentifizierung“
Klicken Sie auf „Neu erstellen“
Geben Sie Authentifizierungsinformationen ein:
Hostname: wiki.example.com Port: 443 Authentifizierungsmethode: Basic-Authentifizierung Benutzername: crawler_user Passwort: ********
Klicken Sie auf „Erstellen“
Ausführung des Crawlings
Manuelle Ausführung
Um einen konfigurierten Crawl sofort auszuführen:
Wählen Sie die Zielkonfiguration in der Crawl-Konfigurationsliste
Klicken Sie auf die Schaltfläche „Starten“
Überprüfen Sie den Job-Ausführungsstatus im Menü „Scheduler“
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)
# Täglich um 2 Uhr morgens ausführen 0 0 2 * * ? # Jede Stunde zur vollen Stunde ausführen 0 0 * * * ? # Montag bis Freitag um 18 Uhr ausführen 0 0 18 ? * MON-FRI
Klicken Sie auf „Aktualisieren“
Ü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:
tail -f /var/log/fess/fess_crawler.log
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):
# Nur unter /docs/ crawlen
https://example\.com/docs/.*
Auszuschließende URL-Muster (regulärer Ausdruck):
# Bestimmte Verzeichnisse ausschließen
.*/admin/.*
.*/private/.*
# Bestimmte Dateierweiterungen ausschließen
.*\.(jpg|png|gif|css|js)$
Tiefenbeschränkung
Beschränkung der Hierarchietiefe für das Folgen von Links:
0: Nur Start-URL
1: Start-URL und von dort verlinkte Seiten
-1: Unbegrenzt (allen Links folgen)
Maximale Zugriffszahl
Obergrenze für die Anzahl zu crawlender Seiten:
Maximale Zugriffszahl: 1000
Stoppt nach dem Crawlen von 1000 Seiten.
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.
Crawl-Intervall
Gibt die Häufigkeit der Crawl-Ausführung an.
# Zeitangabe
Crawl-Intervall: 3600000 # Millisekunden (1 Stunde)
# Oder im Scheduler konfigurieren
0 0 2 * * ? # Täglich um 2 Uhr morgens
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:
client.maxContentLength=10485760
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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//DBFLUTE//DTD LastaDi 1.0//EN"
"http://dbflute.org/meta/lastadi10.dtd">
<components namespace="fessCrawler">
<include path="crawler/container.xml" />
<component name="contentLengthHelper"
class="org.codelibs.fess.crawler.helper.ContentLengthHelper" instance="singleton">
<property name="defaultMaxLength">10485760</property><!-- 10M -->
<postConstruct name="addMaxLength">
<arg>"text/html"</arg>
<arg>2621440</arg><!-- 2.5M -->
</postConstruct>
<postConstruct name="addMaxLength">
<arg>"application/pdf"</arg>
<arg>5242880</arg><!-- 5M -->
</postConstruct>
</component>
</components>
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.
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:
crawler.document.max.alphanum.term.size=20
crawler.document.max.symbol.term.size=10
Beispiel: Lockerung der Beschränkung
crawler.document.max.alphanum.term.size=50
crawler.document.max.symbol.term.size=20
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:
client.proxyHost=proxy.example.com
client.proxyPort=8080
Proxy mit Authentifizierung:
client.proxyHost=proxy.example.com
client.proxyPort=8080
client.proxyUsername=proxyuser
client.proxyPassword=proxypass
Bestimmte Hosts vom Proxy ausschließen:
client.nonProxyHosts=localhost|127.0.0.1|*.example.com
Systemweite Proxy-Konfiguration
Wenn alle Crawl-Konfigurationen denselben Proxy verwenden, können Sie dies über Umgebungsvariablen konfigurieren.
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
export no_proxy=localhost,127.0.0.1,.example.com
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.
crawler.ignore.robots.txt=true
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.
Konfiguration in der Verwaltungsoberfläche
Fügen Sie zu den „Konfigurationsparametern“ der Crawl-Konfiguration hinzu:
client.userAgent=MyCompanyCrawler/1.0
Systemweite Konfiguration
Konfigurieren Sie in fess_config.properties:
crawler.user.agent=MyCompanyCrawler/1.0
Codierungs-Konfiguration
Codierung von Crawl-Daten
Konfigurieren Sie in fess_config.properties:
crawler.crawling.data.encoding=UTF-8
Codierung von Dateinamen
Codierung von Dateinamen im Dateisystem:
crawler.document.file.name.encoding=UTF-8
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
tail -f /var/log/fess/fess.log tail -f /var/log/fess/fess_crawler.log
Crawling stoppt mittendrin
Mögliche Ursachen:
Speichermangel
Überprüfen Sie
fess_crawler.logaufOutOfMemoryErrorErhöhen Sie den Crawler-Speicher (Details siehe Speicherkonfiguration)
Netzwerkfehler
Passen Sie Timeout-Einstellungen an
Überprüfen Sie Retry-Einstellungen
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. Unbegrenzt (-1) 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