Übersicht
Die Index-Export-Funktion exportiert in OpenSearch indizierte Suchdokumente als HTML- oder JSON-Dateien in das lokale Dateisystem. Diese Funktionalität ist nützlich für:
Erstellung statischer Backups von indizierten Inhalten
Generierung von Offline-Kopien von Dokumenten für Archivierungszwecke
Erstellung statischer Suchergebnisseiten
Migration von Inhalten zu anderen Systemen
Die exportierten Dateien behalten die ursprüngliche URL-Pfadstruktur der Quelldokumente bei, was die Verwaltung der exportierten Inhalte erleichtert.
Funktionsweise
Wenn der Index-Export-Job ausgeführt wird, erfolgt folgender Prozess:
Dokumente abrufen: Abrufen von Dokumenten aus OpenSearch mittels Scroll-API für effiziente Stapelverarbeitung
Inhalt verarbeiten: Extrahieren von Dokumentfeldern (Titel, Inhalt, URL usw.) und Entfernen ausgeschlossener Felder
Verzeichnisstruktur erstellen: Replizieren der URL-Pfadstruktur im Export-Verzeichnis basierend auf dem
url-Feld des DokumentsDateien generieren: Erstellen von Dateien (HTML oder JSON) mit dem Dokumentinhalt
Bis zur Fertigstellung fortfahren: Stapelverarbeitung fortsetzen, bis der Index vollständig exportiert ist
Die Scroll-API gewährleistet eine effiziente Verarbeitung großer Dokumentenmengen ohne Speicherprobleme.
Bemerkung
Exportiert werden Dokumente aus dem Suchindex (fess.search). Dokumente ohne url-Feld werden übersprungen.
Konfigurationseigenschaften
Konfigurieren Sie die Index-Export-Funktion in fess_config.properties:
| Eigenschaft | Standardwert | Beschreibung |
|---|---|---|
index.export.path | /var/lib/fess/export | Verzeichnis zum Speichern der exportierten Dateien |
index.export.exclude.fields | cache | Kommagetrennte Liste der vom Export auszuschließenden Felder |
index.export.scroll.size | 100 | Anzahl der pro Stapel verarbeiteten Dokumente |
index.export.format | html | Exportdateiformat (html oder json) |
Konfigurationsbeispiel:
Job aktivieren
Der Index-Export-Job ist als geplanter Job registriert, aber standardmäßig deaktiviert.
So aktivieren Sie den Job:
Melden Sie sich bei der Fess-Administrationskonsole an
Navigieren Sie zu System > Scheduler
Suchen Sie Index Exporter in der Job-Liste
Klicken Sie, um die Job-Einstellungen zu bearbeiten
Legen Sie den Zeitplan mit einem Cron-Ausdruck fest
Speichern Sie die Einstellungen
Beispiele für Cron-Ausdrücke:
0 0 2 * * ?- Täglich um 2:00 Uhr ausführen0 0 3 ? * SUN- Jeden Sonntag um 3:00 Uhr ausführen0 0 0 1 * ?- Am ersten Tag jedes Monats um Mitternacht ausführen
Benutzerdefinierte Abfragefilterung
Durch Anpassen des Job-Skripts kann der Export auf bestimmte Dokumente eingeschränkt werden.
Das Standardskript des Index Exporter-Jobs exportiert alle Dokumente:
So fügen Sie einen benutzerdefinierten Abfragefilter hinzu:
Navigieren Sie zu System > Scheduler
Bearbeiten Sie den Index Exporter
Ändern Sie das Job-Skript, um einen Abfragefilter hinzuzufügen
Beispiel mit Datumsfilter (nur Dokumente der letzten 7 Tage exportieren):
Beispiel mit Website-Filter (nur Dokumente einer bestimmten Website exportieren):
Beispiel für Export im JSON-Format:
Exportierte Dateistruktur
Exportierte Dateien sind so organisiert, dass sie die ursprüngliche URL-Struktur widerspiegeln.
Beispielsweise wird ein Dokument mit der URL https://example.com/docs/guide/intro.html exportiert nach:
Der Dateipfad wird aus dem url-Feld des Dokuments nach folgenden Regeln ermittelt:
Der Hostname wird zum Verzeichnis der obersten Ebene. Enthält die URL keinen Hostnamen, wird
_localverwendet.Endet der Pfad mit einem Schrägstrich oder besitzt er keinen Pfad, wird eine Indexdatei (
index.htmloderindex.json) erstellt.Enthält der Pfad keine Dateiendung, wird die dem Format entsprechende Endung (
.htmloder.json) angehängt.Im Dateinamen unzulässige Zeichen (
< > : " | ? * \) werden durch_ersetzt; jede Pfadkomponente wird auf maximal 200 Zeichen gekürzt.Kann die URL nicht geparst werden oder wird ein Pfad-Traversal-Angriff erkannt, wird ein Hash-Wert der URL als Dateiname im Verzeichnis
_invalidgespeichert.
Im HTML-Format wird jede Datei nach folgender Struktur erzeugt:
Feld
title→<title>-ElementFeld
lang→lang-Attribut des<html>-ElementsFeld
content→ Hauptinhalt des<body>-ElementsAlle übrigen nicht ausgeschlossenen Felder →
<meta name="fess:Feldname" content="Wert">-Tags im<head>
Im JSON-Format enthält jede Datei ein JSON-Objekt mit allen nicht ausgeschlossenen Feldern:
Best Practices
Speicherüberlegungen
Stellen Sie ausreichend Speicherplatz im Export-Verzeichnis sicher
Erwägen Sie dedizierten Speicher für große Dokumentenmengen
Implementieren Sie bei regelmäßigen Exporten eine periodische Bereinigung alter Exporte
Leistungstipps
Passen Sie
index.export.scroll.sizeje nach Dokumentgröße an: - Kleinere Dokumente: größere Stapelgröße (200-500) - Größere Dokumente: kleinere Stapelgröße (50-100)Planen Sie Exporte in Zeiten geringer Auslastung
Überwachen Sie die Festplatten-E/A während Export-Vorgängen
Sicherheitsempfehlungen
Legen Sie angemessene Dateiberechtigungen für das Export-Verzeichnis fest
Stellen Sie das Export-Verzeichnis nicht direkt im Web bereit
Erwägen Sie die Verschlüsselung exportierter Inhalte bei sensiblen Daten
Überprüfen Sie regelmäßig den Zugriff auf exportierte Dateien
Fehlerbehebung
Export-Job wird nicht ausgeführt
Überprüfen Sie, ob der Job im Scheduler aktiviert ist
Prüfen Sie die Syntax des Cron-Ausdrucks
Überprüfen Sie die Fess-Protokolle auf Fehlermeldungen:
Leeres Export-Verzeichnis
Stellen Sie sicher, dass Dokumente im Index vorhanden sind
Prüfen Sie die Berechtigungen des Export-Pfads
Überprüfen Sie, ob der Abfragefilter (bei benutzerdefinierter Konfiguration) mit Dokumenten übereinstimmt
Export schlägt mittendrin fehl
Prüfen Sie den verfügbaren Speicherplatz
Überprüfen Sie die Protokolle auf Speicher- oder Timeout-Fehler
Erwägen Sie die Reduzierung von
scroll.sizebei großen DokumentenPrüfen Sie die Timeout-Einstellungen des OpenSearch-Scroll-Kontexts
Dateien nicht zugänglich
Überprüfen Sie die Dateiberechtigungen:
ls -la /var/lib/fess/exportPrüfen Sie, ob der Verzeichnisbesitzer mit dem Fess-Prozessbenutzer übereinstimmt
Stellen Sie sicher, dass SELinux- oder AppArmor-Richtlinien den Zugriff erlauben
Verwandte Themen
Index-Verwaltung - Verfahren zur Index-Sicherung und -Wiederherstellung
Protokollkonfiguration - Konfiguration der Protokolleinstellungen zur Fehlerbehebung