40
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

Embed Size (px)

Citation preview

Page 1: 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

1

Swish-e

Mikel Ibiricu Alfaro

Page 2: 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

2

Swish-e

• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía

Page 3: 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

3

Swish-e

• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía

Page 4: 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

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

Page 5: 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

5

• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía

Swish-e

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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

Page 9: 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

9

• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía

Swish-e

Page 10: 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

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.

Page 11: 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

11

• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía

Swish-e

Page 12: 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

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

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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)’

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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

Page 22: 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

22

• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía

Swish-e

Page 23: 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

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):

Page 24: 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

24

Rendimiento(II) Swish-e• Tiempos de Indexado (I):

• Tamaño de Archivo de Índices generado: 6,17 Mb

Page 25: 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

25

Rendimiento(III) Swish-e• Tiempos de Indexado (II):

• Tamaño de Archivo de Índices generado: 9,70 Mb

Page 26: 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

26

Rendimiento(IV)Swish-e• Tiempos de Mezcla de Indices:

• Tamaño de Archivo de Índices generado: 15,3 Mb

Page 27: 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

27

Rendimiento(V) Swish-e• Tiempos de Búsqueda (I):

Page 28: 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

28

Rendimiento(VI)Swish-e• Tiempos de Búsqueda (II):

Page 29: 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

29

Rendimiento(VII) Swish-e• Tiempos de Búsqueda (III):

Page 30: 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

30

Rendimiento(VIII) Swish-e• Tiempos de Búsqueda (IV):

Page 31: 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

31

Rendimiento(IX)Swish-e• Tiempos de Búsqueda (V):

Page 32: 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

32

Rendimiento(X) Swish-e• Tiempos de Búsqueda (VI):

Page 33: 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

33

Rendimiento(XI)Swish-e• Tiempos de Búsqueda (VII):

Page 34: 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

34

• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía

Swish-e

Page 35: 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

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

Page 36: 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

36

• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía

Swish-e

Page 37: 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

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

Page 38: 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

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

Page 39: 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

39

• Introducción• Que es swish-e• Historia de Swish-e• Como funciona Swish-e• Rendimiento Swish-e• Competidores• Conclusiones• Bibliografía

Swish-e

Page 40: 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

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