Servidor de Búsqueda de Texto Completo de Código Abierto - Visión General del Desarrollo de Fess
Esta página proporciona una visión general del desarrollo de Fess e información básica para comenzar el desarrollo.
Visión General
Fess es un servidor de búsqueda de texto completo de código abierto desarrollado en Java. Con el objetivo de facilitar la construcción de búsqueda empresarial, proporciona potentes funciones de búsqueda y una pantalla de administración fácil de usar.
Características de Fess
Configuración sencilla: Se puede iniciar inmediatamente con un entorno Java
Crawler potente: Compatible con diversas fuentes de datos como sitios web, sistemas de archivos, bases de datos, etc.
Soporte de japonés: Optimizado para búsqueda de texto completo en japonés
Extensibilidad: Se pueden extender funciones mediante plugins
REST API: Las funciones de búsqueda se pueden usar desde otras aplicaciones
Pila de Tecnología
Fess se desarrolla usando las siguientes tecnologías.
Versión Objetivo
Esta documentación está dirigida a las siguientes versiones:
Fess: 15.3.0
Java: 21 o posterior
OpenSearch: 3.3.0
Maven: 3.x
Tecnologías y Frameworks Principales
Java 21
Fess es una aplicación que funciona con Java 21 o posterior. Aprovecha las últimas características de Java, mejorando el rendimiento y la mantenibilidad.
Recomendado: Eclipse Temurin 21 (anteriormente AdoptOpenJDK)
Versión mínima: Java 21
LastaFlute
LastaFlute es el framework usado en la capa de aplicación web de Fess.
Funciones principales:
Contenedor DI (Inyección de dependencias)
Framework web basado en acciones
Validación
Gestión de mensajes
Gestión de configuración
Recursos de aprendizaje:
Puede aprender el uso práctico leyendo el código de Fess
DBFlute
DBFlute es una herramienta de mapeo O/R para acceso a bases de datos. En Fess, se usa para generar automáticamente código Java desde el esquema de OpenSearch.
Funciones principales:
Constructor SQL con seguridad de tipos
Generación automática de código desde esquema
Generación automática de documentación de base de datos
Recursos de aprendizaje:
OpenSearch
OpenSearch es un motor de búsqueda y análisis distribuido usado como motor de búsqueda de Fess.
Versión soportada: OpenSearch 3.3.0
Plugins obligatorios:
opensearch-analysis-fess: Plugin de análisis morfológico dedicado a Fess
opensearch-analysis-extension: Funcionalidad de análisis de idiomas adicionales
opensearch-minhash: Detección de documentos similares
opensearch-configsync: Sincronización de configuración
Recursos de aprendizaje:
Maven
Maven se usa como herramienta de construcción de Fess.
Usos principales:
Gestión de bibliotecas de dependencias
Ejecución de procesamiento de construcción
Ejecución de pruebas
Creación de paquetes
Herramientas de Desarrollo
Entornos de Desarrollo Recomendados
Eclipse
La documentación oficial explica métodos de desarrollo usando Eclipse.
Versión recomendada: Eclipse 2023-09 o posterior
Plugins necesarios:
Maven Integration for Eclipse (m2e)
Eclipse Java Development Tools
IntelliJ IDEA
También es posible desarrollar con IntelliJ IDEA.
Edición recomendada: Community Edition o Ultimate Edition
Funciones necesarias:
Soporte de Maven (incluido por defecto)
Soporte de Java
VS Code
VS Code también se puede usar para desarrollo ligero.
Extensiones necesarias:
Java Extension Pack
Maven for Java
Control de Versiones
Git: Gestión de código fuente
GitHub: Alojamiento de repositorios, gestión de issues, pull requests
Conocimientos Necesarios
Conocimientos Básicos
Para el desarrollo de Fess, se necesitan los siguientes conocimientos:
Obligatorio
Programación Java: Clases, interfaces, genéricos, expresiones lambda, etc.
Orientación a objetos: Herencia, polimorfismo, encapsulación
Maven: Comandos básicos y comprensión de pom.xml
Git: clone, commit, push, pull, branch, merge, etc.
Recomendado
LastaFlute: Conceptos de Action, Form, Service
DBFlute: Uso de Behavior, ConditionBean
OpenSearch/Elasticsearch: Conceptos básicos de índice, mapeo, consultas
Desarrollo web: HTML, CSS, JavaScript (especialmente para desarrollo frontend)
Comandos Linux: Desarrollo/depuración en entorno de servidor
Recursos de Aprendizaje
Si está abordando el desarrollo de Fess por primera vez, los siguientes recursos son útiles:
Documentación Oficial
Comunidad
GitHub Discussions: Preguntas y discusiones
Rastreador de Issues: Reportes de errores y solicitudes de funciones
Foro de Fess: Foro de comunidad en japonés
Código Fuente
Leer el código real es el método de aprendizaje más efectivo:
Comenzar leyendo desde funciones pequeñas
Rastrear el comportamiento del código usando depurador
Consultar código de prueba existente
Flujo Básico de Desarrollo
El desarrollo de Fess generalmente procede con el siguiente flujo:
Verificar/Crear Issue
Verifique los issues de GitHub y decida el contenido a trabajar. Si es una nueva función o corrección de error, cree un issue.
Crear Rama
Cree una rama de trabajo:
git checkout -b feature/my-new-feature
Codificar
Implemente la función o corrija el error.
Probar
Cree/ejecute pruebas unitarias y verifique que los cambios funcionen correctamente.
Hacer Commit
Haga commit de los cambios:
git add . git commit -m "Add new feature"Pull Request
Haga push a GitHub y cree un pull request:
git push origin feature/my-new-feature
Consulte Flujo de Trabajo de Desarrollo para más detalles.
Visión General de la Estructura del Proyecto
El código fuente de Fess tiene la siguiente estructura:
fess/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/codelibs/fess/
│ │ │ ├── app/ # Capa de aplicación web
│ │ │ │ ├── web/ # Pantalla de búsqueda
│ │ │ │ └── service/ # Capa de servicio
│ │ │ ├── crawler/ # Funcionalidad de crawler
│ │ │ ├── es/ # Relacionado con OpenSearch
│ │ │ ├── helper/ # Clases helper
│ │ │ ├── job/ # Procesamiento de jobs
│ │ │ ├── util/ # Utilidades
│ │ │ └── FessBoot.java # Clase de inicio
│ │ ├── resources/
│ │ │ ├── fess_config.properties
│ │ │ ├── fess_config.xml
│ │ │ └── ...
│ │ └── webapp/
│ │ └── WEB-INF/
│ │ └── view/ # Archivos JSP
│ └── test/
│ └── java/ # Código de prueba
├── pom.xml # Archivo de configuración de Maven
└── README.md
Paquetes Principales
app
Este es el código de la capa de aplicación web. Incluye Action, Form, Service de la pantalla de administración y pantalla de búsqueda.
crawler
Este es el código de funcionalidad de recopilación de datos, como web crawler, file crawler, data store crawler, etc.
es
Este es el código de integración con OpenSearch. Incluye operaciones de índice, construcción de consultas de búsqueda, etc.
helper
Estas son clases helper usadas en toda la aplicación.
job
Este es el código de jobs ejecutados según programación. Incluye job de rastreo, job de optimización de índice, etc.
Consulte Arquitectura y Estructura del Código para más detalles.
Inicio Rápido del Entorno de Desarrollo
Explicamos cómo configurar el entorno de desarrollo y ejecutar Fess con pasos mínimos.
Requisitos Previos
Java 21 o posterior instalado
Git instalado
Maven 3.x instalado
Procedimiento
Clonar Repositorio
git clone https://github.com/codelibs/fess.git cd fessDescargar Plugins de OpenSearch
mvn antrun:run
Ejecutar
Ejecutar desde Maven:
mvn compile exec:java
O ejecute la clase
org.codelibs.fess.FessBootdesde un IDE (Eclipse, IntelliJ IDEA, etc.).Acceder
Acceda a lo siguiente en el navegador:
Pantalla de búsqueda: http://localhost:8080/
Pantalla de administración: http://localhost:8080/admin/ - Usuario predeterminado: admin / admin
Consulte Configuración del Entorno de Desarrollo para procedimientos de configuración detallados.
Consejos de Desarrollo
Ejecución de Depuración
Al ejecutar depuración en IDE, ejecute la clase FessBoot. Al establecer puntos de interrupción, puede rastrear el comportamiento del código en detalle.
Hot Deploy
LastaFlute puede reflejar algunos cambios sin reiniciar. Sin embargo, se requiere reiniciar para cambios en la estructura de clases, etc.
Verificación de Registros
Los registros se emiten en el directorio target/fess/logs/. Si ocurre un problema, verifique los archivos de registro.
Operación de OpenSearch
OpenSearch integrado se coloca en target/fess/es/. También es posible depurar llamando directamente a la API de OpenSearch:
# Verificar índices
curl -X GET http://localhost:9201/_cat/indices?v
# Buscar documentos
curl -X GET http://localhost:9201/fess.search/_search?pretty
Comunidad y Soporte
Preguntas y Consultas
Si tiene preguntas o consultas durante el desarrollo, use lo siguiente:
GitHub Discussions: Preguntas y discusiones generales
GitHub Issues: Reportes de errores y solicitudes de funciones
Foro de Fess: Foro en japonés
Métodos de Contribución
Consulte Guía de Contribución para métodos de contribución a Fess.
Próximos Pasos
Cuando esté listo para configurar el entorno de desarrollo, proceda a Configuración del Entorno de Desarrollo.
Consulte también los siguientes documentos para información detallada:
Arquitectura y Estructura del Código - Arquitectura y estructura del código
Flujo de Trabajo de Desarrollo - Flujo de trabajo de desarrollo
Construcción y Pruebas - Construcción y pruebas
Guía de Contribución - Guía de contribución