Apuntes DAM
Avanzado
Unas 30 horasProyecto 3 de 4

Motor 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. 1

    Lectura y normalización

  2. 2

    Índice

  3. 3

    Relevancia y fragmentos

  4. 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

CriterioPesoPara la máxima nota
Estructuras de datos30 %Índice invertido correcto y búsquedas sin recorrer todos los ficheros
Procesado de texto20 %Normalización robusta con tildes, mayúsculas y signos
Relevancia20 %Ordenación razonable y explicada
Ficheros y persistencia15 %Índice persistente y actualización incremental correcta
Calidad del código15 %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.