Index Engine v1.0 Un módulo de importación de documentos Juan Andrada Romero Jose Domingo López López Univ. De Castilla La Mancha
Contenidos Decisiones de diseño Estadísticas de uso Futuras mejoras
Contenidos Decisiones de diseño Estadísticas de uso Futuras mejoras
Decisiones de diseño Arquitectura: Lenguaje de programación: Python Sistema de almacenamiento: MySQL Sistema operativo: GNU/Linux
Decisiones de diseño Diseño de la base de datos
Decisiones de diseño Diseño multicapa: hace que el sistema sea extensible y reutilizable. Capa de presentación: interfaz gráfica e interfaz basada en texto. Capa de dominio: analizador, memoria caché y un fichero de configuración. Capa de persistencia: agente singleton y patrón de fabricación pura.
Decisiones de diseño Analizador de documentos: Conexión con la base de datos permanente para evitar establecer la conexión múltiples veces. Copia de documentos mediante llamadas al sistema proporcionadas por el módulo os. Codificación (charset) utf-8. El posting file se almacena en memoria durante el análisis de cada documento y sólo se vuelca a disco cuando éste finaliza.
Decisiones de diseño Uso de memoria caché para el diccionario de términos. Realización de un parser reutilizable para que tanto el módulo de importación de documentos como el módulo de búsqueda den el mismo tratamiento a las cadenas. Escape de los caracteres ‘\’ y ‘’’ Definición de una expresión regular para reconocer direcciones IP. Eliminación de los símbolos de acentuación (´, `, ^, ¨) de las vocales. Uso de una stoplist para eliminar palabras comunes y sin significado relevante.
Decisiones de diseño Todos los signos de puntuación se consideran separadores, del mismo modo que los espacios. A partir de una palabra, obtenemos una lista de palabras, como resultado de reemplazar los separadores por espacios. Si en esa lista sólo existe una palabra que se encuentra en la stop_list y el resto son espacios, se elimina. Ejemplo: “\t already?” Si al dividir la palabra en varias, alguna de las resultantes carece de sentido, no se descompone. Ejemplo: “I’ll” Las direcciones web y reciben el mismo tratamiento (división en palabras) Ejemplo: palabras”
Contenidos Decisiones de diseño Estadísticas de uso Futuras mejoras
Estadísticas Características del equipo: SSOO: Debian GNU/Linux 4.0 Procesador: Intel Centrino 2.0Ghz FSB 800MHz RAM: 2.0GB DDR2 800MHz Tiempo empleado en indexar 239 documentos: 27 minutos y 45 segundos
Contenidos Decisiones de diseño Estadísticas de uso Futuras mejoras
Futuras Mejoras Caché Extensibilidad: posibilidad de utilizar diferentes métodos de almacenamiento Acceso a disco: cargar los documentos en memoria antes de procesarlos