Práctica 3: Búsqueda de información mediante la librería Lucene

Documentos relacionados
Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos

Práctica 5: Implementación en C++ de sistemas cliente/servidor basados en comunicación

Procesamiento de documentos XML.

DISEÑO DE UNA METODOLOGÍA DOCENTE

SICRES 3.0 Presentación Ejecutiva

Escala San Martín. InstruccIones para la aplicación InformátIca. Evaluación de la Calidad de Vida de Personas con Discapacidades Significativas

Manual de Usuario. Aplicación de Autoevaluación de Centros

PROYECTO 2 Parte 1 BASES DE DATOS. Curso (2 Semestre) Grupos 4F2M y 4F1M-1 (aula 5102) CONSULTAS REMOTAS EN JAVA A UNA BASE DE DATOS

Tema 2 Introducción a la Programación en C.

CURSO TÉCNICO DE ACCESIBILIDAD Y USABILIDAD WEB

Diseño de una calculadora

Sistema de Liquidación Directa. Servicio de Solicitud de Borradores On-line. Subdirección General de Afiliación, Cotización y Gestión del Sistema RED

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

BLOQUE I: HOJA DE CÁLCULO

- MANUAL DE USUARIO DE LA PLATAFORMA DE EDICION DE PROYECTOS DE LA XERENCIA MUNICIPAL DE URBANISMO DE VIGO -

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

Instrucciones de uso de la Aplicación Móvil del Servicio Canario de Empleo.

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

Enterprise Architect:

Problemática con la actualización de Java 7 update 45

Objetos de aprendizaje: Computadora

Noticias RED Remisión electrónica de documentos

TEMA 4. PROCESO UNIFICADO

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Lenguaje de Programación

DISTAFARMA: APLICACIÓN PARA LA VENTA A DISTANCIA DE MEDICAMENTOS DE USO HUMANO NO SUJETOS A PRESCRIPCIÓN MÉDICA MANUAL PARA LA OFICINA DE FARMACIA

Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7

INTRODUCCIÓN A BASE DE DATOS. Excel - Access

Shell Script de instalación y configuración para el servicio DHCP en CentOS v5.x. Manual de instrucciones.

MICROSOFT ACCESS 2010 FÁCIL

Laboratorio de Instrumentación y Sistemas de adquisición de datos en la Universidad Politécnica de Valencia

Manual de instalación y actualización de la aplicación Sigma

CAPITULO 1 INTRODUCCION AL PROYECTO

Los pasos a seguir para cumplimentar la solicitud son los siguientes: A continuación, se detallarán cada uno de estos apartados.

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

ESPIRAL MORFOSINTAXIS Consuelo Belloch Ortí Unidad de Tecnología Educativa. Universidad de Valencia

JAVA 7 Los fundamentos del lenguaje Java

INSTRUCTIVO BASICO DE RADICADO INTERNO PARA EL MANEJO DEL SISTEMA DE GESTIÓN DOCUMENTAL MERCURIO WEB VERSIÓN 6.0

ATRIBUTOS DE LOS FICHEROS EN LINUX

Requerimientos de Software

OFICINA DE REGISTRO VIRTUAL DE ENTIDADES LOCALES

INGENIERÍA DEL SOFTWARE

Proyecto Multimedia. Elio Sancristóbal Ruiz

3. DOCUMENTACIÓN 3.1. DOCUMENTACIÓN DE APLICACIONES. OBJETIVOS PARA MODIFICAR HACE FALTA COMPRENDER/ESTUDIAR:

INFORMÁTICA Y COMUNICACIONES

Fundamentos de Ingeniería de Software [Etapas II]

Sistemas Operativos. Curso 2016 Sistema de Archivos

SUMINISTRO DE INFORMACIÓN FISCAL EN XML

ANEXO II. Resumen de la actuación

MANUAL DEL SERVICIO DE SOLICITUD Y CONSULTA DE DADs POR PETICIÓN MASIVA

UNIVERSIDAD POLITÉCNICA DE VALENCIA ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL DE VALENCIA

ServiceTonic. Guía de instalación

Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Informe final de pasantía

RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1

PREMIO A LA GESTIÓN TRANSPARENTE, VERSION 2015

. REGISTRO DE ENFERMEDADES RARAS

Sesión VI: Desarrollo de aplicaciones en el entorno MATLAB

Búsqueda de usuario. Relación tutor/tutorado. Reporte de interacción tutor-tutorado. Reporte socioeconómico

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías...

Instructivo para la aplicación de encuestas de percepción de servicios

Ordenador local + Servidor Remoto

Guía de inicio rápido de la aplicación Novell Filr 2.0 Web

Contenido. Introducción Usando di Monitoring como un usuario normal Uso de di Monitoring como un operador de entrada de datos...

GUIA DE INSTALACIÓN DEL FORMULARIO DIGITAL PARA LA PRESENTACIÓN DE PROYECTOS PARA ESTÍMULOS TRIBUTARIOS

IMPRESIÓN Y CONECTIVIDAD

Manual de Usuario. WordPress

NOTAS TÉCNICAS SOBRE EL SIT: Comisiones Comerciales

PROGRAMACIÓN CON PHP Y MYSQL. 40 horas 60 días

ANEXO 3 MANUAL DE OPERACIÓN PARA OFICINAS MUNICIPALES

MINISTERIO DE SALUD Y PROTECCIÓN SOCIAL BOGOTÁ, AGOSTO DE 2015

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Se definen los siguientes objetivos que se extraen de la propuesta anteriormente planteada:

GUÍA DE INSTALACIÓN Noviembre 3 de 2010

Experto en Microsoft Access 2016

INSTRUCCIONES PRESENTACIÓN DE CUENTAS ANUALES EN EL REGISTRO MERCANTIL

Informática forense y peritajes informáticos, 3ª edición

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

ELECTRODOMÉSTICOS TPV Noticia nº: 1

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA

TEMA 3: El proceso de compilación, del código fuente al código máquina

Manual de Legalización de libros contables en la aplicación CAICONTA

MANUAL DE USUARIO SISTEMA DE POSTULACIÓN EN LINEA Cartas de Recomendación

Utilidades de la Factoría de Actividades Informática y Logopedia (FACIL). Raúl Tárraga Mínguez. Inmaculada Fernández Andrés.

Programación en java. Estructuras algorítmicas

MICROSOFT EXCEL 2016 Avanzado

Sintaxis del Analizador de consultas Lucene

Declaración Anual de Operaciones con Terceras Personas - Modelo 347 en Retailer

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

MANUAL PARA GESTIÓN DE METADATOS

Repositorio Institucional

Diario Oficial de la Federación

IBM SPSS Statistics para Mac OS Instrucciones de instalación (Licencia de sede)

Inicio de B-kin Project Monitor

Guía de instalación de CAM EXPRESS 8.5 Para Windows XP

DAO - Diseño Asistido por Ordenador

Manual de instalación AutoFirma 1.4.3

PROGRAMA PARA EL FORTALECIMIENTO DE LA FUNCIÓN PÚBLICA EN AMÉRICA LATINA MANUAL DE USUARIO DEL FORMULARIO

Guía para informar sobre la homologación de la titulación extranjera 17/09/2013 GUÍA PARA INFORMAR SOBRE LA HOMOLOGACIÓN DE LA TITULACIÓN EXTRANJERA

Transcripción:

Práctica 3: Búsqueda de información mediante la librería Lucene Sistemas de Información Grado de Informática Dpto. de Informática e Ingeniería de Sistemas, Universidad de Zaragoza Escuela de Ingeniería y Arquitectura 4 de noviembre de 2012 1. Objetivos Hoy en día numerosos Sistemas de información emplean técnicas de búsqueda y recuperación de información (Information Search and Retrieval -ISR-) para obtener documentos electrónicos y cualquier tipo de colección documental digital (metadatos de diferentes elementos, contenidos de bases de datos relacionales, etc.) con el objetivo de emplear la información y datos relevantes de la forma pertinente. En esta práctica se presenta la librería Apache Lucene que permite incorporar mecanismos de indexación y búsqueda de información en aplicaciones implementadas en diversos lenguajes de programación (Java,.Net, Python, etc.). En mayor detalle, los objetivos de esta práctica son: Familiarizarse con la librería Lucene probando el ejemplo proporcionado. Implementar una aplicación con interfaz de texto que permita la indexación de un determinado directorio. Implementar una aplicación con interfaz de texto que permita la búsqueda de documentos en el directorio indexado con la aplicación anterior mediante preguntas basadas en palabras clave. Añadir la funcionalidad de búsqueda basada en palabras clave a la aplicación web bancaria desarrollada en las sesiones anteriores para realizar búsquedas de usuarios. El entorno de desarrollo a utilizar ser JDK 1.7. 2. Contenidos La práctica consta de tres bloques, de los cuales el primero consiste en responder a una serie de preguntas relacionadas con la librería Lucene, el segundo establece que se realicen dos aplicaciones con interfaces de texto que permitan la indexación y búsqueda 1

de documentos en un determinado directorio, y el tercero requiere ampliar la aplicación Web construida en las sesiones anteriores. Además se requiere que se encapsule e instale la nueva versión de la aplicación desarrollada en el servidor Tomcat. 2.1. Introducción a la librería Lucene Lucene permite la creación de un índice inverso en el que se añaden documentos para posteriormente buscarlos. Las clases fundamentales de la librería se enumeran a continuación: IndexWriter: Permite la construcción y actualización del índice invertido que va a emplear el sistema de recuperación de información. En Lucene los índices son autoincrementales, es decir una vez creados se pueden ir añadiendo a ellos documentos susceptibles de ser indexados. Document: Los documentos son la unidad de indexación y búsqueda en Lucene. Un objeto de este tipo representa un único documento. No obstante, se debe señalar que un objeto de este tipo no se tiene porque corresponder con un fichero sino que constituye la unidad de indexación del sistema de búsqueda construido, así por ejemplo podría representar una tupla de una determinada base de datos. Los objetos Document se modelan como un conjunto de campos(fields) de la forma nombre,valor. Field: Cuando se crea un objeto Field además del nombre del campo y su valor, se debe indicar si se desea almacenar el valor del campo en el índice o no. En el caso de que el valor del campo sea razonablemente pequeño, Lucene permite que sea almacenado en el índice. Los campos almacenados en el índice, en lugar de utilizar el objeto Document para localizar los datos originales, pueden emplear directamente el índice. En general cuando se desea tokenizar el valor del campo se emplea la subclase TextField, mientras que si no se desea tokenizar se emplea StringField. Gracias a esta división en campos, es posible tratar con documentos que posean cierta estructura, por ejemplo para indexar correos electrónicos, se pueden considerar cuatro campos que contengan el remitente, los destinatarios, el título o subject y el contenido del correo, respectivamente. Analyzer: Los analizadores son los encargados de procesar los textos para obtener sus correspondientes representaciones internas (vista lógicas). Se emplean tanto en la creación de índices como en los procesos de búsqueda, ya que las querires deben ser procesadas con el mismo criterio que los documentos indexados. Lucene proporciona diversos analizadores, por ejemplo el SimpleAnalyzer que simplemente divide el texto en palabras y convierte todo a minúsculas o el StandardAnalyzer que además elimina stopwords (por defecto, las del idioma inglés). IndexSearcher: Constituye la base para realizar búsquedas en un índice de documentos. Para realizar una búsqueda se emplea el método search(), que proporciona los documentos que satisfacen las condiciones de la búsqueda indicadas en un objeto Query. emphquery: Es una clase abstracta que proporciona los mecanismos necesarios para formular las necesidades de información. 2

Hit: Los objetos Hit representan cada uno de los resultados obtenidos al realizar cierta consulta en un determinado índice. A través de estos objetos se puede acceder al documento al que se refiere el resultado. Además cada Hit tiene asociada una puntuación (score) que representa la relevancia del documento asociado al Hit para la pregunta formulada. Para facilitar la familiarización con la biblioteca Lucene, se proporciona un ejemplo que permite la indexación de cuatro documentos de texto codificados en UTF-8 (uno.txt, dos.txt, tres.txt y cuatro.txt) y la búsqueda en el índice creado (el índice creado se almacena en memoria). Realizar las siguientes consultas e indicar cuál es el resultado de la búsqueda: 1. tomcat 2. tomcat OR lucene 3. Lucene 4. of 5. tomcat 6. tomcat* 7. jakarta 8. Lucene -apache Modificar el código para que en lugar de utilizar el StandardAnalyzer se use el SimpleAnalyzer. Indexe de nuevo los ficheros y repita la consulta of. Cuál es la nueva respuesta? por qué? 2.2. indexación y búsqueda de documentos en un determinado directorio Desarrollar una aplicación que realice búsquedas de documentos en un determinado directorio. El directorio puede contener subdirectorios con documentos que también deben ser indexados. El tamaño del directorio puede ser considerable por lo que se aconseja no crear el índice invertido en memoria RAM. Además, en general, los documentos estarán escritos en castellano. Realizar dos aplicaciones con interfaces de texto. La primera aplicación debe crear el índice adecuado para posteriormente poder realizar búsquedas sobre dicho índice y debe recibir como parámetro la ruta del directorio que se desea indexar. La segunda aplicación debe realizar búsqueda de documentos que satisfacen las restricciones establecidas en una pregunta formulada mediante palabras clave (una query). 2.3. Búsqueda basada en palabras clave de datos almacenados en una base de datos relacional (Opcional) Ampliar la aplicación Web construida en las sesiones anteriores para permitir búsqueda de usuarios basada en palabras clave. En el formulario de búsqueda se podrán indicar diferentes palabras que especifiquen restricciones sobre los clientes que se deseen buscar, por ejemplo: 1946, @hotmail.com, 11111111H, López 1967, etc. 3

3. Entrega de la práctica La práctica se realizará en parejas. Cuando se finalice se debe entregar un fichero tar denominado practica 3.tar con el siguiente contenido: 1. Un fichero de texto denominado autores.txt que contendrá el NIA, los apellidos y el nombre de los autores de la práctica en las primeras líneas del fichero. Por ejemplo: NIA Apellidos Nombre - 345689 Rodríguez Quintela Sabela 345689 Caamaño Cives Antón Opcionalmente, a continuación, se podrá incluir en dicho fichero un resumen de las principales dificultades encontradas durante la realización de la práctica, y notas a considerar. 2. Un directorio denominado src, que contendrá los ficheros fuentes (.java,.html,.jsp) utilizados en la implementación de la práctica organizados de la forma que se considere más adecuada. 3. Un directorio denominado WEB-INF, que contendrá el fichero web.xml utilizado en la implementación del tercer bloque de la práctica. 4. Un fichero de texto informeapartado1.txt que contendrá las respuestas a las preguntas formuladas en el apartado 1 de la práctica. Opcionalmente en este documento se podrán añadir comentarios del modo de funcionamiento de la librería argumentando los comentarios con pruebas. 5. Un fichero ejecutable (shell script) denominado compila.sh que contendrá las instrucciones necesarias para crear las aplicaciones requeridas en el apartado 2 de la práctica. 6. Un fichero ejecutable (shell script) denominado ejecutaindexador.sh que contendrá las instrucciones necesarias para realizar la indexación de los documentos contenidos en un determinado directorio que se le pasará como parámetro al script. 7. Un fichero ejecutable (shell script) denominado ejecutabuscador.sh que contendrá las instrucciones necesarias para realizar la búsqueda de documentos indexados anteriormente relevantes para una query que se le pasará como parámetro al script. 8. Un fichero ejecutable (shell script) denominado crearwar.sh que contendrá las instrucciones necesarias para crear la aplicación Web requerida en el apartado 3 y que se deberá denominar MiBancoP3. 9. Un fichero ejecutable (shell script) que debe denominarse instalawar.sh que contendrá las instrucciones necesarias para instalar la aplicación Web requerida en el apartado 3 en el servidor web Tomcat disponible en el directorio $CATALI- NA HOME y lanzar el servidor Tomcat. 4

Al descomprimir el fichero.tar se deben extraer los ficheros y directorios indicados en el directoriopractica 3. Es importante seguir las convenciones de nombrado y la estructura de ficheros y directorios descrita. Para la entrega del fichero.tar, se utilizará el comando someter en la máquina hendrix-ssh.cps.unizar.es. La fecha límite de entrega es el día anterior al de la sexta sesión de prácticas en el laboratorio a las 23:59. 4. Procedimiento de corrección y recomendaciones Una vez realizadas la práctica y entregada esta, cada grupo debe presentarsela al profesorado de prácticas. Al realizar la presentación el profesorado le formulará cuestiones sobre las decisiones de diseño e implementación que ha realizado. La práctica debe entregarse en los términos indicados anteriormente, funcionar correctamente en cualquier ordenador con Java 1.7 y no haber sido copiada. En particular, hay que asegurarse de que la práctica funciona correctamente en los ordenadores del laboratorio (vigilar aspectos como los permisos de ejecución de los scripts, juego de caracteres utilizado en los ficheros, etc.). También es importante someter código limpio (donde se ha evitado introducir mensajes de depuración y comentarios que no proporcionan información al usuario). Se considerarán los siguientes aspectos 1. La estructura (clases estructuradas adecuadamente en paquetes, métodos, visibilidad atributos y métodos, etc.). 2. El estilo de la interfaz de usuario de las aplicaciones construidas. 3. La documentación y sangrado de los ficheros fuentes. 5