Ubersicht
Der JSON-Konnektor bietet die Funktionalitat, Daten aus lokalen JSONL-Dateien (JSON-Lines-Format) abzurufen und im Fess-Index zu registrieren.
Fur diese Funktion ist das Plugin fess-ds-json erforderlich.
Voraussetzungen
Die Installation des Plugins ist erforderlich
Lesezugriff auf die JSON-Dateien ist erforderlich
Die Struktur der JSON-Daten muss bekannt sein
Plugin-Installation
Methode 1: JAR-Datei direkt platzieren
Methode 2: Uber die Administrationsoberflache installieren
Offnen Sie „System“ -> „Plugins“
Laden Sie die JAR-Datei hoch
Starten Sie Fess neu
Konfiguration
Konfigurieren Sie uber die Administrationsoberflache unter „Crawler“ -> „Datenspeicher“ -> „Neu erstellen“.
Grundeinstellungen
| Einstellung | Beispielwert |
|---|---|
| Name | Products JSON |
| Handler-Name | JsonDataStore |
| Aktiviert | Ein |
Parameter-Einstellungen
Lokale Datei:
Mehrere Dateien:
Verzeichnisangabe:
Parameterliste
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
files | Nein | Pfad zur zu verarbeitenden JSON-Datei (mehrere Angaben moglich: kommagetrennt). Nur Dateien mit der Erweiterung .json oder .jsonl werden verarbeitet. |
directories | Nein | Pfad zum Verzeichnis mit JSON-Dateien (mehrere Angaben moglich: kommagetrennt) |
fileEncoding | Nein | Zeichenkodierung (Standard: UTF-8) |
Warnung
Es muss entweder files oder directories angegeben werden. Wenn keiner der beiden Parameter angegeben ist (leer), wird eine DataStoreException ausgelost. Wenn beide angegeben sind, hat files Vorrang und directories wird ignoriert.
Bemerkung
Der Parametername lautet im camelCase fileEncoding (nicht file_encoding in snake_case).
Verhalten bei Verzeichnisangabe
Wenn directories angegeben ist, werden die Dateien direkt im jeweiligen Verzeichnis nach folgenden Regeln verarbeitet:
Unterverzeichnisse werden nicht durchsucht (keine rekursive Suche).
Nur Dateien mit der Erweiterung
.jsonoder.jsonlwerden berucksichtigt (Gro-/Kleinschreibung wird nicht unterschieden).Die Dateien werden in aufsteigender Reihenfolge nach Anderungsdatum (letzter Anderungszeitpunkt) verarbeitet.
Bemerkung
Dieser Konnektor unterstutzt ausschlie?lich JSON-Dateien im lokalen Dateisystem. HTTP-Zugriff und API-Authentifizierung werden nicht unterstutzt.
Skript-Einstellungen
Die Werte der einzelnen Felder werden aus den Feldern des jeweiligen JSON-Objekts zusammengesetzt. Felder auf der obersten Ebene des JSON-Objekts konnen im Skript als Variablen ohne Prafix direkt referenziert werden (kein Prafix wie data.).
Einfaches JSON-Objekt:
Verschachteltes JSON-Objekt (verschachtelte Objekte werden als Map referenziert):
Verarbeitung von Array-Elementen:
Verfugbare Felder
<Feldname>- Felder auf der obersten Ebene des JSON-Objekts werden direkt beim Namen referenziert<Elternteil>.<Kind>- Felder eines verschachtelten Objekts<Array>[<Index>]- Array-Element<Array>.<Methode>- Array-Methoden (join,collect,sizeusw.)
Bemerkung
Enthalt ein Feldname Leerzeichen, Bindestriche oder andere Zeichen, die als Groovy-Bezeichner ungultig sind, kann dieses Feld nicht direkt als Variablenname referenziert werden.
JSON-Format-Details
JSON-Dateiformat
Der JSON-Konnektor liest Dateien im JSONL-Format (JSON Lines). Dabei wird pro Zeile ein JSON-Objekt geschrieben. Die Datei wird zeilenweise eingelesen, und jede Zeile wird als eigenstandiges JSON-Objekt verarbeitet.
Bemerkung
Dateien mit der Erweiterung .json werden ebenfalls verarbeitet, der Inhalt muss jedoch im JSONL-Format vorliegen (ein Objekt pro Zeile). JSON-Dateien im Array-Format ([{...}, {...}]) oder mehrzeilig formatierte (pretty-printed) JSON-Dateien konnen nicht direkt eingelesen werden. Bitte konvertieren Sie diese in das JSONL-Format.
JSONL-Datei:
Anwendungsbeispiele
Produktkatalog
Parameter:
Skript:
Integration mehrerer JSON-Dateien
Parameter:
Skript:
Fehlerbehebung
Datei nicht gefunden
Symptom: Im Protokoll wird ... is not found. oder Source file ... does not exist. ausgegeben
Prufpunkte:
Uberprfen Sie, ob der Dateipfad korrekt ist
Uberprfen Sie, ob die Datei vorhanden ist
Uberprfen Sie, ob die Dateiendung
.jsonoder.jsonlistUberprfen Sie, ob Leserechte fur die Datei vorhanden sind
JSON-Analysefehler
Symptom: Im Protokoll wird Crawling Access Exception zusammen mit JsonParseException o. a. ausgegeben
Enthalt eine Zeile ungultige Daten, wird nur diese Zeile ubersprungen und als fehlgeschlagene URL erfasst; das Crawling selbst wird ab der nachsten Zeile fortgesetzt.
Prufpunkte:
Uberprfen Sie, ob die JSON-Datei im korrekten Format vorliegt (JSONL: ein Objekt pro Zeile):
Uberprfen Sie die Zeichenkodierung
Uberprfen Sie, ob ein einzelnes Objekt uber mehrere Zeilen verteilt ist
Uberprfen Sie, ob Kommentare enthalten sind (Kommentare sind im JSON-Standard nicht erlaubt)
Keine Daten abgerufen
Symptom: Das Crawling ist erfolgreich, aber die Trefferanzahl betragt 0
Prufpunkte:
Uberprfen Sie die JSON-Struktur
Uberprfen Sie die Skript-Einstellungen (Felder werden ohne
data.-Prafix referenziert)Uberprfen Sie die Feldnamen (einschlie?lich Gro-/Kleinschreibung)
Uberprfen Sie die Protokolldateien auf Fehlermeldungen
Gro?e JSON-Dateien
Symptom: Speichermangel oder Zeituberschreitung
Da die Datei zeilenweise eingelesen wird, wirkt sich die Gesamtgro?e der Datei nicht direkt auf den Speicherverbrauch aus. Probleme konnen jedoch auftreten, wenn eine einzelne Zeile (ein einzelnes Objekt) extrem gro? ist oder die Last beim Indexieren sehr hoch ist.
Losung:
Teilen Sie die JSON-Datei in mehrere Dateien auf
Erhohen Sie die Heap-Gro?e von Fess
Erweiterte Skript-Beispiele
Bedingte Verarbeitung
Jedes Feld wird als eigenstandiger Ausdruck ausgewertet. Fur bedingte Werte verwenden Sie den ternaren Operator:
Array-Verknupfung
Standardwerte festlegen
Datumsformatierung
Numerische Verarbeitung
Referenzen
Übersicht der Datenspeicher-Konnektoren - Ubersicht der Datenspeicher-Konnektoren
CSV-Konnektor - CSV-Konnektor
Datenbank-Konnektor - Datenbank-Konnektor
Datenspeicher-Crawl - Datenspeicher-Konfigurationsleitfaden