Übersicht
Dieser Leitfaden beschreibt erweiterte Konfigurationen für den Fess-Crawler. Für grundlegende Crawler-Konfigurationen siehe Grundlegende Crawler-Konfiguration.
Warnung
Die Einstellungen auf dieser Seite können systemweite Auswirkungen haben. Testen Sie Konfigurationsänderungen gründlich, bevor Sie sie in Produktionsumgebungen anwenden.
Allgemeine Konfiguration
Speicherort der Konfigurationsdateien
Erweiterte Crawler-Konfigurationen werden in folgenden Dateien vorgenommen:
Hauptkonfiguration:
/etc/fess/fess_config.properties(oderapp/WEB-INF/classes/fess_config.properties)Inhaltslängen-Konfiguration:
app/WEB-INF/classes/crawler/contentlength.xmlKomponenten-Konfiguration:
app/WEB-INF/classes/crawler/container.xml
Standard-Skriptsprache
Legt die Standard-Skriptsprache für den Crawler fest.
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.default.script | Crawler-Skriptsprache | groovy |
HTTP-Thread-Pool
Thread-Pool-Konfiguration für den HTTP-Crawler.
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.http.thread_pool.size | HTTP-Thread-Pool-Größe | 0 |
Dokumentverarbeitungs-Konfiguration
Grundkonfiguration
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.max.site.length | Maximale Zeilenanzahl für Dokumentsite | 100 |
crawler.document.site.encoding | Codierung der Dokumentsite | UTF-8 |
crawler.document.unknown.hostname | Ersatzwert für unbekannte Hostnamen | unknown |
crawler.document.use.site.encoding.on.english | Site-Codierung für englische Dokumente verwenden | false |
crawler.document.append.data | Daten zum Dokument hinzufügen | true |
crawler.document.append.filename | Dateinamen zum Dokument hinzufügen | false |
Konfigurationsbeispiel
Wortverarbeitungs-Konfiguration
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.max.alphanum.term.size | Maximale Länge alphanumerischer Wörter | 20 |
crawler.document.max.symbol.term.size | Maximale Länge von Symbol-Wörtern | 10 |
crawler.document.duplicate.term.removed | Entfernung doppelter Wörter | false |
Konfigurationsbeispiel
Bemerkung
Das Erhöhen von max.alphanum.term.size ermöglicht die vollständige Indizierung langer IDs, Tokens, URLs usw., erhöht jedoch die Indexgröße.
Zeichenverarbeitungs-Konfiguration
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.space.chars | Definition von Leerzeichen | \u0009\u000A... |
crawler.document.fullstop.chars | Definition von Satzendzeichen | \u002e\u06d4... |
Konfigurationsbeispiel
Protokoll-Konfiguration
Unterstützte Protokolle
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.web.protocols | Protokolle für Web-Crawling | http,https |
crawler.file.protocols | Protokolle für Datei-Crawling | file,smb,smb1,ftp,storage |
Konfigurationsbeispiel
Umgebungsvariablen-Parameter
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.data.env.param.key.pattern | Muster für Umgebungsvariablen-Parameterschlüssel | ^FESS_ENV_.* |
robots.txt-Konfiguration
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.ignore.robots.txt | robots.txt ignorieren | false |
crawler.ignore.robots.tags | Zu ignorierende Robots-Tags | (leer) |
crawler.ignore.content.exception | Inhaltsausnahmen ignorieren | true |
Warnung
Die Einstellung crawler.ignore.robots.txt=true kann gegen Nutzungsbedingungen von Websites verstoßen. Seien Sie vorsichtig beim Crawlen externer Sites.
Fehlerbehandlungs-Konfiguration
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.failure.url.status.codes | Als Fehler behandelte HTTP-Statuscodes | 404 |
Systemüberwachungs-Konfiguration
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.system.monitor.interval | Systemüberwachungsintervall (Sekunden) | 60 |
Hot-Thread-Konfiguration
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.hotthread.ignore_idle_threads | Leerlaufende Threads ignorieren | true |
crawler.hotthread.interval | Snapshot-Intervall | 500ms |
crawler.hotthread.snapshots | Anzahl Snapshots | 10 |
crawler.hotthread.threads | Anzahl überwachter Threads | 3 |
crawler.hotthread.timeout | Timeout | 30s |
crawler.hotthread.type | Überwachungstyp | cpu |
Konfigurationsbeispiel
Metadaten-Konfiguration
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.metadata.content.excludes | Auszuschließende Metadaten | resourceName,X-Parsed-By... |
crawler.metadata.name.mapping | Metadaten-Namen-Mapping | title=title:string... |
HTML-Crawler-Konfiguration
XPath-Konfiguration
XPath-Konfiguration zum Extrahieren von HTML-Elementen.
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.html.content.xpath | XPath für Inhalt | //BODY |
crawler.document.html.lang.xpath | XPath für Sprache | //HTML/@lang |
crawler.document.html.digest.xpath | XPath für Digest | //META[@name='description']/@content |
crawler.document.html.canonical.xpath | XPath für kanonische URL | //LINK[@rel='canonical'][1]/@href |
Konfigurationsbeispiel
Beispiele für benutzerdefinierte XPath
HTML-Tag-Verarbeitung
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.html.pruned.tags | Zu entfernende HTML-Tags | noscript,script,style,header,footer,aside,nav,a[rel=nofollow] |
crawler.document.html.max.digest.length | Maximale Digest-Länge | 120 |
crawler.document.html.default.lang | Standardsprache | (leer) |
Konfigurationsbeispiel
URL-Musterfilter
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.html.default.include.index.patterns | In Index einzuschließende URL-Muster | (leer) |
crawler.document.html.default.exclude.index.patterns | Aus Index auszuschließende URL-Muster | (?i).*(css|js|jpeg...) |
crawler.document.html.default.include.search.patterns | In Suchergebnisse einzuschließende URL-Muster | (leer) |
crawler.document.html.default.exclude.search.patterns | Aus Suchergebnissen auszuschließende URL-Muster | (leer) |
Konfigurationsbeispiel
Datei-Crawler-Konfiguration
Grundkonfiguration
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.file.name.encoding | Dateinamen-Codierung | (leer) |
crawler.document.file.no.title.label | Label für Dateien ohne Titel | No title. |
crawler.document.file.ignore.empty.content | Leere Inhalte ignorieren | false |
crawler.document.file.max.title.length | Maximale Titellänge | 100 |
crawler.document.file.max.digest.length | Maximale Digest-Länge | 200 |
Konfigurationsbeispiel
Inhaltsverarbeitung
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.file.append.meta.content | Metadaten zum Inhalt hinzufügen | true |
crawler.document.file.append.body.content | Haupttext zum Inhalt hinzufügen | true |
crawler.document.file.default.lang | Standardsprache | (leer) |
Konfigurationsbeispiel
Datei-URL-Musterfilter
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.file.default.include.index.patterns | In Index einzuschließende Muster | (leer) |
crawler.document.file.default.exclude.index.patterns | Aus Index auszuschließende Muster | (leer) |
crawler.document.file.default.include.search.patterns | In Suchergebnisse einzuschließende Muster | (leer) |
crawler.document.file.default.exclude.search.patterns | Aus Suchergebnissen auszuschließende Muster | (leer) |
Konfigurationsbeispiel
Cache-Konfiguration
Dokumenten-Cache
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
crawler.document.cache.enabled | Dokumenten-Cache aktivieren | true |
crawler.document.cache.max.size | Maximale Cache-Größe (Bytes) | 2621440 (2,5 MB) |
crawler.document.cache.supported.mimetypes | Zu cachende MIME-Typen | text/html |
crawler.document.cache.html.mimetypes | Als HTML zu behandelnde MIME-Typen | text/html |
Konfigurationsbeispiel
Bemerkung
Bei aktiviertem Cache wird in Suchergebnissen ein Cache-Link angezeigt, über den Benutzer den Inhalt zum Zeitpunkt des Crawlings einsehen können.
JVM-Optionen
Sie können JVM-Optionen für den Crawler-Prozess konfigurieren.
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
jvm.crawler.options | JVM-Optionen für Crawler | -Xms128m -Xmx512m... |
Standardkonfiguration
Erklärung wichtiger Optionen
| Option | Beschreibung |
|---|---|
-Xms128m | Initiale Heap-Größe (128 MB) |
-Xmx512m | Maximale Heap-Größe (512 MB) |
-XX:MaxMetaspaceSize=128m | Maximale Metaspace-Größe (128 MB) |
-XX:+UseG1GC | G1-Garbage-Collector verwenden |
-XX:MaxGCPauseMillis=60000 | Ziel für GC-Pausenzeit (60 Sekunden) |
-XX:-HeapDumpOnOutOfMemoryError | Heap-Dumps bei OutOfMemory deaktivieren |
Beispiele für benutzerdefinierte Konfiguration
Beim Crawlen großer Dateien:
Beim Debuggen:
Details siehe Speicherkonfiguration.
Leistungsoptimierung
Optimierung der Crawl-Geschwindigkeit
1. Thread-Anzahl anpassen
Durch Erhöhung der Anzahl paralleler Crawls kann die Crawl-Geschwindigkeit verbessert werden.
Beachten Sie jedoch die Last auf dem Zielserver.
2. Timeout anpassen
Bei langsamen Sites passen Sie Timeouts an.
3. Unnötige Inhalte ausschließen
Durch Ausschluss von Bildern, CSS, JavaScript-Dateien usw. wird die Crawl-Geschwindigkeit verbessert.
4. Retry-Einstellungen
Passen Sie Anzahl und Intervall von Wiederholungsversuchen bei Fehlern an.
Optimierung der Speichernutzung
1. Heap-Größe anpassen
2. Cache-Größe anpassen
3. Große Dateien ausschließen
Details siehe Speicherkonfiguration.
Verbesserung der Indexqualität
1. XPath optimieren
Schließen Sie unnötige Elemente (Navigation, Werbung usw.) aus.
2. Digest optimieren
3. Metadaten-Mapping
Fehlersuche
Speichermangel
Symptome:
OutOfMemoryErrorinfess_crawler.logaufgezeichnetCrawling stoppt mittendrin
Gegenmaßnahmen:
Crawler-Heap-Größe erhöhen
Anzahl paralleler Threads reduzieren
Große Dateien ausschließen
Details siehe Speicherkonfiguration.
Crawling ist langsam
Symptome:
Crawling dauert zu lange
Häufige Timeouts
Gegenmaßnahmen:
Thread-Anzahl erhöhen (Last auf Zielserver beachten)
Timeouts anpassen
Unnötige URLs ausschließen
Bestimmte Inhalte können nicht extrahiert werden
Symptome:
Seitentext wird nicht korrekt extrahiert
Wichtige Informationen fehlen in Suchergebnissen
Gegenmaßnahmen:
XPath überprüfen und anpassen
Zu entfernende Tags überprüfen
Bei dynamisch durch JavaScript generierten Inhalten alternative Methoden (z. B. API-Crawling) in Betracht ziehen
Zeichenkodierungsprobleme treten auf
Symptome:
Zeichenkodierungsprobleme in Suchergebnissen
Bestimmte Sprachen werden nicht korrekt angezeigt
Gegenmaßnahmen:
Codierungseinstellungen überprüfen
Dateinamen-Codierung konfigurieren
Codierungsfehler im Protokoll überprüfen
Best Practices
In Testumgebung validieren
Validieren Sie gründlich in Testumgebung, bevor Sie in Produktionsumgebung anwenden.
Schrittweise Anpassung
Ändern Sie Konfigurationen nicht auf einmal stark, sondern passen Sie schrittweise an und überprüfen Sie die Wirkung.
Protokolle überwachen
Überwachen Sie nach Konfigurationsänderungen Protokolle auf Fehler oder Leistungsprobleme.
Backup
Erstellen Sie vor Änderung von Konfigurationsdateien unbedingt ein Backup.
Dokumentation
Dokumentieren Sie geänderte Konfigurationen und deren Begründung.
Referenzinformationen
Grundlegende Crawler-Konfiguration - Grundlegende Crawler-Konfiguration
Konfiguration von Thumbnail-Bildern - Thumbnail-Konfiguration
Speicherkonfiguration - Speicherkonfiguration
Protokollkonfiguration - Protokollkonfiguration
Suchbezogene Konfigurationen - Erweiterte Suchkonfiguration