MOTORES DE BUSQUEDA OPEN SOURCE
Enviado por KarOlita Andaur • 7 de Septiembre de 2015 • Apuntes • 1.406 Palabras (6 Páginas) • 183 Visitas
ESTUDIO SOBRE MOTORES DE BUSQUEDA OPEN SOURCE
QUINTA ETAPA
- OBJETIVO
El objetivo de esta etapa es el de fundamentar con argumentos válidos la elección del motor de búsqueda a utilizar de ahora en adelante.
- INTRODUCCIÓN
A continuación se hará un breve resumen de las experiencias adquiridas durante el proceso de trabajo con cada uno de los productos.
También realizaremos un resumen de los puntos comparados en los documentos anteriores (indexación y búsqueda principalmente) para de esa manera poder mostrar y fundamentar el por qué de nuestra elección de uno de los motores de búsqueda investigado.
- EXPERIENCIA DE TRABAJO
Recién a la hora de construir los programas de indexado y búsqueda a emplear durante las pruebas nos vimos en la necesidad de utilizar los productos preseleccionados con un propósito especifico.
Por esta razón, producto por producto tuvimos que profundizar en el área de indexado y búsqueda, recurriendo a la información del sitio oficial, libros relacionados, ejemplos encontrados en Internet, programas Open Source construidos sobre estos, etc., así de esta forma adquirir los conocimientos necesarios para desarrollar los programas a utilizar.
Durante esta etapa, conocimos cada producto en mayor profundidad, descubrimos ventajas y desventajas, lo que nos dió la posibilidad de formar una opinión sobre cada uno de ellos.
- Lucene
Nuestra experiencia con Lucene fue sumamente positiva, desde el primer momento contamos con toda la documentación necesaria a utilizar como referencia, además de multitud de ejemplos en Internet, libros y muchos programas Open Source que hace uso de este framework de búsqueda.
Además dispone de una API sumamente sencilla e intuitiva, no requiere de prácticamente ninguna configuración previa y basta con cuatro o cinco líneas de código propias de Lucene para construir un programa sencillo de indexado o búsqueda.
Buscando en Internet, es posible encontrar muchos casos de éxito de empresas o sitios webs que utilizan Lucene como parte del motor de búsqueda que brindan a sus clientes o usuarios.
El caso más notable es quizás el del sito Wikipedia, donde se puede apreciar la potencia de Lucene para buscar información en millones de documentos html.
Por último, cabe destacar que este producto es considerado uno de los mejores en su rubro por la comunidad Open Source.
- Compass
Si bien se encuentra información sobre este producto, no abunda como en el caso de Lucene. Igualmente pudimos encontrar programas de ejemplo para poder analizarlos y aprender de ellos.
Para poder indexar un objeto de nuestra aplicación en Compass (Por ejemplo un objeto que representa a una persona) es necesario definir un archivo de mapeo donde se especifica que atributos se quiere indexar, y luego mediante la inclusión de unas pocas líneas de código fácilmente se puede armar un programa sencillo de indexado o búsqueda.
Como mencionamos anteriormente Compass esta construido sobre Lucene, por lo que brinda las mismas cualidades de indexado y búsqueda que éste.
Este producto colmó nuestras expectativas desde el punto de vista operativo y funcional, igualmente a nuestro entender no aporta prácticamente nada extra a lo que ya aporta Lucene referido a las necesidades y objetivos de nuestro proyecto.
- Terrier
Al momento de buscar información para construir los programas nos encontramos con una falta de documentación importante. Nos fué prácticamente imposible encontrar ejemplos de programas de indexado y búsqueda para Terrier, a excepción de DesktopTerrier, una pequeña aplicación de ejemplo que viene incluida dentro del paquete. Esta aplicación además no esta documentada, lo que nos dificultó bastante su comprensión.
Cabe destacar que de todos los productos Terrier sin duda posee la API más compleja de todas.
Al momento de indexar las colecciones nos encontramos con diversas dificultades, muchas de ellas relacionadas a la configuración por defecto que trae Terrier, ya que ésta era incompatible con la cantidad de documentos que nosotros necesitábamos manejar.
Este entre otros problemas, nos proporcionaron muchos dolores de cabeza, que llevaban a que los programas dejaran de funcionar repentinamente por errores de falta de memoria, entre otros.
Estos problemas nos consumieron tiempo y esfuerzo para superarlos, y en algunos casos fue necesario debaguear el código fuente de Terrier para encontrarles solución.
En el apartado de búsqueda, si bien no encontramos mayores problemas la limitación más importante estuvo dada por las restricciones en el lenguaje de búsqueda soportado por Terrier, este no soporta comodines ni búsquedas dispersas (fuzzy search).
Finalmente tomamos el camino de modificar DesktopTerrier, adaptarlo a nuestras necesidades para así poder indexar las colecciones y luego realizar búsquedas sobre ellas.
De todos los productos Terrier fue sin duda el que más trabajo nos dio, y no nos dejo una buena imagen.
- Solr
La documentación oficial de Solr es bastante completa pero a nuestro entender hace falta ejemplos de uso. Buscando en Google es realmente difícil encontrar programas de indexado y búsqueda escritos para éste producto.
Su API es fácil de comprender y no demasiado compleja, por lo que comprenderla y aplicarla en la creación de programas de búsqueda e indexado no requiere grandes esfuerzos.
Solr aporta sobre Lucene un montón de cualidades que lo hacen interesante, como replicación, interfaz de administración, monitoreo por JMX, búsquedas sobre varios índices distribuidos en varios hosts, extiende el lenguaje de consulta de Lucene, etc., pero la mayoría de estas cualidades no aplican a lo que se esta buscando para este proyecto.
Solr esta pensado para funcionar como un servidor de indexado y búsqueda independiente, no para integrarse como framework a una aplicación Java. Igualmente es un producto sumamente interesante que colmó nuestras expectativas.
- RESUMEN DE COMPARACIÓN
- Indexación
Resumen de los resultados obtenidos. De color verde encontraremos el producto que mas se destacó en cada categoría para cada colección, y en rojo el que menos se destacó.
Lucene | Compass | Terrier | Solr | |||||||||
Trec9 | Html1G | Html2G | Trec9 | Html1G | Html2G | Trec9 | Html1G | Html2G | Trec9 | Html1G | Html2G | |
Tiempo (min) | 3:01 | 9:17 | 16:19 | 6:31 | 5:20 | 10:52 | 3:08 | 7:09 | 12:06 | 10:07 | 3:07 | 7:17 |
Tam. Indice (MB) | 130 | 79,9 | 135 | 645 | 399 | 681 | 222 | 145 | 178 | 341 | 84,1 | 143 |
Consumo memoria (MB) | 52,5 | 70 | 66 | 93 | 95 | 95 | 220 | 130 | 149 | 84,8 | 72,65 | 77,3 |
Consumo de CPU (%) | 28 | 25 | 25,34 | 40,73 | 44 | 41,55 | 38,93 | 19,54 | 21,4 | 28 | 38,8 | 36,37 |
...