Aperçu
Groovy est le langage de script par défaut de Fess. Il fonctionne sur la machine virtuelle Java (JVM) et, tout en étant hautement compatible avec Java, permet d’écrire des scripts avec une syntaxe plus concise.
Syntaxe de base
Déclaration de variables
Manipulation de chaînes
Opérations 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 évaluée indépendamment en tant qu’expression unique. Par conséquent, les instructions import, les déclarations def multi-lignes et les structures de contrôle multi-lignes qui définissent plusieurs champs à la fois (comme les blocs if) ne peuvent pas être utilisées. Lorsque vous utilisez des classes Java, écrivez-les en tant qu’expression unique avec le nom de classe complet (FQCN), et utilisez un opérateur ternaire par champ pour les valeurs conditionnelles (par exemple, url=data.published ? data.url : null ). Par ailleurs, le nom de variable data utilisé ici n’est qu’un exemple ; le nom de variable réel dépend du connecteur de data store utilisé. Consultez Crawl de magasin de données pour plus de détails.
Mapping de base
Génération d’URL
Traitement du contenu
Traitement des dates
Objets disponibles
Les objets disponibles dans les scripts varient en fonction du contexte d’exécution.
| Contexte | Objet | Description |
|---|---|---|
| Tous les contextes | container | Conteneur DI. Utilisé pour accéder aux composants via container.getComponent("...") |
| Tâches planifiées | executor | Contrôle d’exécution des jobs ( JobExecutor ). Nécessaire pour le support de l’arrêt des jobs |
| Data Store | (spécifique au connecteur) | Variables d’enregistrement de données fournies par chaque data store. Le nom de la variable dépend du connecteur |
| Mappage de chemins | url , matcher | La chaîne URL à convertir et le résultat de la correspondance par expression régulière ( Matcher ). Disponible dans les paramètres de remplacement avec le préfixe groovy: |
| Boost de document | (champs du document) | Chaque champ du document cible est disponible en tant que variable (utilisé dans les expressions de condition et de valeur de boost) |
Scripts de tâches planifiées
Exemples de scripts Groovy pour les tâches planifiées. Dans les tâches planifiées, container et executor sont disponibles. Passer executor à la méthode execute() du job active le contrôle d’arrêt du job.
Note
Un script de tâche planifiée est évalué en tant que script Groovy unique et complet. Par conséquent, contrairement aux scripts de data store, vous pouvez utiliser des instructions import, des déclarations def multi-lignes et des structures de contrôle multi-lignes. Les exemples ci-dessous « Utilisation des classes Java », « Accès aux composants Fess », « Gestion des erreurs » et « Débogage et journalisation » supposent également ce contexte de script complet.
Exécution d’un job de crawl
Crawl conditionnel
Exécution séquentielle de plusieurs jobs
Utilisation des classes Java
Dans les scripts Groovy, vous pouvez utiliser les bibliothèques standard Java et les classes Fess.
Date et heure
Opérations sur les fichiers
Communication HTTP
Avertissement
L’accès aux ressources externes affecte les performances, utilisez-le au minimum nécessaire.
Accès aux composants Fess
Utilisez container pour accéder aux composants Fess.
System Helper
Récupération des valeurs de configuration
Exécution de recherche
Gestion des erreurs
Les instructions import doivent être placées en haut du script (elles ne peuvent pas être placées dans des blocs tels que try-catch ). Vous pouvez intercepter les exceptions avec try-catch pour contrôler les erreurs de job.
Débogage et journalisation
Sortie de logs
Sortie de débogage
Bonnes pratiques
Garder la simplicité : Éviter les logiques complexes, privilégier un code lisible
Vérification de null : Utiliser les opérateurs
?.et?:Gestion des exceptions : Gérer les erreurs inattendues avec try-catch approprié
Sortie de logs : Afficher des logs pour faciliter le débogage
Performance : Minimiser les accès aux ressources externes
Informations de référence
Apercu du scripting - Aperçu du scripting
Crawl de magasin de données - Guide de configuration Data Store
Planificateur de tâches - Guide de configuration du planificateur