Descripción general
Groovy es el lenguaje de scripting predeterminado de Fess. Se ejecuta en la máquina virtual Java (JVM) y permite escribir scripts con una sintaxis más concisa mientras mantiene alta compatibilidad con Java.
Sintaxis básica
Declaración de variables
Operaciones de cadenas
Operaciones de colecciones
Estructuras condicionales
Bucles
Scripts de Data Store
Ejemplos de scripts en configuración de data store.
Nota
En los scripts de data store, cada línea campo=expresion se evalúa de forma independiente como una única expresión. Por lo tanto, no se pueden usar sentencias import, declaraciones def multilínea ni estructuras de control multilínea que establezcan varios campos a la vez (como bloques if). Al usar clases Java, escríbalas como una única expresión con el nombre de clase completamente calificado (FQCN), y use el operador ternario por campo para los valores condicionales (por ejemplo, url=data.published ? data.url : null ). Además, el nombre de variable data usado aquí es solo un ejemplo; el nombre de variable real depende del conector de data store utilizado. Consulte Rastreo de Almacén de Datos para más detalles.
Mapeo básico
Generación de URL
Procesamiento de contenido
Procesamiento de fechas
Objetos disponibles
Los objetos disponibles en los scripts varían según el contexto de ejecución.
| Contexto | Objeto | Descripción |
|---|---|---|
| Todos los contextos | container | Contenedor DI. Se usa para acceder a los componentes mediante container.getComponent("...") |
| Trabajos programados | executor | Control de ejecución de trabajos ( JobExecutor ). Necesario para el soporte de detención de trabajos |
| Data Store | (específico del conector) | Variables de registro de datos proporcionadas por cada data store. El nombre de la variable depende del conector |
| Mapeo de rutas | url , matcher | La cadena de URL a convertir y el resultado de coincidencia de expresión regular ( Matcher ). Disponible en configuraciones de reemplazo con el prefijo groovy: |
| Boost de documento | (campos del documento) | Cada campo del documento objetivo está disponible como variable (se usa en expresiones de condición y de valor de boost) |
Scripts de trabajos programados
Ejemplos de scripts Groovy para trabajos programados. En los trabajos programados, container y executor están disponibles. Pasar executor al método execute() del trabajo habilita el control de detención del trabajo.
Nota
Un script de trabajo programado se evalúa como un único script Groovy completo. Por lo tanto, a diferencia de los scripts de data store, puede usar sentencias import, declaraciones def multilínea y estructuras de control multilínea. Los ejemplos de «Uso de clases Java», «Acceso a componentes de Fess», «Manejo de errores» y «Depuración y salida de logs» que aparecen a continuación también asumen este contexto de script completo.
Ejecución de trabajo de crawl
Crawl condicional
Ejecución secuencial de múltiples trabajos
Uso de clases Java
Dentro de los scripts Groovy, puede usar la biblioteca estándar de Java y las clases de Fess.
Fecha y hora
Operaciones de archivo
Comunicación HTTP
Advertencia
El acceso a recursos externos afecta el rendimiento, manténgalo al mínimo necesario.
Acceso a componentes de Fess
Puede acceder a los componentes de Fess usando container.
System Helper
Obtención de valores de configuración
Ejecución de búsqueda
Manejo de errores
Las sentencias import deben colocarse al principio del script (no pueden colocarse dentro de bloques como try-catch ). Puede capturar excepciones con try-catch para controlar los errores del trabajo.
Depuración y salida de logs
Salida de logs
Salida de depuración
Mejores prácticas
Mantenerlo simple: Evitar lógica compleja, escribir código legible
Verificación de null: Usar operadores
?.y?:Manejo de excepciones: Manejar errores inesperados con try-catch apropiado
Salida de logs: Registrar logs para facilitar la depuración
Rendimiento: Minimizar acceso a recursos externos
Información de referencia
Descripción general del scripting - Descripción general de scripting
Rastreo de Almacén de Datos - Guía de configuración de Data Store
Programador de Tareas - Guía de configuración del programador