Apercu
Groovy est le langage de script par defaut de Fess. Il fonctionne sur la machine virtuelle Java (JVM) et, tout en etant hautement compatible avec Java, permet d’ecrire des scripts avec une syntaxe plus concise.
Syntaxe de base
Declaration de variables
Manipulation de chaines
Operations sur les collections
Conditions
Boucles
Scripts de Data Store
Exemples de scripts pour la configuration Data Store.
Note
Dans les scripts de data store, chaque ligne champ=expression est evaluee independamment en tant qu’expression unique. Par consequent, les instructions import, les declarations def multi-lignes et les structures de controle multi-lignes qui definissent plusieurs champs a la fois (comme les blocs if) ne peuvent pas etre utilisees. Lorsque vous utilisez des classes Java, ecrivez-les en tant qu’expression unique avec le nom de classe complet (FQCN), et utilisez un operateur ternaire par champ pour les valeurs conditionnelles (par exemple, url=data.published ? data.url : null ). Par ailleurs, le nom de variable data utilise ici n’est qu’un exemple ; le nom de variable reel depend du connecteur de data store utilise. Consultez Présentation pour plus de details.
Mapping de base
Generation d’URL
Traitement du contenu
Traitement des dates
Objets disponibles
Les objets disponibles dans les scripts varient en fonction du contexte d’execution.
| Contexte | Objet | Description |
|---|---|---|
| Tous les contextes | container | Conteneur DI. Utilise pour acceder aux composants via container.getComponent("...") |
| Taches planifiees | executor | Controle d’execution des jobs ( JobExecutor ). Necessaire pour le support de l’arret des jobs |
| Data Store | (specifique au connecteur) | Variables d’enregistrement de donnees fournies par chaque data store. Le nom de la variable depend du connecteur |
| Mappage de chemins | url , matcher | La chaine URL a convertir et le resultat de la correspondance par expression reguliere ( Matcher ). Disponible dans les parametres de remplacement avec le prefixe groovy: |
| Boost de document | (champs du document) | Chaque champ du document cible est disponible en tant que variable (utilise dans les expressions de condition et de valeur de boost) |
Scripts de taches planifiees
Exemples de scripts Groovy pour les taches planifiees. Dans les taches planifiees, container et executor sont disponibles. Passer executor a la methode execute() du job active le controle d’arret du job.
Note
Un script de tache planifiee est evalue en tant que script Groovy unique et complet. Par consequent, contrairement aux scripts de data store, vous pouvez utiliser des instructions import, des declarations def multi-lignes et des structures de controle multi-lignes. Les exemples ci-dessous « Utilisation des classes Java », « Acces aux composants Fess », « Gestion des erreurs » et « Debogage et journalisation » supposent egalement ce contexte de script complet.
Execution d’un job de crawl
Crawl conditionnel
Execution sequentielle de plusieurs jobs
Utilisation des classes Java
Dans les scripts Groovy, vous pouvez utiliser les bibliotheques standard Java et les classes Fess.
Date et heure
Operations sur les fichiers
Communication HTTP
Avertissement
L’acces aux ressources externes affecte les performances, utilisez-le au minimum necessaire.
Acces aux composants Fess
Utilisez container pour acceder aux composants Fess.
System Helper
Recuperation des valeurs de configuration
Execution de recherche
Gestion des erreurs
Les instructions import doivent etre placees en haut du script (elles ne peuvent pas etre placees dans des blocs tels que try-catch ). Vous pouvez intercepter les exceptions avec try-catch pour controler les erreurs de job.
Debogage et journalisation
Sortie de logs
Sortie de debogage
Bonnes pratiques
Garder la simplicite : Eviter les logiques complexes, privilegier un code lisible
Verification de null : Utiliser les operateurs
?.et?:Gestion des exceptions : Gerer les erreurs inattendues avec try-catch approprie
Sortie de logs : Afficher des logs pour faciliter le debogage
Performance : Minimiser les acces aux ressources externes
Informations de reference
Apercu du scripting - Apercu du scripting
Présentation - Guide de configuration Data Store
Planificateur de tâches - Guide de configuration du planificateur