UNIVERSIDAD CARLOSIII DE MADRID BUSCADOR DE ESCRITORIO MULTIMEDIA: CIII Desktop Search Proyecto fin de carrera Escuela politécnica superior Ingeniería técnica en informática de gestión 1
Índice Introducción Objetivos y requisitos de desarrollo Entorno de desarrollo Resultados Conclusiones Desarrollos futuros 2
Índice Introducción Objetivos y requisitos de desarrollo Entorno de desarrollo Resultados Conclusiones Desarrollos futuros 3
Introducción Buscadores desktop Qué es un buscador desktop? Programa capaz de buscar archivos en un ordenador personal. Similar a los buscadores en Internet, los buscadores de escritorio presentan los resultados de manera inmediata. Por qué son necesarios? Con el aumento en la memoria de los discos duros se necesitan herramientas capaces de trabajar y recuperar la gran cantidad de archivos que pueden almacenar. 4
Índice Introducción Objetivos y requisitos de desarrollo Entorno de desarrollo Resultados Conclusiones Desarrollos futuros 5
Objetivos y requisitos de desarrollo Índice Objetivos generales. Características en la búsqueda de archivos de texto. Características en la búsqueda de archivos y directorios. Características en la búsqueda de archivos que puedan cambiar a un formato de texto plano. 6
Objetivos y requisitos de desarrollo Objetivos generales Crear un programa que permita realizar búsquedas sobre archivos almacenados en el ordenador personal. El programa creará un sistema de índices, para realizar las búsquedas de manera inmediata. Se podrán realizar búsquedas sobre: El contenido en archivos de texto Nombre de archivos y directorios Archivos que puedan cambiar su formato a texto plano (código fuente,html) Los índices se actualizarán automáticamente si se produce algún cambio en el sistema de archivos. El proceso de creación de índices debe ser atómico. En procesos con un coste de tiempo elevado se usaran varios hilos de ejecución. 7
Objetivos y requisitos de desarrollo Objetivos generales Contará con un sistema de control de errores. Se podrá asignar información a los archivos en función de metadatos. Los archivos que aparezcan en el programa se podrán ejecutar. 8
Objetivos y requisitos de desarrollo Características en la búsqueda de archivos de texto. Buscar forzando la coincidencia en mayúsculas y minúsculas. Buscar usando expresiones regulares. Buscar por los metadatos asignados a los archivos. Derivar términos de búsqueda a partir de los originales en los idiomas Ingles y Español. Poder indicar palabras que no deben aparecer en el contenido del texto de los archivos. Buscar coincidencias exactas de varios términos. Proporcionar un sistema de corrección ortográfica. Los resultados se presentarán ordenados mediante un ranking según la relevancia. Al seleccionar un archivo se mostrarán otros documentos relacionados. La búsqueda será contextualizada. 9
Objetivos y requisitos de desarrollo Características en la búsqueda de archivos y directorios. Sugerir términos mientras escribe el usuario. Filtrar los resultados por la extensión del archivo y por los metadatos asociados. Guardar las búsquedas para usarlas posteriormente. Se permitirá acceder al contenido de los directorios resultados 10
Objetivos y requisitos de desarrollo Características en la búsqueda de archivos que puedan cambiar a un formato de texto plano. Filtrar los resultados por extensión de archivos. Mostrar los resultados ordenados mediante un ranking de relevancia. Al seleccionar un resultado se mostrará el contenido en la vista previa y se resaltarán los términos de búsqueda que contenga. Se podrá navegar por lo distintos términos encontrados. 11
Índice Introducción Objetivos y requisitos de desarrollo Entorno de desarrollo Resultados Conclusiones Desarrollos futuros 12
Entorno de desarrollo El lenguaje utilizado es Visual Basic.NET y el sistema operativo Windows XP Los sistemas operativos compatibles para la ejecución del programa son Windows XP, Windows 2000 y Windows Vista. La base de datos creada es un sistema de índices que están almacenados en el disco en archivos de texto formateados. 13
Índice Introducción Objetivos y requisitos de desarrollo Entorno de desarrollo Resultados Conclusiones Desarrollos futuros 14
Resultados Descripción de la aplicación Interfaz El estilo de la interfaz es en lo posible minimalista, reduciendo en lo posible la complejidad y así proporcionar claridad y sencillez en el manejo al usuario. 15
Interfaz Resultados Descripción de la aplicación La interfaz está dividida en cuatro bloques, los tres primeros dedicados a las búsquedas y el último a la configuración. Se accede a los distintos bloques mediante pestañas localizadas en la parte superior. En la zona inferior se muestran los mensajes informativos al usuario a través de un cuadro de texto. La parte más importante es la zona central donde se desarrolla el programa. 16
Resultados: Descripción de la aplicación Implementación de objetivos generales El programa: Crear un programa que permita realizar búsquedas sobre archivos almacenados en el ordenador personal. El programa creará un sistema de índices, para realizar las búsquedas de manera inmediata. En procesos con un coste de tiempo elevado se usaran varios hilos de ejecución. Se podrán realizar búsquedas sobre: El contenido en archivos de texto Nombre de archivos y directorios Archivos que puedan cambiar su formato a texto plano (código fuente, html) 17
Resultados: Descripción de la aplicación Implementación de objetivos generales Metadatos: Se podrá asignar información a los archivos en función de metadatos. Errores: Contará con un sistema de control de errores. Mediante estructuras TRY CATCH. Todos los errores controlados, un total de 107, tienen un código único y están documentados. 18
Resultados: Descripción de la aplicación Implementación de objetivos generales Caída del sistema: El proceso de creación de índices debe ser atómico. Copias de seguridad nombreindice.txt.bak Cambio en el sistema de archivos: Los índices se actualizarán automáticamente si se produce algún cambio en el sistema de archivos. Se utiliza la clase FileSystemWatcher. La actualización de los índices se realiza en segundo plano Ejecución de archivos: Los archivos que aparezcan en el programa se podrán ejecutar. 19
Resultados: Descripción de la aplicación Implementación de búsqueda de archivos de texto Concretar búsqueda mayúsculas y minúsculas: Buscar forzando la coincidencia en mayúsculas y minúsculas. Potencia de búsqueda: Búsqueda usando expresiones regulares. Búsqueda flexible: Derivar términos de búsqueda a partir de los originales en los idiomas Inglés y Español. Mediante tablas de derivación. Uso de metadatos: Buscar por los metadatos asociados. Historial de búsquedas: Mantener información sobre búsquedas antiguas. 20
Resultados: Descripción de la aplicación Implementación de búsqueda de archivos de texto Términos que no deben aparecer en los documentos: Poder indicar palabras que no deben aparecer en el contenido del texto de lo archivos. Exactitud de términos: Buscar coincidencias exactas de varios términos. Encontrar el documento: La búsqueda será contextualizada. Errores ortográficos: Proporcionar un sistema de corrección ortográfica. 21
Resultados: Descripción de la aplicación Implementación de búsqueda de archivos de texto Evitar uso de recursos: No se almacena en memoria los índices con mayor tamaño refpalabras wifi&1250 Palabras wifi&35$320$8$14200 @35$323$3$14355 RutasFich 35&D:\Libros\Redes de computadoras 22
Resultados: Descripción de la aplicación Implementación de búsqueda de archivos de texto Los resultados se presentarán ordenados mediante un ranking según la relevancia. Este ranking se realiza con la suma de varios pesos: Número de coincidencias. Distancia al principio del documento. Relevancia del fichero: la suma de la relevancia de los términos de búsqueda dentro del documento. Wij = TFij * log(n/dfi) Donde: Wij = valor de relevancia TFij = conciente del número de veces que aparece la palabra en el documento, entre el número de la palabra que más se repite. N = número de documentos indexados. DFi = el número de documentos que contienen esa palabra. 23
Resultados: Descripción de la aplicación Implementación de búsqueda de archivos de texto Si el documento esta en formato Word, se le suma el valor que tenga la palabra en el índice de puntaciones creado cuando se indexa el documento. Documentos relacionados: Al seleccionar un archivo se mostrarán otros documentos relacionados. relaciónficherospalabras 35&redes$internet$lan$ip$red relaciónpalabrasficheros redes&35$12$20 internet&35$10 lan&35$11$20 ip&35 red&35&20$12$44 24
Resultados: Descripción de la aplicación Implementación de búsqueda de archivos y directorios Desconocimiento del término de búsqueda: Sugerir términos mientras escribe el usuario. Filtrar resultados: Filtrar los resultados por la extensión del archivo y por los metadatos asociados. Usabilidad de la búsquedas: Guardar las búsquedas para usarlas posteriormente. Se guardan los filtros. Navegación en el sistema de archivos: Se permitirá acceder al contenido de los directorios resultados. 25
Resultados: Descripción de la aplicación Implementación de búsqueda de archivos que puedan cambiar a un formato de texto plano. Filtro de resultados: Filtrar los resultados por extensión de archivos. Adecuar los resultados al interés del usuario: Mostrar los resultados ordenados mediante un ranking de relevancia. Vista previa: Al seleccionar un resultado se mostrará el contenido en la vista previa y se resaltarán los términos de búsqueda que contenga. Navegar por la vista previa: Se podrá navegar por lo distintos términos encontrados. 26
Resultados Comparativa con otro buscadores A continuación se analiza la eficacia del programa y se realiza una comparativa con tres buscadores que se encuentran en el mercado, son: Copernic Desktop Search 2, Exalead Desktop y Google Desktop Search. La prueba a la que han sido sometidos los buscadores ha sido la indexación de datos almacenados en un disco duro y se han tomado medidas del tiempo que han consumido en crearlos y el tamaño de los índices. Los datos técnicos del equipo donde se han realizado las pruebas son: - Sistema operativo: Windows XP Profesional versión 2002 service Pack 2 - Procesador: AMD Athlon 64x2 Dual Core Procesor 5200 + 2.70GHz - Memoria RAM: 2 GB - Total del tamaño de los archivos indizados: 413GB. 27
Resultados: Comparativa con otro buscadores Copernic Desktop Search 2 Nombre: Copernic Desktop Search 2 Tiempo empleado : 29 min 50 seg Tamaño de lo índices: 609 MB 28
Resultados: Comparativa con otro buscadores Exalead Desktop Nombre: Tiempo empleado : Tamaño de lo índices: Exalead Desktop 7 horas 42 min 55 seg 205 MB 29
Resultados: Comparativa con otro buscadores Google Desktop Search Nombre: Tiempo empleado : Tamaño de lo índices: Google Desktop Search 12 horas 14 min 20 seg 246 MB 30
Resultados Comparativa con otro buscadores CIII Desktop Search Nombre: Categoría: Tiempo empleado : Tamaño de los índices : CIII Desktop Search Archivos de texto 1 hora 50 min 30 seg 74.03 MB Nombre: Categoría: Tiempo empleado : Tamaño de los índices : CIII Desktop Search Sistema de archivos 8 min 52 seg 9.64 MB Nombre: Categoría: Tiempo empleado: Tamaño de los índices: CIII Desktop Search Cambio texto plano 39 min 2.04 MB 31
Resultados: Comparativa con otro buscadores CIII Desktop Search Nombre: Tiempo empleado : Tamaño de lo índices: CIII Desktop Search 2 Horas 2 Minutos 85.71MB 32
Resultados: Comparativa con otro buscadores Comparativa de resultados Minutos Tiempo indexación 800 600 400 200 0 734 554 122 29,83 Coper Exalead Google CIII Buscadores Copernic Desktop Exalead Desktop Google Desktop CIII Desktop 33
Resultados: Comparativa con otro buscadores Comparativa de resultados Tamaño del índice Tamaño MB 800 700 600 500 400 300 200 100 0 577 185 300 85 Copernic Desktop Exalead Desktop Google Desktop CIII Desktop Coper Exalead Google CIII Buscador 34
Resultados: Comparativa con otro buscadores Tabla de funcionalidades generales Leyenda: 35
Resultados: Comparativa con otro buscadores Tabla de funcionalidades en la búsqueda de documentos Leyenda: 36
Resultados: Comparativa con otro buscadores Tabla de funcionalidades en la búsqueda de archivos y directorios Leyenda: 37
Índice Introducción Objetivos y requisitos de desarrollo Entorno de desarrollo Resultados Conclusiones Desarrollos futuros 38
Conclusiones Objetivos generales. Características en la búsqueda de archivos de texto. Características en la búsqueda de archivos y directorios. Características en la búsqueda de archivos que puedan cambiar a un formato de texto plano. Lo objetivos que se plantearon al comienzo se han cumplido. 39
Índice Introducción Objetivos y requisitos de desarrollo Entorno de desarrollo Resultados Conclusiones Desarrollos futuros 40
Desarrollos futuros Ampliar la usabilidad del programa. Incrementar las funcionalidades. Adaptación en nuevas plataformas. 41
Fin de la presentación Preguntas 42
UNIVERSIDAD CARLOSIII DE MADRID BUSCADOR DE ESCRITORIO MULTIMEDIA: CIII Desktop Search Proyecto fin de carrera Escuela politécnica superior Ingeniería técnica en informática de gestión 43
Corrección ortográfica combustivle konvustivle combustible palabrasfonética konvustivle$combustible 44
Coste - El número de líneas de código es 8721-107 errores controlados con estructuras try-catch. - La base de datos está formada por 31 índices. Coste horas: 2000 horas X 33 / hora = 66000 Equipo: Portatil hp, Intel Core 2 Duo 1.8 GHz = 450 TOTAL: 66450 45
Análisis del programa Análisis Alcance del software: El objetivo es crear un programa que facilite el acceso y uso de la información almacenada en un ordenador personal siendo especialmente útil cuando el número de archivos es muy grande. Se implementarán varias opciones para facilitar la búsqueda de la información al usuario. Perspectiva del producto: La intención es mejorar el rendimiento y proporcionar varias funcionalidades que otros buscadores del mercado no poseen. El programa es una fusión entre los buscadores de escritorio y herramientas Media Center, para posibilitar su uso como un gestor de archivos y no sólo como una herramienta de búsqueda. 46
Análisis del programa Diseño El objetivo durante el desarrollo del código fuente es: Conseguir los mejores resultados en la velocidad de proceso. Minimizar el consumo de recursos. Reducir el tamaño de los índices. Estructurar bien el programa para facilitar la comprensión. Controlar los error de ejecución. 47
Análisis del programa Implementación: - El código está divido en 11 módulos que contienen estructuras y funciones que resuelven objetivos comunes. - El programa lo componen 341 funciones y procedimientos. - El número de líneas de código es 8721-107 errores controlados con estructuras try-catch. - La base de datos está formada por 31 índices. - Los índices se almacenan en estructuras de acceso inmediato como Tablas Hash y Arraylist. - Para crear varios hilos de ejecución se usa la clase BackgroundWorker proporcionada por Visual Basic.NET. - Para vigilar el sistema de archivos sobre posible cambios se usa la clase FileSystemWatcher. - Se usa la librería System.Text.RegularExpressions para desarrollar las expresiones regulares. 48