Übersicht
Groovy ist die Standard-Skriptsprache fuer Fess. Sie laeuft auf der Java Virtual Machine (JVM) und ermoeglicht es Ihnen, bei hoher Kompatibilitaet mit Java Skripte mit einer praeganteren Syntax zu schreiben.
Grundlegende Syntax
Variablendeklaration
Zeichenkettenoperationen
Collection-Operationen
Bedingte Verzweigung
Schleifenverarbeitung
Datenspeicher-Skripte
Beispiele fuer Skripte zur Datenspeicher-Konfiguration.
Bemerkung
In Datenspeicher-Skripten wird jede Feldname=Ausdruck-Zeile unabhaengig als einzelner Ausdruck ausgewertet. Daher koennen import-Anweisungen, mehrzeilige def-Deklarationen und mehrzeilige Kontrollstrukturen, die mehrere Felder gleichzeitig setzen (z. B. if-Bloecke), nicht verwendet werden. Wenn Sie Java-Klassen verwenden, schreiben Sie diese als einzelnen Ausdruck mit vollstaendig qualifiziertem Klassennamen (FQCN), und verwenden Sie fuer bedingte Werte den Ternaeroperator pro Feld (zum Beispiel url=data.published ? data.url : null ). Der hier verwendete Variablenname data ist nur ein Beispiel; der tatsaechliche Variablenname haengt vom verwendeten Datenspeicher-Konnektor ab. Details finden Sie unter Datenspeicher-Crawl.
Grundlegendes Mapping
URL-Generierung
Inhaltsverarbeitung
Datumsverarbeitung
Verfuegbare Objekte
Die in Skripten verfuegbaren Objekte variieren je nach Ausfuehrungskontext.
| Kontext | Objekt | Beschreibung |
|---|---|---|
| Alle Kontexte | container | DI-Container. Wird fuer den Zugriff auf Komponenten ueber container.getComponent("...") verwendet |
| Geplante Aufgaben | executor | Job-Ausfuehrungssteuerung ( JobExecutor ). Erforderlich fuer die Unterstuetzung des Jobstopps |
| Datenspeicher | (Connector-spezifisch) | Von jedem Datenspeicher bereitgestellte Datensatzvariablen. Der Variablenname haengt vom Konnektor ab |
| Pfad-Mapping | url , matcher | Die zu konvertierende URL-Zeichenkette und das Ergebnis des Regulaerausdruck-Abgleichs ( Matcher ). Verfuegbar in Ersetzungseinstellungen mit dem Praefix groovy: |
| Dokument-Boost | (Dokumentfelder) | Jedes Feld des Zieldokuments ist als Variable verfuegbar (wird in Bedingungs- und Boost-Wert-Ausdruecken verwendet) |
Geplante Aufgaben-Skripte
Beispiele fuer Groovy-Skripte in geplanten Aufgaben. In geplanten Aufgaben sind container und executor verfuegbar. Durch Uebergabe von executor an die execute()-Methode des Jobs wird die Jobstoppsteuerung aktiviert.
Bemerkung
Ein geplantes Aufgaben-Skript wird als vollstaendiges Groovy-Skript in einem einzigen Durchlauf ausgewertet. Daher koennen Sie im Gegensatz zu Datenspeicher-Skripten import-Anweisungen, mehrzeilige def-Deklarationen und mehrzeilige Kontrollstrukturen verwenden. Die nachfolgenden Beispiele unter „Java-Klassen verwenden“, „Zugriff auf Fess-Komponenten“, „Fehlerbehandlung“ und „Debugging und Protokollausgabe“ setzen ebenfalls diesen vollstaendigen Skript-Kontext voraus.
Crawl-Aufgabe ausfuehren
Bedingtes Crawling
Mehrere Aufgaben nacheinander ausfuehren
Java-Klassen verwenden
Innerhalb von Groovy-Skripten koennen Sie Java-Standardbibliotheken und Fess-Klassen verwenden.
Datum und Uhrzeit
Dateioperationen
HTTP-Kommunikation
Warnung
Der Zugriff auf externe Ressourcen beeintraechtigt die Leistung, halten Sie ihn daher auf ein Minimum.
Zugriff auf Fess-Komponenten
Sie koennen mit container auf Fess-Komponenten zugreifen.
System-Helfer
Konfigurationswerte abrufen
Suchen ausfuehren
Fehlerbehandlung
import-Anweisungen muessen am Anfang des Skripts stehen (sie koennen nicht innerhalb von Bloecken wie try-catch platziert werden). Mit try-catch koennen Ausnahmen abgefangen und Job-Fehler gesteuert werden.
Debugging und Protokollausgabe
Protokollausgabe
Debug-Ausgabe
Best Practices
Einfach halten: Komplexe Logik vermeiden und lesbaren Code schreiben
Null-Pruefungen:
?.und?:Operatoren nutzenAusnahmebehandlung: Unerwartete Fehler mit geeignetem try-catch behandeln
Protokollausgabe: Protokolle fuer einfacheres Debugging ausgeben
Leistung: Zugriff auf externe Ressourcen minimieren
Referenzinformationen
Skripting-Übersicht - Skripting-Übersicht
Datenspeicher-Crawl - Datenspeicher-Konfigurationsleitfaden
Scheduler - Scheduler-Konfigurationsleitfaden