1 Swish-e Mikel Ibiricu Alfaro
1
Swish-e
Mikel Ibiricu Alfaro
2
Swish-e
• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía
3
Swish-e
• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía
4
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
5
• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía
Swish-e
6
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
7
• 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 (II) Swish-e
8
• 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.
Que es (III) Swish-e
9
• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía
Swish-e
10
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.
11
• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía
Swish-e
12
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
13
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
14
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
15
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
16
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
17
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
18
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)’
19
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
20
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
21
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
22
• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía
Swish-e
23
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):
24
Rendimiento(II) Swish-e• Tiempos de Indexado (I):
• Tamaño de Archivo de Índices generado: 6,17 Mb
25
Rendimiento(III) Swish-e• Tiempos de Indexado (II):
• Tamaño de Archivo de Índices generado: 9,70 Mb
26
Rendimiento(IV)Swish-e• Tiempos de Mezcla de Indices:
• Tamaño de Archivo de Índices generado: 15,3 Mb
27
Rendimiento(V) Swish-e• Tiempos de Búsqueda (I):
28
Rendimiento(VI)Swish-e• Tiempos de Búsqueda (II):
29
Rendimiento(VII) Swish-e• Tiempos de Búsqueda (III):
30
Rendimiento(VIII) Swish-e• Tiempos de Búsqueda (IV):
31
Rendimiento(IX)Swish-e• Tiempos de Búsqueda (V):
32
Rendimiento(X) Swish-e• Tiempos de Búsqueda (VI):
33
Rendimiento(XI)Swish-e• Tiempos de Búsqueda (VII):
34
• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía
Swish-e
35
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
36
• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía
Swish-e
37
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
38
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
39
• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía
Swish-e
40
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