Nota: este documento contiene actualmente 0 avisos y 0 errores (según el validador) siguiendo la sintaxis de HTML5.

Programación Básica en el Servidor: Práctica de Lucene

Se pretende introducir al alumno en el manejo de la biblioteca Lucene (descargar completo, o solo la biblioteca), totalmente hecha en Java para la indexación y búsqueda de documentos.

Como documentación de consulta, el alumno tiene disponible el Tutorial de Lucene así como el API online y la documentación de Lucene 2.9.4.

Otra documentación y artículos sobre Lucene que pueden ser de ayuda están disponibles en:


Primera parte de la práctica:

Con el fin de familiarizarse con la biblioteca Lucene, en esta primera parte, se le proporciona al alumno un ejemplo resuelto de indexación y búsqueda de documentos. El alumno tendrá que crear un nuevo proyecto 'Java' en el entorno Eclipse e introducir las siguientes clases Java:

  1. Indexer.java Clase Java que indexa un conjunto de ficheros. El índice es almacenado en un directorio especificado por el usuario. Se recomienda que para este propósito se utilice /tmp, evitando problemas de cuotas en disco.
  2. Searcher.java Clase Java que busca documentos en un índice (hay que indicarle dónde lo ha creado Indexer) de acuerdo a alguna consulta especificada por el usuario.

Utilizando ambas clases, crear un índice y realizar búsquedas para comprender el funcionamiento de ambas clases.


Segunda parte de la práctica:

Se desea crear una página web a través de la cual, los usuarios puedan realizar búsquedas de documentos en un directorio del servidor (/var/www/manual/. Este directorio YA es accesible desde el exterior mediante el URI /manual/ en APACHE, no en TOMCAT). Para facilitar el acceso desde la web (protocolo HTTP) a los documentos, los enlaces devueltos deben apuntar al directorio /manual/ de memex.dsic.upv.es; es decir http://memex.dsic.upv.es/manual/ será el prefijo de los resultados.

Para ello, se proporciona un formulario para recoger las consultas de los usuarios. A partir de este formulario, el alumno deberá crear un servlet que recoja las consultas del formulario y devuelva los resultados encontrados en forma de lista de hipervínculos a los documentos encontrados.

Los pasos a seguir son los siguientes:

  1. Crear un índice del directorio que contiene los documentos a indexar.
  2. Crear un servlet que:
    1. Recoja los parámetros de búsqueda del formulario
    2. Realice una búsqueda en el índice
    3. A partir de los resultados devuelva una página de resultados
  3. Comprobar los resultados en la página: http://memex.dsic.upv.es:8080/lucene/

Resultados

Búsqueda por nombre
Encontrados 15 documentos

Como regla general se debería comprobar que los resultados son correctos: en el caso de búsqueda por nombre, el texto introducido debe ser una subcadena de los resultados mostrados.


Resultados

Búsqueda por nombre y contenido
Encontrados 9 documentos

Como regla general se debería comprobar que los resultados son correctos: en la búsqueda por contenido, para cada página obtenida como resultado hay que verificar mediante el navegador si contiene la palabra buscada.

En este caso (head por nombre y contenido) pueden aparecer cerca de 170 resultados como síntoma de que no se han indexado los documentos considerando que son HTML. Tendrás que modificar tu indexador para que evite las palabras especiales de HTML.


Resultados

Búsqueda por nombre
Encontrados 1 documentos

Resultados

Búsqueda por nombre y contenido
Encontrados 1 documentos

Resultados

Búsqueda por nombre y contenido
Encontrados 13 documentos

 

Como referencia de ayuda para construir un indexador y un buscador de documentos de hipertexto, pueden usarse los ejemplos (lucene-demos.jar) incluidos en Lucene