Visión General
Esta sección explica el desarrollo de extensiones de Fess. Proporciona información para extender Fess, incluyendo desarrollo de plugins, creación de conectores personalizados y personalización de temas.
Audiencia Objetivo
Desarrolladores que desean crear funciones personalizadas para Fess
Desarrolladores que desean crear plugins
Desarrolladores que desean entender el código fuente de Fess
Conocimientos Previos
Conocimientos básicos de Java 21
Conceptos básicos de Maven (sistema de construcción)
Experiencia en desarrollo de aplicaciones web
Entorno de Desarrollo
Entorno Recomendado
JDK: OpenJDK 21 o superior
IDE: IntelliJ IDEA / Eclipse / VS Code
Herramienta de construcción: Maven 3.9 o superior
Git: Control de versiones
Configuración
Obtener el código fuente:
Construir:
Iniciar el servidor de desarrollo:
Visión General de la Arquitectura
Fess está compuesto por los siguientes componentes principales:
Estructura de Componentes
| Componente | Descripción |
|---|---|
| Capa Web | Implementación MVC con el framework LastaFlute |
| Capa de Servicios | Lógica de negocio |
| Capa de Acceso a Datos | Integración con OpenSearch mediante DBFlute |
| Rastreador | Recolección de contenido con la biblioteca fess-crawler |
| Motor de Búsqueda | Búsqueda de texto completo con OpenSearch |
Frameworks Principales
LastaFlute: Framework web (Acciones, Formularios, Validación)
DBFlute: Framework de acceso a datos (integración con OpenSearch)
Lasta Di: Contenedor de inyección de dependencias
Estructura de Directorios
Puntos de Extensión
Fess proporciona los siguientes puntos de extensión:
Plugins
Puede agregar funcionalidad utilizando plugins.
Plugin de almacén de datos: Rastreo desde nuevas fuentes de datos
Plugin de motor de scripts: Soporte para nuevos lenguajes de script
Plugin de aplicación web: Extensión de la interfaz web
Plugin Ingest: Procesamiento de datos durante la indexación
Detalles: Arquitectura de Plugins
Temas
Puede personalizar el diseño de la pantalla de búsqueda.
Detalles: Guía de Desarrollo de Temas
Configuración
Puede personalizar muchos comportamientos en fess_config.properties.
Detalles: Introducción
Desarrollo de Plugins
Para detalles sobre el desarrollo de plugins, consulte lo siguiente:
Arquitectura de Plugins - Arquitectura de plugins
Desarrollo de Plugins de Almacén de Datos - Desarrollo de plugins de almacén de datos
Plugin de Motor de Scripts - Plugins de motor de scripts
Plugin de Aplicación Web - Plugins de aplicación web
Plugin Ingest - Plugins Ingest
Desarrollo de Temas
Guía de Desarrollo de Temas - Personalización de temas
Mejores Prácticas
Convenciones de Codificación
Seguir el estilo de código existente de Fess
Formatear código con
mvn formatter:formatAgregar encabezados de licencia con
mvn license:format
Pruebas
Escribir pruebas unitarias (
*Test.java)Las pruebas de integración son
*Tests.java
Registro
Usar Log4j2
logger.debug()/logger.info()/logger.warn()/logger.error()No registrar información sensible