Descripcion general
Groovy es el lenguaje de scripting predeterminado de Fess. Se ejecuta en la maquina virtual Java (JVM) y permite escribir scripts con una sintaxis mas concisa mientras mantiene alta compatibilidad con Java.
Sintaxis basica
Declaracion de variables
Operaciones de cadenas
Operaciones de colecciones
Estructuras condicionales
Bucles
Scripts de Data Store
Ejemplos de scripts en configuracion de data store.
Nota
En los scripts de data store, cada linea campo=expresion se evalua de forma independiente como una unica expresion. Por lo tanto, no se pueden usar sentencias import, declaraciones def multilinea ni estructuras de control multilinea que establezcan varios campos a la vez (como bloques if). Al usar clases Java, escribalas como una unica expresion 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 ). Ademas, el nombre de variable data usado aqui es solo un ejemplo; el nombre de variable real depende del conector de data store utilizado. Consulte Rastreo de Almacén de Datos para mas detalles.
Mapeo basico
Generacion de URL
Procesamiento de contenido
Procesamiento de fechas
Objetos disponibles
Los objetos disponibles en los scripts varian segun el contexto de ejecucion.
| Contexto | Objeto | Descripcion |
|---|---|---|
| Todos los contextos | container | Contenedor DI. Se usa para acceder a los componentes mediante container.getComponent("...") |
| Trabajos programados | executor | Control de ejecucion de trabajos ( JobExecutor ). Necesario para el soporte de detencion de trabajos |
| Data Store | (especifico 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 expresion regular ( Matcher ). Disponible en configuraciones de reemplazo con el prefijo groovy: |
| Boost de documento | (campos del documento) | Cada campo del documento objetivo esta disponible como variable (se usa en expresiones de condicion y de valor de boost) |
Scripts de trabajos programados
Ejemplos de scripts Groovy para trabajos programados. En los trabajos programados, container y executor estan disponibles. Pasar executor al metodo execute() del trabajo habilita el control de detencion del trabajo.
Nota
Un script de trabajo programado se evalua como un unico script Groovy completo. Por lo tanto, a diferencia de los scripts de data store, puede usar sentencias import, declaraciones def multilinea y estructuras de control multilinea. Los ejemplos de «Uso de clases Java», «Acceso a componentes de Fess», «Manejo de errores» y «Depuracion y salida de logs» que aparecen a continuacion tambien asumen este contexto de script completo.
Ejecucion de trabajo de crawl
Crawl condicional
Ejecucion secuencial de multiples trabajos
Uso de clases Java
Dentro de los scripts Groovy, puede usar la biblioteca estandar de Java y las clases de Fess.
Fecha y hora
Operaciones de archivo
Comunicacion HTTP
Advertencia
El acceso a recursos externos afecta el rendimiento, mantengalo al minimo necesario.
Acceso a componentes de Fess
Puede acceder a los componentes de Fess usando container.
System Helper
Obtencion de valores de configuracion
Ejecucion de busqueda
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.
Depuracion y salida de logs
Salida de logs
Salida de depuracion
Mejores practicas
Mantenerlo simple: Evitar logica compleja, escribir codigo legible
Verificacion de null: Usar operadores
?.y?:Manejo de excepciones: Manejar errores inesperados con try-catch apropiado
Salida de logs: Registrar logs para facilitar la depuracion
Rendimiento: Minimizar acceso a recursos externos
Informacion de referencia
Descripcion general del scripting - Descripcion general de scripting
Rastreo de Almacén de Datos - Guia de configuracion de Data Store
Programador de Tareas - Guia de configuracion del programador