410 likes | 655 Views
Swish-e. Mikel Ibiricu Alfaro. Swish-e. Introducción Que es swish-e Historia de Swish-e Como funciona Swish-e Rendimiento Swish-e Competidores Conclusiones Bibliografía. Swish-e. Introducción Que es swish-e Historia de Swish-e Como funciona Swish-e Rendimiento Swish-e Competidores
E N D
Swish-e Mikel Ibiricu Alfaro
Swish-e • Introducción • Que es swish-e • Historia de Swish-e • Como funciona Swish-e • Rendimiento Swish-e • Competidores • Conclusiones • Bibliografía
Swish-e • Introducción • Que es swish-e • Historia de Swish-e • Como funciona Swish-e • Rendimiento Swish-e • Competidores • Conclusiones • Bibliografía
Introducción Swish-e • Swish-e no es un SGBD ni un cliente de Bases de Datos... • ...pero si entendemos la web como una gigantesca base de datos distribuida y nuestro equipo un nodo de dicha red, swish-e es un motor de búsqueda sobre ella
Swish-e • Introducción • Que es swish-e • Historia de Swish-e • Como funciona Swish-e • Rendimiento Swish-e • Competidores • Conclusiones • Bibliografía
Que es (I) Swish-e • Single Web Indexing System for Humans- Enchanced = Sistema Simple de Indexación para Humanos – Mejorado. • Es un indexador de documentos que después de generar dichos índices nos permite realizar búsquedas sobre ellos. • Tiene un lenguaje de búsqueda propio para definir búsquedas precisas • Su aplicación más popular es construir buscadores para un sitio web
Que es (II) Swish-e • En principio sólo documentos html y xml; hoy existen extensiones para buscar en documentos .doc, .pdf, .xls y . Ps • Software libre (Licencia GNU) • Compatible con Sun/Solaris, Dec Alpha, BSD, Linux, Mac OS X y Open VMS, además de Windows
Que es (III) Swish-e • Paquetes de análisis de distintos formatos de archivo recomendados por los creadores: • LibXML2: Analizador HTML/XML con mejor rendimiento que el propio de la aplicación,http://xmlsoft.org/ • Zlib Compression, para comprimir los resultados del fichero de índices, http://www.gzip.org/zlib/ • Módulos PERL, para aprovechar todas las funcionalidades de swish-e • Paquete XPDF, para indexar .pdfs: http://www.foolabs.com/xpdf/ • CatDoc, para indexar .doc: http://www.45.free.net/~vitus/ice/catdoc • MP3::TAG y Spreadsheet::ParseExcel o HTML::Entities, para indexar, respectivamente, los tags ID3 de los ficheros MP3 y documentos de Excel, disponibles en: http://search.cpan.org.
Swish-e • Introducción • Que es swish-e • Historia de Swish-e • Como funciona Swish-e • Rendimiento Swish-e • Competidores • Conclusiones • Bibliografía
Historia Swish-e • Swish fue creado por Kevin Hughes en 1994, para dar una respuesta a la necesidad de la comunidad de administradores web • Por aquel entonces, la mayoría de los indexadores de contenidos que existían no estaban bien documentados y eran muy complicados de utilizar. • Más tarde Kevin Hughes abandonó el proyecto, y en 1996, la Universidad de Berkeley, California, recibió el permiso de Kevin Hughes para continuar con el proyecto y añadir algunas soluciones de problemas y mejoras al codigo original. Como resultado nació el swish-e, que es desarrollado por el Swish-e Development Team.
Swish-e • Introducción • Que es swish-e • Historia de Swish-e • Como funciona Swish-e • Rendimiento Swish-e • Competidores • Conclusiones • Bibliografía
Cómo Funciona Swish-e • Requiere la instalación de intérprete perl para utilizar todas las funcionalidades. • Lo que hace es crear un archivo de índices con las apariciones de las palabras y en que archivos se encuentran, en forma de índice inverso
Cómo Funciona (II) Swish-e • El primer paso es ejecutar desde línea de comandos el ejecutable swish • Para crear un nuevo archivo de índices: swish-e -i /var/www/htdoc • Opciones más importantes de indexación(swish-e -h): -i: parámetro que ordena la creación de índices, detrás se coloca la carpeta que se quiere indexar -S [fs|http|prog]: Tipo de directorio/acceso al mismo -c : Archivo de configuración para usar en la indexación
Cómo Funciona (III) Swish-e • Opciones más importantes de indexación (swish-e -h)(y 2) : -e : ”Modo económico” (Ahorro de RAM en el proceso) -f : fichero para almacenar lo índices; por defecto index.swish-e -M : fusionar dos archivos de índices en uno -N : indexar sólo archivos más nuevos que directorio dado -t : especificar (como string) en que tags se debe buscar
Cómo Funciona (IV) Swish-e • Fichero de configuración: Posibilidad de establecer las opciones por medio de un fichero en vez de por consola • Se pueden mantener múltiples ficheros de configuración, y usar tantos como se quiera cada vez. Swish -c f.config1 f.config2 .... • Se pueden controlar todas las opciones que se controlan desde línea de comandos
Cómo Funciona (V) Swish-e • Parámetros más importantes del Fichero de configuración: • IncludeConfigFile /usr/local/swish/conf/site_config.config: incluir parámetros de configuración definidos en otro fichero de configuración • IndexFile *path*: ruta del archivo de índices. Si no se define por defecto se crea index.swish-e • IndexDir [directories or files|URL|external program]: como -S • IndexContents: Especificar un analizador para un tipo de documento. • DefaultContents: Definir que analizador va a examinar los documentos no seleccionados con la opción anterior
Cómo Funciona (VI) Swish-e • Parámetros más importantes del Fichero de configuración: • MetaNames *list of names*: Definir que se indexen únicamente palabras contenidas entre metatags con los nombres indicados • IgnoreWords [*list of stop words*|File: path]: Indicar lista de palabras que no se han de incluir en la indexación • UseWords [*list of stop words*|File: path]: Indicar lista de palabras que se han de incluir en la indexación. SÓLO ELLAS • IndexOnly *list of file suffixes*: Indicar que extensiones de archivo se han de indexar • MaxDepth *integer*: Numero de links que debe seguir el spider antes de detenerse al indexar una web
Cómo Funciona (VII) Swish-e • Búsqueda en el fichero de índices: Una vez se tiene el fichero de índices construido, esta listo para responder a las consultas. • Para realizar una consulta se utiliza el parámetro -w: swish-e -w [palabra|”frase”|expresión] • Operadores booleanos en las expresiones de búsqueda: AND: pepe AND juan=pepe juan OR: pepe OR juan NOT: NOT juan • Uso de paréntesis para agrupaciones: swish-e -w ‘not (pepe AND juan)’
Cómo Funciona (VIII) Swish-e • Búsqueda de palabras AND, OR, NOT? Entre comillas: swish-e -w \"not\" • Existe el comodín (% en SQL); Pero sólo al final de una palabra: swish-e -w tele: devuelve apariciones de “tele” swish-e -w ‘tele*’: devuelve “tele”, “telefono”,... • Orden de evaluación de los operadores: swish-e -w foo not bar baz= swish-e -w foo AND (not bar) AND baz : apariciones de foo y baz pero no bar swish-e -w foo not (bar baz)= swish-e -w foo AND (not (bar AND baz)): apariciones de foo pero no baz ni bar
Cómo Funciona (IX) Swish-e • Meta Tags: Posibilidad de limitar la búsqueda sobre ellos swish-e -w "metaName=word" • Búsqueda de Frases: swish-e -w '"this is a phrase" or (this and that)' swish-e -w 'meta1=("this is a phrase") or (this and that) * Se deben proteger las dobles comillas (con ‘ en Unix y \ en windows) • Utilización de operandos booleanos en frases: swish-e -w ’”this and that”’: Busca la frase literal swish-e -w ’this “and” that’: Busca frases con los 3 componentes pero en cualquier orden
Cómo Funciona (X) Swish-e • Contexto: Limitar la búsqueda a zonas del documento (-t): H :<HEAD> tags B : <BODY> tags t : <TITLE> tags h : <H1> ... <H6> (cabeceras) tags e :tags de énfasis (<B>, <I>, <EM>, or <STRONG>) c : en comentarios del HTML (<!-- ... -->) swish-e -w ”eso esto" -t t:eso y esto aparezca en el título swish-e -w ”eso draft esto" -t c: esas palabras en comentarios swish-e -w "world wide web" -t the : búsca en el título, cabeceras y tags de énfasis
Swish-e • Introducción • Que es swish-e • Historia de Swish-e • Como funciona Swish-e • Rendimiento Swish-e • Competidores • Conclusiones • Bibliografía
Rendimiento(I) Swish-e • Swish destaca por su rapidez de búsqueda • La generación de índices si tiende a crecer a medida que aumentan los tamaños de archivos • Resultados de las pruebas realizadas sobre una máquina Pentium II 233 MHZ con 192 MB de RAM y dos discos duros (6 y 20 GB):
Rendimiento(II) Swish-e • Tiempos de Indexado (I): • Tamaño de Archivo de Índices generado: 6,17 Mb
Rendimiento(III) Swish-e • Tiempos de Indexado (II): • Tamaño de Archivo de Índices generado: 9,70 Mb
Rendimiento(IV) Swish-e • Tiempos de Mezcla de Indices: • Tamaño de Archivo de Índices generado: 15,3 Mb
Rendimiento(V) Swish-e • Tiempos de Búsqueda (I):
Rendimiento(VI) Swish-e • Tiempos de Búsqueda (II):
Rendimiento(VII) Swish-e • Tiempos de Búsqueda (III):
Rendimiento(VIII) Swish-e • Tiempos de Búsqueda (IV):
Rendimiento(IX) Swish-e • Tiempos de Búsqueda (V):
Rendimiento(X) Swish-e • Tiempos de Búsqueda (VI):
Rendimiento(XI) Swish-e • Tiempos de Búsqueda (VII):
Swish-e • Introducción • Que es swish-e • Historia de Swish-e • Como funciona Swish-e • Rendimiento Swish-e • Competidores • Conclusiones • Bibliografía
Competidores Swish-e • El mayor competidor de swish-e es probablemente un descendiente suyo: swish++ (Simple Web Indexing System for Humans: C++ version) • Esta basado en swish-e pero su codigo ha sido totalmente reescrito en C++ • Su licencia de uso es también GNU • Su creador es Paul Lucas y también participan con él Robert J. Lebowitz y Christoph Conrad, que lo han adaptado para Windows. • No hay comparativas entre ambos paquetes
Swish-e • Introducción • Que es swish-e • Historia de Swish-e • Como funciona Swish-e • Rendimiento Swish-e • Competidores • Conclusiones • Bibliografía
Conclusiones Swish-e • Aunque hace falta consumir cierto tiempo en la generación de índices, se compensa con creces al comprobar la rapidez de las consultas • Como punto negativo, cada vez que se actualice algún archivo indexado, se deberá empezar de nuevo la indexación desde 0 • El equipo de desarrollo de swish-e ya tiene claros los objetivos de las próximas versiones: • Soporte para Unicode • Sustituir los analizadores de html por la librería libxml2, para simplificar el código • Soporte para indexación incremental y no tener que repetir la indexación desde el principio cada vez que, por ejemplo, se actualiza una web. • Separar el código en un script de indexación y otro de búsqueda para mejorar el rendimiento de ambos
Conclusiones (II) Swish-e • Objetivos futuras versiones (II) • Soporte de Content Types • Mejorar la directiva de archivo de configuración PropertyNames • Estilo de configuración Apache/XML • Algunos Sitios con buscadores basados en swish-e • Página del BOE (http://www.cde.ua.es/boe/) • Antigua página de Hemeroteca del Egunkaria, adaptado por el IXA Taldea de la FISS • Apache Web Server Site: http://search.apache.org/ • Berkeley Digital Library SunSITE:http://sunsite.berkeley.edu/cgi-bin/search.pl • www.e-book-store.com • Universidad de Jaen: www.ujaen.com
Swish-e • Introducción • Que es swish-e • Historia de Swish-e • Como funciona Swish-e • Rendimiento Swish-e • Competidores • Conclusiones • Bibliografía
Bibliografía Swish-e • Página Oficial SWISH-E: www.swish-e.org • Documentación de la aplicación, descargable junto al programa de www.swish-e.org • Boletín Oficial del Estado, una experiencia de la utilización de software libre en la Administración, José Manuel Ruiz, www.astic.es • How To Index Anything, Josh Rabinowitz, http://joshr.com/src/docs/HowToIndexAnything.pdf • Trabajos en el Área de Recuperación de la Información del Grupo IXA de la Universidad del País Vasco, IXA Taldea, EHU