Avanzado
Unas 30 horasProyecto 3 de 4Motor de búsqueda de documentos
Construye un pequeño buscador como el de un sistema operativo: indexa todos los ficheros de texto de una carpeta y permite buscar palabras, ordenando los resultados por relevancia. El índice se guarda en disco para no recalcularlo cada vez y se actualiza solo con los ficheros que han cambiado.
Java 21java.nio.fileColecciones y streamsExpresiones regulares
Tu avance0/16 · 0 %
Objetivos de aprendizaje
- •Elegir estructuras de datos eficientes (índice invertido con Map<String, Map<Path, Integer>>)
- •Procesar texto: normalizar, quitar tildes y palabras vacías
- •Leer y escribir ficheros con java.nio y serialización
- •Medir y mejorar el rendimiento
Requisitos mínimos
Fases sugeridas
- 1
Lectura y normalización
- 2
Índice
- 3
Relevancia y fragmentos
- 4
Persistencia y rendimiento
Qué entregar
- Código fuente
- Conjunto de documentos de prueba
- Informe de rendimiento con tiempos antes y después de optimizar
Para ir más allá
- Búsqueda de frases exactas entre comillas
- Sugerencias para palabras mal escritas (distancia de Levenshtein)
- Interfaz gráfica sencilla con JavaFX
Rúbrica de evaluación
| Criterio | Peso | Para la máxima nota |
|---|---|---|
| Estructuras de datos | 30 % | Índice invertido correcto y búsquedas sin recorrer todos los ficheros |
| Procesado de texto | 20 % | Normalización robusta con tildes, mayúsculas y signos |
| Relevancia | 20 % | Ordenación razonable y explicada |
| Ficheros y persistencia | 15 % | Índice persistente y actualización incremental correcta |
| Calidad del código | 15 % | Clases con responsabilidades claras y pruebas de las partes críticas |
Úsala para autoevaluarte antes de entregar. Tu profesorado puede usar otros criterios.
Consejos y errores típicos
- Usa Normalizer.normalize(texto, Form.NFD) y quita los diacríticos para ignorar las tildes.
- Mide antes de optimizar: casi siempre el cuello de botella no está donde crees.