Professional Documents
Culture Documents
Facultad de Ingeniera
Departamento de Informtica
Sede Puerto Madryn
Licenciado en Informtica
Autor
Octubre 2014
Agradecimientos
A mi esposa, quien me apoy en todo mi elstico trayecto acadmico y a mis dos hermosas
hijas.
A mi madre Ana Mara Aita, quien me dio mucho ms que el apellido en la vida.
A mi tutor y amigo Lic. Demian Barry, quien me apoy e insisti para finalizar mi carrera y
me acompao en el desarrollo del presente trabajo de tesina.
A mi socio, amigo y compaero acadmico Juan Manual Cortez y todos mis compaeros de
trabajo y estudio.
A todos los docentes y compaeros de estudio que he conocido a lo largo de mi carrera, con
los cuales he compartido muchos mates y buenos momentos, y en donde he encontrado
muchos buenos amigos.
Resumen
Este proyecto de tesina se aboca a investigar y mejorar las tcnicas de recuperacin de
informacin sobre una base de datos existente de noticias obtenidas de redes sociales y diarios en
lnea.
Dicha informacin ya se encuentra clasificada e indexada por diversos campos, de los cuales
vale destacar la pertenencia geogrfica de la noticia, tanto en forma semntica (teniendo en cuenta
localidad, partido, provincia, etc. en forma de rbol) como geogrfica (latitud, longitud).
El motor de indexacin utilizado para la generacin de la base de datos es Apache Solr/Lucene y
el set de datos fue generado en el marco del proyecto de extensin Georreferenciacin de
Contenidos para el proyecto Zonales, en adelante Zonales, llevado adelante por un convenio
entre la sede Puerto Madryn de la Universidad y la empresa Mediabit S.A., del cual form parte
del equipo de desarrollo. En la siguiente seccin se describe ms ampliamente este proyecto.
La seleccin del motor de bsqueda no solo se basa en el antecedente del proyecto ejecutado y la
base de datos generada, sino adems en el trabajo Distributed Search on Large NoSQL
Databases[Tinetti, Barry, Aita, Pez, PDPTA2011] co-escrito por el autor, en el cual se
comprobaron las capacidades y el rendimiento del servidor de indexacin y bsquedas Apache Solr
respecto a las caractersticas de escalabilidad y disponibilidad en ambientes heterogneos. Este
trabajo dio pie a la formacin dentro de la sede de un grupo de investigacin en el rea.
El presente trabajo pretende comprobar que es posible mejorar la combinacin de funciones de
bsqueda y recuperacin de la informacin almacenada en el ndice existente, principalmente en
relacin con la pertenencia geogrfica y la antigedad de la informacin buscada.
ndice General
1 Agradecimientos................................................................................................................................3
2 Resumen............................................................................................................................................5
3 Introduccin.......................................................................................................................................9
3.1 Motivacin del Proyecto..........................................................................................................10
3.2 Objetivos..................................................................................................................................11
3.3 Hiptesis..................................................................................................................................12
3.4 Aporte.......................................................................................................................................12
3.5 Metas........................................................................................................................................12
3.6 Metodologa.............................................................................................................................13
3.6.1 Sobre la metodologa de investigacin............................................................................13
3.6.2 Sobre la metodologa de desarrollo..................................................................................15
4 Marco Terico..................................................................................................................................17
4.1 Sistemas Distribuidos..............................................................................................................17
4.1.1 Conceptos.........................................................................................................................17
4.1.2 Propiedades......................................................................................................................18
4.1.3 Aplicaciones.....................................................................................................................20
4.1.4 Ventajas............................................................................................................................21
4.1.5 Desventajas......................................................................................................................22
4.1.6 Perspectivas......................................................................................................................22
4.2 Bases de Datos Distribuidas....................................................................................................23
4.2.1 Conceptos.........................................................................................................................23
4.2.2 Diseo y arquitecturas......................................................................................................24
4.2.3 Transacciones...................................................................................................................27
4.2.4 Control de concurrencia...................................................................................................27
4.2.5 Consultas..........................................................................................................................28
4.2.6 Clasificacin.....................................................................................................................28
4.2.7 Ventajas y desventajas......................................................................................................30
4.3 Bases de Datos NoSQL............................................................................................................31
4.3.1 Introduccin.....................................................................................................................31
4.3.2 Definicin.........................................................................................................................32
4.3.3 Tipos de bases de datos NoSQL.......................................................................................34
4.3.4 Tcnicas utilizadas por las bases de datos NoSQL..........................................................35
4.3.5 Gestores de bases de datos NoSQL..................................................................................38
4.4 Big Data...................................................................................................................................42
4.4.1 Introduccin.....................................................................................................................42
4.4.2 Definicin.........................................................................................................................43
4.4.3 Ventajas............................................................................................................................44
4.4.4 Desventajas......................................................................................................................46
4.4.5 Aplicaciones.....................................................................................................................46
4.4.6 Caractersticas..................................................................................................................46
4.4.7 Herramientas....................................................................................................................47
5 Apache Solr.....................................................................................................................................49
5.1 Introduccin.............................................................................................................................49
5.2 Componentes principales.........................................................................................................50
5.3 Lucene......................................................................................................................................51
5.3.1 Comparacin con la tecnologa de base de datos tradicional...........................................52
5.4 Indexacin................................................................................................................................52
5.4.1 Cmo Solr ve al Mundo...................................................................................................54
5.4.2 Anlisis de campos...........................................................................................................55
5.5 Bsquedas................................................................................................................................55
5.5.1 Relevancia........................................................................................................................59
Pgina 9
Introduccin
En la actualidad existe gran cantidad de sitios web que procesan grandes volmenes de
informacin, la cual es necesario manejar eficientemente. Principalmente por las siguientes razones:
La llamada Web 2.0 ha definido un conjunto de aplicaciones que facilitan la interaccin con
gran volumen de contenido multimedia.
En suma se ha pasando de hablar de gigabyte de informacin a hablar con total normalidad del
orden de los petabytes. Esta situacin ha generado el desafo de mejorar las herramientas de
bsqueda en lo que se denomina information retrieval utilizando para ello diversas tcnicas.
Claramente los buscadores en Internet (Google, Yahoo, Bing, etc.) han solucionado en parte el
problema pero han introducido otro que no es menor: la supuesta informacin recuperada es
sesgada al criterio de ordenamiento de cada buscador y no precisamente resuelve la problemtica de
encontrar lo que se necesita.
Para resolver el problema de la recuperacin de la informacin es necesario conocer (en parte) el
perfil de la persona que est buscando, y la manifestacin de inters de la misma. Las redes sociales
han resuelto (tambin en parte) la problemtica del vnculo entre personas y sus temas de inters
pero sin ocuparse del contenido de la informacin.
La segmentacin de la informacin en reas geogrficas ligadas a la ubicacin de cada individuo,
permitirn a los distintos usuarios de la red encontrar informacin segn rdenes de proximidad.
Para ello es necesario contar con:
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 10
3.1
En la Sede Puerto Madryn de la Universidad Nacional de la Patagonia San Juan Bosco se form
un equipo de vinculacin y transferencia tecnolgica con la finalidad de mejorar la calidad
tecnolgica de las organizaciones destinatarias, brindando cursos y realizando convenios con
empresas del ramo, como parte de la realizacin de prcticas profesionalizantes en proyectos de
extensin.
Uno de estos convenios se firm con la empresa Mediabit S.A. Esta empresa se especializa en
comunicacin, asesoramiento e integracin tecnolgica orientada a los negocios en Internet
(Internet Bussines Provider).
Dentro del marco de este convenio, el equipo trabaj dentro de un proyecto mencionado
anteriormente. Zonales es
conjunto de servicios de informacin reunidos en un mismo lugar que poseen un factor en comn:
la georreferenciacin de la informacin y servicios desde una perspectiva local para cada
comunidad. Dentro del portal, cada usuario puede consultar y publicar contenidos relacionados con
su localidad y zonas de inters, generando informacin desde la periferia hacia el centro
La ltima versin generada de Zonales estuvo en linea aproximadamente seis meses en forma
totalmente funcional. El volumen de datos que se gener durante ese tiempo fue de
aproximadamente un milln y medio (1.500.000) de documentos.
Actualmente la informacin clasificada por zona y por fuente se recupera utilizando una
combinacin de funciones de recuperacin diseada durante el desarrollo del proyecto.
La necesidad de comprobar y mejorar este conjunto de funciones es la principal motivacin de
este proyecto, en concreto, disear, investigar y probar diversas combinaciones de funciones de
recuperacin y filtros de informacin para que los datos recuperados sean de inters para el usuario
en el marco geogrfico-temporal.
Motiva adems la realizacin de este trabajo la experiencia adquirida por el autor en la temtica
al formar parte del grupo que escribi el paper Distributed Search on Large NoSQL
Databases[Tinetti, Barry, Aita, Pez, PDPTA2011] mencionado anteriormente, el cual fue
publicado en el ao 2011 en la Conferencia Internacional sobre Tcnicas y Aplicaciones de
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 11
Procesamiento Paralelo y Distribuido en Estados Unidos, material que ser utilizado como parte de
este trabajo de tesina.
Adems formo parte del grupo de investigacin sobre bases de datos NoSQL que se form en la
sede Puerto Madryn de la Universidad, dentro del cual participo del proyecto Tcnicas de
Recuperacin de Informacin en Grandes Volmenes de Datos Heterogneos con Bases de Datos
NoSQL, enfocado en la evaluacin de tcnicas existentes para recuperacin eficiente de
informacin sobre grandes volmenes de datos heterogneos.
Dichas tcnicas permitirn establecer las capacidades necesarias con las que debera contar una
base de datos de informacin masiva, tanto desde la perspectiva de almacenamiento y tcnicas de
indexacin, como de distribucin de las consultas, escalabilidad y rendimiento en ambientes
heterogneos.
El presente trabajo de tesina forma parte de los trabajos de investigacin realizados en el marco
del proyecto de investigacin mencionado. Aprovechando el gran volumen de informacin generada
en Zonales y, sumado a esto, las tcnicas ya utilizadas para la recuperacin, ordenamiento y filtro de
la informacin en forma geogrfica-temporal, aplicar y evaluar nuevas tcnicas que permitan
mejorarlas y optimizarlas.
3.2
Objetivos
Profundizar los conocimientos tericos del autor sobre bases de datos NoSQL, funciones de
recuperacin y filtro de informacin y distribucin de los datos.
Que el resultado de la tesina sea de utilidad para la investigacin en el campo de las bases de
datos NoSQL, especialmente en las recuperacin clasificada y ordenada de informacin en
grandes volmenes de datos.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 12
3.3
Hiptesis
Tomando como base de partida el ndice existente en el proyecto Zonales, se pretende demostrar
en el presente trabajo que es posible mejorar las funciones de bsquedas utilizadas para la
recuperacin de la informacin, de tal manera que cumplan con los requerimientos del proyecto
Zonales, incorporando clasificadores como pertenencia geogrfica, variables de tiempo y
tipificacin de la informacin.
3.4
Aporte
3.5
Metas
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 13
3.6
Metodologa
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 14
La primera etapa, planificacin de la revisin, tiene como objetivo definir los principales
parmetros que se tendrn en cuenta para realizar la revisin. En sus correspondientes sub-etapas se
establecern las razones que justifican la realizacin de la revisin, se establecer la manera en que
se har la bsqueda de trabajos y la forma en que estos sern revisados, y finalmente se evaluar la
planificacin realizada.
En la segunda etapa, desarrollo de la revisin, es en donde se lleva a cabo la revisin
propiamente dicha. Esta etapa est guiada por los protocolos definidos en la etapa de planificacin,
aunque, dado que la investigacin es un proceso flexible, es posible incluir cambios que signifiquen
alguna mejora en los mtodos. Durante esta etapa se buscarn y seleccionaran los estudios
primarios de acuerdo a los criterios previamente definidos, se extraern y se organizarn para su
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 15
posterior uso los datos relevantes al tema de investigacin, y finalmente se sintetizarn los mismos
de acuerdo al enfoque deseado.
En la ltima etapa, publicacin de los resultados, se escribirn los documentos necesarios para
la difusin de los resultados obtenidos, que no solo sern el informe final de la tesina, sino tambin
su comunicacin a travs de conferencias, publicaciones, etc.
En particular se adoptar la metodologa Scrum [Kniberg 2007][Rising, Janoff 2000] como gua
para organizar el proyecto de desarrollo. Scrum adopta sus ideas del trabajo orientado a la pila del
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 16
producto a desarrollar. No utiliza mtodos jerrquicos para la produccin de software sino que se
centra en las responsabilidades del equipo de proyecto.
La pila de producto es el corazn de Scrum, y bsicamente es una lista priorizada de requisitos, o
historias, o funcionalidades, metas que se quieren alcanzar, componentes que queremos construir,
etc., descritas usando la terminologa del usuario (llamadas historias, o a veces simplemente
elementos de la pila).
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Marco Terico
4.1
Sistemas Distribuidos
Pgina 17
Desde una perspectiva histrica podemos encuadrar a los sistemas distribuidos como una de las
ltimas etapas en la evolucin de los sistemas informticos, impulsados por los grandes avances en
comunicaciones y hardware de las ltimas dcadas.
Muchas de las tecnologas y aplicaciones relacionados con el presente trabajo de tesina son o
estn soportados por sistemas distribuidos, e incluso la arquitectura de solucin del proyecto
Zonales puede considerarse como tal, debido a la posibilidad de distribuir y escalar horizontalmente
sus componentes y de utilizar tcnicas de Information Retrieval y crawling de datos sobre
aplicaciones externas aprovechando las ventajas que ofrece la red Internet.
4.1.1 Conceptos
El objetivo de un sistema distribuido es integrar recursos y servicios mediante el uso de redes de
comunicaciones para ofrecer a usuarios y aplicaciones una visin sistmica nica, ocultando su
caracterstica de distribuido, funcionando en forma transparente e independiente de la ubicacin de
cada recurso, entendindose como tal cualquier dispositivo o servicio, hardware o software capaz de
ser compartido.
En la bibliografa existen numerosas definiciones de sistemas distribuidos, citaremos dos de ellas
para el presente trabajo.
Conjunto de computadores independientes que se muestran al usuario como un sistema nico
coherente [Tanenbaum, Van Steeen, 2008]
Sistema en el cual componentes de hardware y software, localizados en computadores en red, se
comunican y coordinan acciones slo mediante paso de mensajes [Coulouris et. al., 2001]
Los protocolos de red ocultan la topologa y los atributos fsicos de la misma mientras que los
sistemas operativos ocultan las caractersticas de los equipos fsicos. Los componentes de un
sistema distribuido pueden ser heterogneos, en cuyo caso se necesita una capa de software para
proporcionar una visin nica que normalmente se denomina middleware.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 18
4.1.2 Propiedades
Un sistema distribuido debe cumplir con un conjunto de propiedades para poder funcionar
adecuadamente. A continuacin se resumen dichas caractersticas.
4.1.2.1 Transparencia
Para mostrarse ante usuarios y aplicaciones externas como un sistema nico, los sistemas
distribuidos deben ofrecer una visin transparente respecto a su ubicacin fsica de los recursos. La
transparencia puede darse en distintos aspectos del sistema:
De identificacin. La forma en que los recursos del sistema son identificados debe ser
independiente de las plataformas que soporten cada componente del mismo.
De ubicacin. Se accede a los recursos del sistema sin importar en que nodo residen o si son
locales o remotos. Esto permite adems trasladar los recursos entre nodos sin que las
aplicaciones o los usuarios lo noten.
De paralelismo. El sistema distribuido puede distribuir la carga de trabajo entre los nodos
sin que la aplicacin tenga que solicitarlo explcitamente, siempre y cuando no tenga
consecuencias sobre la ejecucin de las mismas salvo las mejoras en rendimiento.
De comparticin. Un recurso debe poder ser accedido en forma concurrente desde diversas
aplicaciones del sistema sin efectos adversos sobre la ejecucin de las aplicaciones.
4.1.2.2 Consistencia
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 19
Cada uno de los nodos del sistema tiene su propio estado local y estn fsicamente distribuidos,
por lo tanto lograr un estado global unificado depende principalmente de los mecanismos de
comunicacin soportados por las redes.
Mantener una consistencia estricta demanda un nivel muy alto de comunicacin y sincronismo
entre nodos, lo cual afecta al rendimiento global del sistema. Encontrar un nivel aceptable entre
rendimiento y consistencia es el objetivo que debe perseguir el diseador del sistema.
4.1.2.3 Escalabilidad
A diferencia de los sistemas centralizados, en los cuales para poder mantener un nivel de
prestaciones adecuando frente a un incremento en la demanda de uso es necesario escalar en forma
vertical, es decir aumentar la capacidad de cmputo o almacenamiento en disco o memoria del
sistema, en los sistemas distribuidos es posible hacerlo aadiendo ms nodos o recursos distribuidos
de manera horizontal.
Para que esto sea posible es necesario planear cuidadosamente el crecimiento del sistema
mediante el diseo de arquitecturas adecuadas para cada caso. Por ejemplo, no se debe limitar el
espacio de nombre de manera tal que impida la incorporacin de nuevos recursos. En la misma
linea deben evitarse en general los cuellos de botella tanto en aspectos fsicos como de
programacin que incurran en fallas de rendimiento o acceso a los recursos.
4.1.2.4 Fiabilidad
Podemos definir la fiabilidad como la capacidad del sistema de cumplir en forma correcta y
durante todo el tiempo las funciones para las cuales fue implementado. Clasificaremos esta
propiedad en dos aspectos principales:
Disponibilidad: est representado por la cantidad de tiempo en que el sistema est operativo.
La disponibilidad est estrechamente ligada a la calidad de los recursos y a la replicacin de
los mismos dentro del sistema distribuido. Para aumentar la disponibilidad es necesario
mejorar alguno de dichos conceptos. En el estado tecnolgico actual normalmente es ms
econmica la replicacin. Los sistemas distribuidos proporcionan en forma natural la
replicacin de algunos recursos, por ejemplo unidades de proceso, mientras que otros que
habitualmente son compartidos pueden replicarse para aumentar la disponibilidad, como es
el caso de un sistema de archivos. La probabilidad de que un recursos no est disponible se
reduce en forma exponencial por cada replica existente del mismo.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 20
Tolerancia a fallos: es la capacidad del sistema de detectar y corregir un fallo sin que el
usuario o las aplicaciones lo noten. La distribucin y replicacin de los recursos permiten
brindar esta propiedad pero no lo garantizan por si sola. Es necesario un mecanismo de
administracin de fallo robusto.
4.1.3 Aplicaciones
Es importante diferenciar en este punto las aplicaciones paralelas de las aplicaciones distribuidas.
Una aplicacin paralela puede dividir sus tareas y ejecutarlas en forma paralela ajustndose a
determinados esquemas y el objetivo que persiguen es disminuir los tiempos de procesamiento
repartiendo la carga.
Un aplicacin distribuida tiene objetivos ms variados y se aplica a diversos entornos. Entre las
motivaciones que pueden justificar la implementacin de un sistema distribuido podemos destacar:
Alto rendimiento: una aplicacin distribuida puede ser tambin paralela, persiguiendo el
mismo objetivo de mejorar los tiempos de respuesta en los procesos de cmputo. Un
ejemplo muy extendido hoy en da es el uso de clusters de mquinas conectadas a una red de
alta velocidad sobre las cual se distribuye entre los nodos las tareas de procesamiento.
Ubicuidad: contemplan entornos donde los recursos estn distribuidos y los usuarios se
movilizan entre ellos. Las aplicaciones intentan generar un comportamiento inteligente en
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 21
funcin de las necesidades del usuario, los tipos de recursos y la disponibilidad de los
mismos.
En cuanto a los entornos, podemos considerar a Internet como el ms generalizado, en la cual se
pueden desplegar aplicaciones distribuidas de ndole muy variada, con ciertas limitaciones de
rendimiento y seguridad. La World Wide Web (WWW) es el mximo exponente de aplicacin
distribuida sobre Internet y es la forma de acceso ms habitual a otras aplicaciones.
Si embargo muchas aplicaciones distribuidas pueden tener requisitos de seguridad o rendimiento
que hagan inviable su implementacin sobre Internet, para las cuales es necesario utilizar Intranets
o entornos ubicuos especficos.
En cuando aplicaciones comerciales, muchas veces los sistemas distribuidos reemplazan a
aplicaciones histricamente desarrolladas en ambientes centralizados, como pueden ser reservas en
cadenas hoteleras o lineas areas, sistemas bancarios, cadenas de retail con muchas sucursales, etc.
Las aplicaciones multimedia como videoconferencias, streaming de video, radios en linea,
vigilancia, etc., tambin se estn incorporando a los sistemas distribuidos debido a sus
requerimientos de velocidad y regularidad de la transmisin.
4.1.4 Ventajas
Podemos enumerar a modo de resumen alguna de las principales ventajas de los sistemas
distribuidos:
Mayor flexibilidad. Los sistemas distribuidos ofrecen mayor amplitud de criterios a la hora
de administrar los recursos. Pueden considerarse aspectos como la demanda de uso,
ubicaciones geogrficas, costos, etc.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 22
4.1.5 Desventajas
Los sistemas distribuidos presentan ciertas desventajas, algunas de las cuales han provocado que
aplicaciones comerciales que estaban operando se discontinuaran o adaptaran.
4.1.6 Perspectivas
Debido al auge de los dispositivos porttiles de los ltimos aos que ha dado lugar a lo que se
denomina habitualmente Informtica mvil, los equipos salen de las redes locales para descubrir
nuevos recursos y deben adaptarse a condiciones de red ms variables y deben poder funcionar en
forma offline en determinadas circunstancias. Han surgido nuevos protocolos para soportar estas
condiciones y se establecen redes ad-hoc aprovechando las ventajas de las redes inalmbricas.
Un escaln ms arriba podemos encontrar a los sistemas ubicuos, en los cuales dispositivos
mviles de gran potencia y reducido tamao se adaptan a un entorno naturalmente cambiante,
mediante aplicaciones que descubren recursos y servicios configurndose en forma dinmica,
adaptando las interfaces de usuarios en cada caso. Ejemplos de este tipo de dispositivos son los
telfonos inteligentes o smartphones, tablets, sistemas de navegacin integrados en automviles,
etc.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 23
Los sistemas ubicuos plantean numerosos retos de amplio espectro tecnolgico en mbitos de
aplicacin muy diversos tales como el hogar, comercios, salud, educacin, robtica y turismo por
citar solo algunos.
4.2
Cuando los datos de una organizacin son gestionados por un sistema que permite que sean
accedidos por diversos usuarios y aplicaciones en entornos distribuidos es posible afirmar que se
trata de una base de datos distribuida. Este tipos de sistemas es un subconjunto de los sistemas
distribuidos mencionados en la seccin anterior, diseados especficamente para almacenar datos e
informacin en entornos distribuidos.
4.2.1 Conceptos
Es importante diferenciar un Sistema Gestor de Bases de Datos (SGBD) centralizado al cual se
puede acceder a travs de la red de un Sistema Gestor de Bases de Datos Distribuidas (en adelante
SGBDD), en donde los datos estn fsicamente distribuidos en una serie de nodos a travs de una
red y el sistema permite gestionar los datos de manera transparente.
Tambin existen las arquitecturas multiprocesador que comparten espacios de memoria y
almacenamiento (fuertemente acopladas) o solo espacio de almacenamiento (dbilmente acoplados)
y sistemas de bases de datos que utilizan estas arquitecturas, pero no son objeto del presente trabajo.
Otra tcnica utilizada para la distribucin de datos es la denominada arquitectura con nada
compartido, o shared nothing, donde cada nodo tiene su propia memoria y almacenamiento y solo
se comunican a travs de las redes de conexin. Existe una seccin posterior dedicada a este tipo de
arquitecturas.
En esta seccin se describen especficamente los SGBDD, los cuales definiremos como una
coleccin de mltiples bases de datos interrelacionadas lgicamente, distribuidas por una red de
computadores, y gestionadas por un sistema software que maneja la base de datos distribuida en
forma transparente para el usuario[Elmasri, Navathe 2002].
Los SGBDD tambin cumplen con las propiedades de los sistemas distribuidos mencionadas en
la seccin anterior, como: transparencia, tolerancia a fallos, consistencia, alta disponibilidad y
fiabilidad, escalabilidad, etc.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 24
Servidor: es la parte del sistema que proporciona estos servicios a los clientes.
En lo referente a las partes que componen un SGBDD podemos agrupar los mdulos del
software en tres grupos principales:
Software de servidor: gestiona los datos locales de un nodo en forma similar a los SGBD
centralizados.
Software del cliente: se ocupa normalmente de las interfaces de usuario y de todas las
tareas inherentes a la distribucin.
Existen cuatro dimensiones a considerar a la hora de elaborar una estrategia de diseo de una
base de datos distribuidas, tres de ellas en comn con los SGBD centralizados ms una dimensin
adicional para el diseo de la distribucin.
Las tres primeras dimensiones a considerar son:
Nivel de comparticin: que puede ser inexistente, solo de datos o de datos y programas.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 25
Nivel de conocimiento de acceso: los diseadores pueden no conocer como los usuarios
acceden a los datos, conocer parcialmente o contar con la informacin completa respecto al
modo de acceso.
Mediante este proceso se dividen los datos de una tabla o conjunto de tablas en unidades de
menor tamao, siendo el objetivo principal del diseo encontrar la unidad ptima para realizar la
fragmentacin.
Es posible enumerar una serie de ventajas de la fragmentacin, entre las que se destacan:
Ventajas de uso, aprovechando las vistas que generan las aplicaciones y que normalmente
constituyen un subconjunto de datos. Pueden considerarse a estos conjuntos como unidades
de distribucin.
Es posible paralelizar una transaccin entre los fragmentos, aumentando los niveles de
concurrencia.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 26
Almacenando en un nodo solo los datos a los que los usuarios de ese nodo tienen acceso se
minimizan los riesgos de accesos no autorizados, mejorando la seguridad del sistema.
Si una vista debe operar sobre mltiples fragmentos aumentarn las operacin de
verificacin de integridad y seguridad afectando tambin el rendimiento.
4.2.2.2 Asignacin
Consiste en el proceso de distribucin de los fragmentos entre los nodos del sistema. La solucin
ptima puede disearse considerando el costo mnimo de la operacin, considerando costos de
procesamiento, comunicaciones y almacenamiento, o buscando obtener mejores mtricas de
rendimiento optimizando tiempos de respuestas y productividad.
Una vez que se asignan los datos, los fragmentos pueden replicarse para obtener mejoras en
seguridad, disponibilidad y velocidad de acceso a los datos que contienen. La replicacin puede ser
inexistente, parcial o completa, dependiendo de la estrategia de diseo elegida.
La replicacin mejora notablemente el rendimiento de las consultas penalizando las inserciones o
actualizaciones de datos, por lo cual es mayormente utilizada en aquellos fragmentos con mayor
nivel de operaciones de lectura y con menos cantidad de escrituras.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 27
4.2.3 Transacciones
La distribucin de los datos y las operaciones en un SGBDD agrega un nivel extra de
complejidad a la tarea de lograr una ejecucin consistente de las operaciones sobre los datos. Al
igual que todo SGBD se deben respetar las cuatro propiedades bsicas de toda transaccin (ACID
por sus siglas en ingls):
Atomicidad: toda transaccin es una nica unidad de operacin que debe ejecutarse
completamente o no ejecutarse.
Consistencia: una transaccin se ejecuta partiendo de un estado consistente de los datos que
debe mantenerse al finalizar su ejecucin.
Aislamiento: una transaccin no debe mostrar sus resultados hasta tanto no finalizar. Si
varias transacciones concurrentes acceden a un mismo conjunto de datos, deben ejecutarse
como si lo hicieran en serie.
Durabilidad: una vez ejecutada una transaccin sus resultados son permanentes.
La existencia de varias locaciones de datos sobre los cuales puede ejecutarse una transaccin
obliga a los SGBDD a proveer una funcionalidad de coordinacin global de las transacciones que
asegure que se respeten estas propiedades.
Es decir, el coordinador recibe el pedido de transaccin y lo divide en una secuencia de
transacciones que reparte entre los nodos involucrados, encargndose a su vez de gestionar los
resultados, confirmando o rechazando la transaccin en caso de fallos.
Pgina 28
4.2.5 Consultas
El procesamiento de las consultas en ambientes distribuidos es mucho ms complejo que en las
bases de datos centralizadas, y es un aspecto de vital importancia en su rendimiento.
El procesador de consultas es el responsable de transformar las consultas de alto nivel recibidas
por parte de usuarios y aplicaciones en comandos de manipulacin de datos de bajo nivel,
minimizando el consumo de recursos del sistema, y en el caso de los SGBDD el lgebra relacional
no es suficiente para planificar la estrategia de ejecucin, debiendo complementarse con
optimizaciones en el intercambio de datos entre nodos.
Entre estas operaciones se destacan la eleccin del orden de las operaciones, el mejor sitio para
procesar los datos y la forma en que deben finalmente ser transformados.
Una simplificacin de la funcin de costo que el procesador de consultas de un sistema
distribuido debe minimizar es la siguiente:
Costo total = costo de I/O + costo de CPU + costo de comunicaciones.
En distintos ambientes los pesos de cada uno de los sumandos puede variar, pudiendo ser
despreciable el costo de alguno de ellos. Por ejemplo, en un sistema que utilice redes WAN el costo
de comunicacin ser dominante, en tanto que en redes de alta velocidad los tres factores se
equiparan.
4.2.6 Clasificacin
Clasificaremos a las bases de datos distribuidas en base a diversos criterios de diseo. En primer
lugar, teniendo en cuenta la forma en que los datos se almacenarn en el sistema, se pueden
clasificar en:
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 29
Centralizadas: solo los clientes que acceden a la base de datos estn distribuidos, con lo
cual solo es posible obtener algn tipo de procesamiento de datos distribuido sin ninguna
otra ventaja de los SGBDD.
Replicadas: cada nodo tiene una copia completa de la base de datos, logrando un alto nivel
de fiabilidad y disponibilidad, pero penalizando notoriamente las actualizaciones de datos.
Vale la pena su utilizacin en sistemas con gran cantidad de consultas y pocas escrituras.
Particionadas: solo existe una copia de cada elemento de dato, pero la informacin se
distribuye a travs de los nodos mediante tcnicas de fragmentacin.
Otro criterio por el cual es posible clasificar a los SGBDD es segn el hardware y software
utilizado como base para soportarlos. Es posible identificar dos tipos de sistemas mediante este
criterio:
Homogneas: todos los nodos utilizan el mismo software de gestin de bases de datos,
hardware de prestaciones similares y conocen al resto de los nodos cooperando en conjunto
para procesar las transacciones. Tienen menor autonoma en cada nodo pero el diseo e
implementacin suele ser ms sencillo que las heterogneas.
Vale mencionar un tipo particular de bases de datos distribuidas, los Sistemas de Bases de Datos
Federados. Estn compuestos por un conjunto de sistemas de bases de datos autnomos que
funcionan en forma cooperativa.
En un sistema federado los usuarios tienen acceso a los datos a travs de una interfaz comn pero
no existe un esquema global que describa a todos los datos de las distintas bases de datos, en su
lugar hay varios esquemas unificados, cada uno describiendo porciones de bases de datos y archivos
para el uso de cierta clase de usuarios.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 30
Mayor autonoma
4.2.7.2 Desventajas
Mayor complejidad para garantizar la seguridad de acceso a los datos. Se debe realizar
control de rplicas y errores de red.
4.2.7.3 Perspectivas
Los sistemas de bases de datos han evolucionado naturalmente hacia esquemas distribuidos de la
mano de los requerimientos de las propias organizaciones que los utilizan. Muchos productos
comerciales de primera linea como Oracle, Microsoft MSSQL Server y MySQL poseen versiones
distribuidas de sus gestores de bases de datos.
En los ltimos aos han surgido un conjunto de bases de datos denominadas NoSQL como
respuesta a la necesidad de almacenamiento y recuperacin de informacin no estructurada.
Describiremos en mayor detalle este tipo de bases de datos en la siguiente seccin.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
4.3
Pgina 31
4.3.1 Introduccin
Para aproximarnos al concepto de bases de datos NoSQL y al concepto BigData primero es
necesario repasar brevemente las bases de datos basadas en SQL, que son ms conocidas por la
mayora de los usuarios en niveles muy diferentes, desde aquellos que operan diariamente con ellas
y manejan fluidamente el lenguaje, las reglas de normalizacin y las limitaciones que conlleva,
hasta aquellos que solo las utilizan.
Las bases de datos relacionales, tpicamente gestionadas con sistemas como Oracle, MySQL,
Microsoft SQL Server, PostgreSQL, etc, suponen una operativa que resulta natural: siguen reglas
ACID (Atomicity, Consistency, Isolation y Durability, o Atomicidad, Consistencia, Aislamiento y
Durabilidad), lo que permite que las instrucciones puedan ser consideradas una transaccin, y
responden a una visin sencilla, en la que un dato se almacena de una manera inequvoca y con
relaciones bien definidas, es decir, la visin de tablas con filas y columnas en las que una consulta
siempre devuelve los mismos campos.
Si extendemos el concepto podemos dar lugar a realidades cada vez ms frecuentes en la
operatoria habitual en nuestros das. No todos los datos tienen una estructura relacional, muchas
veces se dejan fuera de anlisis todo aquello que la forma de operacin de las bases de datos
tradicionales no es capaz de procesar. Las bases de datos NoSQL (Not Only SQL) suponen
flexibilizar muchas de las limitaciones inherentes a las bases de datos convencionales y a la forma
de trabajar con ellas. Colecciones de documentos con campos definidos de manera laxa, en lugar de
tablas con filas y columnas, que permiten anlisis mucho ms rpidos y eficientes y, sobre todo, no
limitados a la estructura convencional. La idea es almacenar datos de manera masiva, lo que
responde muy bien a la enorme cantidad y variedad de datos que genera el mundo actual, y
analizarlos sin seguir necesariamente estndares que no se adaptan a ellos, donde las bases de datos
relacionales resultan costosas y lentas para esta problemtica. La alternativa NoSQL aplicada a
determinados contextos organizacionales puede resultar ms eficiente y econmica para manipular
datos sin tener necesariamente que adaptarlos a una estructura rgida. Un sistema de este tipo no es
siquiera una base de datos entendida como tal, sino un sistema de almacenamiento distribuido para
gestionar datos dotados de una cierta estructura, que adems puede ser flexible.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 32
Este tipo de estructuras de datos muchas veces supone un problema para la mayora de la gente,
cuyos esquemas mentales se adaptan a un sistema rgido, con normas claras y estructuras marcadas.
Los paralelismos con los almacenes divididos en estanteras, archivadores y carpetas son algo que
nos funciona mentalmente. Sin embargo, por ejemplo, cmo podramos gestionar bsquedas
enormes en bases de datos que contienen referencias completamente heterogneas entre s y con
relaciones de todo tipo, no necesariamente nicas? En muchos casos, hablamos de sistemas que han
sido precisamente desarrollados por empresas como Google, Yahoo!, Facebook y similares para
gestionar sus propias operativas, usando casi siempre cdigo abierto, con el fin de obtener una
estructura que, con un costo y un rendimiento razonable, les permita tratar enormes cantidades de
datos con muchsimas relaciones muy complejas entre s.
Dentro de este contexto, la recuperacin de la informacin presenta varios problemas, siendo una
solucin a este inconveniente el uso de estructuras de datos que permitan ser rpidamente
consultadas. El indexado transforma los datos desde su forma original en una estructura que facilita
la bsqueda y recuperacin de los mismos en forma rpida y precisa, por ejemplo un ndice
invertido [Satnam Alag 2009], un ndice de citas, una matriz o un rbol.
El proceso de indexado generalmente requiere un anlisis y procesamiento de los documentos a
incluir en el ndice: lematizacin, tokenizacin, anlisis fontico, etc. Estos pasos introducen
problemas y desafos importantes al momento del procesamiento [Satnam Alag 2009].
4.3.2 Definicin
Debido al origen de las bases de datos NoSQL y a que es un trmino reciente existen muchas
definiciones poco formales para describirlos. Se citan a continuacin un par de definiciones para
aproximarnos al concepto.
El sitio nosql-database.org por ejemplo las describe como la Siguiente generacin de bases de
datos comnmente orientadas hacia algunos de los siguientes puntos: ser no-relacional,
distribuida, de cdigo abierto y escalable horizontalmente.
La intencin original han sido las modernas bases de datos a escala web. El movimiento
comenz a principios de 2009 y ha crecido rpidamente. A menudo se suelen considerar ms
caractersticas tales como Sin Esquemas, facilidad de replicacin, APIs simples, consistencia de
datos eventual (BASE, no ACID), grandes cantidades de datos, etc. As que el trmino engaoso
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 33
NoSQL (que la comunidad actualmente traduce como Not Only SQL) debe ser considerado un alias
de las definiciones anteriores.
Citando el whitepaper [Oracle NoSQL Database 2011] podemos ampliar el concepto de bases de
datos NoSQL:
...NoSQL se caracteriza a veces por el acrnimo BASE:
Basically Available: Uso de tcnicas de replicacin y sharding para reducir la probabilidad de
falta de servicio, es decir, se dividen los datos en varios servidores de almacenamiento diferentes,
permitiendo al sistema estar siempre disponible, incluso si una parte de los datos no est
disponible por un perodo corto de tiempo.
Soft state: Mientras que los sistemas ACID asumen la consistencia como el requisito
fundamental, los sistemas NoSQL permiten que lo datos sean inconsistentes delegando esta
responsabilidad en los programadores.
Eventually consistent: aunque las aplicaciones deben tratar con coherencia instantnea, los
sistemas NoSQL aseguran que en algn momento futuro los datos tomaran un estado coherente. En
contraste con los sistemas ACID que obligar a cumplir la consistencia en cada transaccin, NoSQL
garantiza consistencia solo en un perodo futuro de tiempo no definido.
En resumen, son bases de datos pensadas para manipular grandes cantidades de datos en forma
rpida, permiten escalabilidad horizontal y ofrecen mayor flexibilidad para el almacenamiento de
datos debido a que no imponen una estructura de tablas y relaciones sino que ofrecen otros
formatos. En base a estos formatos surgen las principales clasificaciones existentes: documentales,
de grafos, clave/valor, multivalor, orientadas a objetos y tabulares.
Debido a estas definiciones bastante amplias, han surgido numerosas bases de datos que se
consideran NoSQL y existen herramientas que podran ser consideradas NoSQL aunque
normalmente no se las cita en esta forma.
Un ejemplo claro es la herramienta utilizada para crear el ndice que se utilizar en el presente
trabajo, Apache Solr, la cual no aparece catalogada como base de datos NoSQL en la mencionada
web, sin embargo es posible considerar a la herramienta como tal dado que cumple con varias de las
premisas listadas en la definicin previa. Por ejemplo, como veremos en el captulo 6, para el
proyecto Zonales se decidi almacenar informacin en formato JSON en el ndice Solr para obtener
mejoras de performance en la recuperacin.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 34
De clave-valor: la idea principal aqu es utilizar una tabla hash donde hay una clave nica
y un puntero a un elemento de datos en particular. El modelo clave / valor es el ms simple y
ms fcil de implementar, pero es ineficiente cuando slo est interesado en consultar o
actualizar parte de un valor, entre otras desventajas. En esta categora podemos clasificar a
DynamoDB y Redis.
Orientadas a columnas: en este tipo de bases de datos los datos se almacenan en las clulas
agrupadas en columnas de datos en lugar de filas. Las columnas estn lgicamente
agrupadas en familias de columnas. Cada familias de columnas puede contener un nmero
virtualmente ilimitado de columnas que se pueden crear en tiempo de ejecucin o en la
definicin del esquema. Leer y escribir se hace utilizando columnas en lugar de filas.
Cassandra y Hbase son bases de datos orientadas a columnas.
Orientadas a documentos: los datos se almacenan en forma similar a las bases de datos de
tipo clave-valor, pero los valores almacenados (referidos como "documentos")
proporcionan una cierta estructura y codificacin para la administracin de los datos. XML,
JSON (Java Script Object Notation) BSON (que es una codificacin binaria de objetos
JSON) son algunas de las codificaciones estndares ms comunes. MongoDB y CouchDB
son ejemplos de este tipo.
En grafo: basadas en la teora de grafos utilizan nodos y arcos para representar los datos
almacenados. Tanto los nodos como los arcos tienen algunas propiedades definidas. Son
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 35
muy tiles para guardar informacin en modelos con muchas relaciones, como redes y
conexiones sociales. Ejemplos de esta categora son Neo4j y Infinite Graph.
4.3.3.2 Clasificacin segn el teorema CAP
El teorema CAP o teorema Brewer afirma que en sistemas distribuidos no es posible garantizar al
mismo tiempo consistencia, disponibilidad y tolerancia a particiones (Consistency, Availability,
Partition Tolerance).
Las bases de datos NoSQL utilizan diversos mtodos para ser escalables y distribuidas, por lo
cual cada una cumple distintos puntos del teorema CAP. Segn las condiciones que cumplen del
teorema se clasifican en:
Se utiliza un proceso de indexado transformando los datos desde su forma original en una
estructura que facilita la bsqueda y recuperacin de los mismos en forma rpida y precisa, por
ejemplo un ndice invertido [Elmagarmid, Rusinkiewicz, Sheth 1999], un ndice de citas, una matriz
o un rbol.
Estas tcnicas facilitan la implementacin y escalabilidad en ambientes heterogneos mediante el
uso del concepto de base de datos de particin horizontal o sharding [zsu, Valduriez 1999; Taniar
et. al. 2008; Dean, Ghemawat 2004; Stonebraker 1986].
Se pueden utilizar bases de datos no convencional para almacenar el ndice de bsqueda (listas
invertidas), provee mltiples capacidades para el escalado horizontal, permitiendo dividir la carga
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 36
de trabajo entre mltiples instancias lo que permite una fragmentacin horizontal de los mismos
entre mltiples servidores de ndices y documentos, a los cuales se les denomina shards.
Las bsquedas son luego redirigidas a cada shard, y finalmente una respuesta nica es construida
en base a los resultados obtenidos de cada uno. Esta tcnica es utilizada especialmente cuando se
cuenta con un gran volumen de datos sobre el cual realizar consultas.
Las bsquedas puede ser dirigida a cualquier instancia, y sta delegar la misma a los shards
especificados, y responder la consulta agregando los mltiples resultados.
Para comprender el escalonado horizontal es necesario tambin comprender la tcnica que se
describe en el siguiente punto.
4.3.4.2 Shared Nothing
Segn Michael Stonebraker: Consiste en una arquitectura distribuida en el que cada nodo es
independiente y auto-suficiente, y tiene un nico punto de contencin en todo el sistema.
El concepto de Shared Nothing parte de la independencia de los nodos, mediante la distribucin
de la informacin y de las acciones sobre dichos nodos.
Se podra decir que un Shard es un nodo Shared Nothing donde se administra un conjunto de
documentos indexados segn algn criterio y en donde se los puede someter a mecanismos de
bsqueda de informacin, jerarquizacin y ordenamiento de la informacin recuperada dependiendo
de necesidades particulares de informacin. Por ejemplo se podran realizar distribuciones:
geogrficas, temticas, ontolgicas, segmentacin segn preferencias, etc. o inclusive
combinaciones de ellas.
En todos los casos se puede combinar con tcnicas de bases de datos tradicionales, como la
replicacin y la paralelizacin mediante esquemas de Shared Disk (cluster tradicional, como por
ejemplo la implementacin de un blade con una Storage Area Network) [zsu, Valduriez 1999;
Taniar et. al. 2008; Stonebraker 1986].
En general el concepto de Shared Nothing garantiza niveles de consistencia de informacin,
pero no es ACID Compliant, esta situacin facilita la conformacin heterognea de nodos y la
independencia de procesamiento ya que cada nodo posee su propia unidad de memoria,
almacenamiento en disco y procesamiento.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 37
Esta
consistente en todos los nodos. En este caso el motor de bsqueda cuenta con un pooling de nodos
de datos en los cuales buscar la informacin.
La arquitectura no paraleliza las bsquedas, simplemente distribuye la carga entre los nodos.
Como los nodos son independientes y auto-suficientes son capaces de responder consistentemente a
la consulta realizada ya que la responsabilidad de recuperacin est en el nodo de datos y la
responsabilidad de distribucin de carga en el balanceador.
La desventaja de este mtodo es que ni resuelve el problema espacial de la informacin ni
paraleliza la bsqueda [Valduriez 1992].
4.3.4.4 Scatter and Gather
Pgina 38
Para este caso es interesante poder aplicar la tcnica del siguiente punto.
4.3.4.5 Map / Reduce
Esta es una buena tcnica para procesar gran volumen de datos en paralelo. El modelo provee un
mecanismo de particionamiento de informacin que permite distribuir inteligentemente, de
acuerdo a reglas pre-definidas, los datos en distintos nodos auto-contenidos.
Map /reduce es una tcnica que implica paralelizar los datos que es distinto a paralelizar las
tareas. Obviamente la paralelizacin de los datos permite paralelizar el procesamiento en las
bsquedas, pero la clave de la tcnica se basa en la inteligencia de separacin de los datos. A su vez
una ventaja adicional radica en el ahorro de espacio en el resultado de las claves compartidas al
reducirlas dentro de un documento [Venner 2009; Dean, Ghemawat 2004].
DynamoDB es una base de datos NoSQL desarrollada por Amazon y aadida al conjunto de
aplicaciones que ofrece sobre la nube. Al igual que la mayora de los servicios ofrecidos por
Amazon puede ser gestionada en unos pocos clics desde la consola de administracin de AWS
(Amazon Web Services) y se pueden aumentar o disminuir los recursos segn las necesidades
consultando las estadsticas de rendimiento.
DynamoDB no tiene un esquema fijo sino que cada elemento de datos puede tener un nmero
diferente de atributos y se identifica con una clave nica que es el nico elemento obligatorio
(clave-valor). Se pueden usar varios tipos de datos como strings, nmeros o conjuntos. Ofrece un
servicio de consultas flexible que permite consultar a travs de atributos no claves, utilizando
ndices secundarios globales o locales.
Puede
obtenerse
ms
informacin
desde
la
propia
web
de
Amazon
La arquitectura de Cassandra se basa en asumir que ocurren fallos en los sistemas de software y
hardware, abordando el problema mediante el empleo de un sistema distribuido peer-to-peer a
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 39
travs de nodos homogneos donde los datos se distribuyen entre todos los nodos del cluster. Cada
nodo intercambia informacin con otros nodos en el cluster cada segundo. Se registra en forma
secuencial en un log todas las actividades de escritura de datos para asegurar la durabilidad de los
mismos.
Cassandra es una base de datos orientada a columnas. La arquitectura de Cassandra permite a
cualquier usuario autorizado conectarse a cualquier nodo del centro de datos y para las consultas
utiliza el lenguaje CQL, el cual posee una sintaxis similar a SQL. Desde la perspectiva CQL la base
de datos se compone de tablas. Por lo general, un cluster tiene un espacio de claves por aplicacin.
Los desarrolladores pueden acceder utilizando CQL a travs del mdulo cqlsh, o utilizando los
driver existentes para varios lenguajes de programacin.
Cuando un cliente se conecta a un nodo con una solicitud, ese nodo se desempea como
coordinador de esa operacin en particular. El coordinador acta como un proxy entre la aplicacin
cliente y los nodos que son dueos de los datos que se solicitan. El coordinador determina que
nodos en el anillo debe recibir la solicitud en funcin de cmo est configurado el cluster. Se puede
obtener mayor informacin en la web de Cassandra [http://wiki.apache.org/cassandra/].
4.3.5.3 Neo4j
Neo4j es una base de datos orientada a grafos de cdigo abierto con soporte comercial. Fue
diseada y construida desde cero para ser una base de datos optimizada para estructuras de grafos
en lugar de tablas. Su aplicacin permite aprovechar la expresividad de un grafo manteniendo la
fiabilidad que normalmente se espera de una base de datos.
Las bases de datos orientadas a grafos representan la informacin como nodos de un grafo y sus
relaciones como las aristas del mismo. De esta forma, se puede usar una teora de grafos para
recorrer la base de datos cuando puede describir atributos de los nodos (entidades) y de las aristas
(relaciones)
Este tipo de bases de datos almacenan los datos en nodos, los cuales tienen propiedades. El grafo
ms simple posible es el de un solo nodo y se le pueden asignar miles de propiedades. Por supuesto
que no tiene sentido acumular tantos propiedades en un nodo, por lo cual se distribuyen en varios
nodos, organizados con relaciones explcitas.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 40
Los nodos son organizados por las relaciones que tambin tienen propiedades. Las relaciones
permiten estructuras arbitrarias por lo cual un grafo puede parecerse a una lista, un rbol, un mapa,
o una entidad compuesta, y pueden combinarse en estructuras an ms complejas e interconectadas.
Ms informacin en la web de Neo4j [http://www.neo4j.org/].
4.3.5.4 Apache CouchDB
CouchDB es un gestor de bases de datos NoSQL de cdigo abierto cuyo foco est puesto en la
facilidad de su uso y en ser "una base de datos que asume la web de manera completa". Emplea el
formato JSON para almacenar los datos, JavaScript como lenguaje de consulta por medio de Map
Reduce y HTTP como API. CouchDB fue liberada por primera vez en 2005, transformndose en un
proyecto Apache en 2008.
Una de sus caractersticas ms peculiares es la facilidad con la que permite hacer replicaciones.
CouchDB se dise poniendo el foco en la replicacin bidireccional (o sincronizacin) y la
operacin offline. Eso significa que mltiples rplicas pueden tener cada una sus propias copias de
los mismos datos, modificarlas y luego sincronizar esos cambios en un momento posterior. Esta
caracterstica hacen que sea ideal para su uso en dispositivos mviles, donde la conexin no siempre
est disponible.
CouchDB almacena los datos como "documentos", esto es, uno o ms pares campo/valor
expresados en JSON. Los valores de los campos pueden ser datos simples como cadenas de
caracteres, nmeros o fechas. Pero tambin se pueden usar listas ordenadas y vectores asociativos.
Todos los documentos en una base de datos CouchDB tienen un identificador nico y no requieren
un esquema determinado.
Ms informacin en la web de CouchDB [http://couchdb.apache.org/]
4.3.5.5 MongoDB
MongoDB es una base de datos orientada a documentos que puede proporcionar alto
rendimiento, alta disponibilidad y facilitar la escalabilidad.
4.3.5.5.1 Caractersticas principales
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 41
Una implementacin de MongoDB puede contener un conjunto de bases de datos. Una base de
datos contiene un conjunto de colecciones. Una coleccin tiene un conjunto de documentos. Un
documento es un conjunto de pares clave-valor. Los documentos tienen esquemas dinmicos. Un
esquema dinmico implica que los documentos de la misma coleccin no necesitan tener el mismo
conjunto de campos o estructura, y los campos comunes en los documentos de una coleccin
pueden contener diferentes tipos de datos.
4.3.5.7 Consultas
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 42
Utilizando Map Reduce. Esta tcnica mencionada en la seccin anterior provee un modelo
de programacin muy potente, permitiendo pasar como parmetros en las consultas
funciones tanto de mapeo como de reduccin de los datos junto con un conjunto de opciones
adicionales.
4.4
Big Data
4.4.1 Introduccin
Tal y como se coment en la seccin de introduccin del presente trabajo la cantidad de
informacin generada y manipulada actualmente ha crecido exponencialmente tan solo comparando
con la existente hace 20 aos atrs. Vivimos actualmente en la era de la informacin donde muchos
afirman que existen ms telfonos y dispositivos mviles conectados que personas en el planeta. El
mundo tiene ms datos que nunca pero, lo que es ms importante, genera nuevos datos a un ritmo
nunca antes conocido.
Es en este escenario donde hace muy pocos aos comenz a utilizarse el trmino Big Data para
referirse de manera, muchas veces confusa, tanto a los grandes conjuntos de datos como a las
tcnicas y herramientas para manipularlos y obtener conocimiento a partir de la informacin.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 43
Durante el ao 2012 un gran porcentaje de los artculos de opinin sobre tecnologa avanzada
utilizaban el trmino como una estrategia que no poda faltar en ninguna empresas. En muchos
casos se lo utiliz ms como marketing que sabiendo realmente de que se trataba.
4.4.2 Definicin
Desde que el MGI (McKinsey Global Institute) acu el concepto a mediados del 2011, han
surgido numerosas definiciones de Big Data, la mayora de ellas como intentos de acotar el
concepto a un rea determinada.
Una de las ms completas es la realizada por Gartner [http://www.gartner.com/it-glossary/bigdata/] Son activos de informacin caracterizados por su alto volumen, velocidad y variedad, que
demandan soluciones innovadoras y eficientes de procesado para la mejora del conocimiento y
toma de decisiones en las organizaciones.
Un estudio realizado por el IBM Institute for Business Value entre ms de mil profesionales en
IT y expertos en la materia de casi 100 pases muestra que el trmino para algunos es tan abarcativo
como Nuevos tipos de datos y anlisis mientras que otros lo vinculan solamente a las redes
sociales.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 44
Para este trabajo consideraremos el concepto Big Data simplemente como Anlisis y Tratamiento
de grandes volmenes de datos.
Ms all de la definicin lo importante del Big Data es la tendencia de avance de las tecnologas
que abren puertas para nuevos enfoques de entendimiento y toma de decisiones, ampliando el
alcance de los sistemas de bases de datos relacionales, permitiendo almacenar y procesar grandes
cantidades de datos de todos los tipos posibles (estructurados, semi-estructurados y sin estructurar)
4.4.3 Ventajas
Teniendo en cuenta principalmente la ventaja que supone el uso de tcnicas de Big Data respecto
a los modelos relacionales se listan a continuacin las ventajas ms habituales de su uso, los cuales
no tienen que ser necesariamente aplicables en cualquier organizacin, dado que cada una funciona
en diferentes contextos. Toda la lista se ha extrado de un artculo publicado en Eureka-startups por
Vauzza [Vauzza 2013].
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 45
cliente).
Cuadro de Mandos en tiempo real, la informacin siempre est disponible sin esperas de
actualizacin de los datos (informacin en tiempo real).
Anticipacin a los problemas:
Un sistema predictivo de anlisis y cruce de datos nos permite poder anticiparnos a
posibles problemas que puede surgir en el futuro, como por ejemplo una prediccin de
riesgo de catstrofes que permitira ajustar la poltica de precios y aprovisionar fondos
para posibles pagos (utilidad para ver la veracidad de los datos ante datos imprecisos) .
Mejoras de Procesos:
Permite la simplificacin de procesos actuales y control del negocio (reduccin de
costes).
Anlisis de Seguridad. Analtica proactiva que permite la reduccin de riesgos y
prdidas frente a fraudes (reduccin de costes).
Permite detectar patrones complejos de fraude en tiempo real analizando los datos
histricos, el patrn de uso de informacin de geolocalizacin, anlisis de transacciones
y operaciones sospechosas (reduccin de costes).
Soporte a la toma de decisiones a travs de algoritmos automticos.
Una analtica sofisticada que analice todos los informes y datos, ayuda a la toma de
decisiones, reduciendo los riesgos y descubre informacin que antes podra estar oculta,
pero a la vez importante (ayuda a la toma de decisiones).
Reduccin de costos.
Reduccin de tiempos.
Desarrollo de nuevos productos.
Ofertas optimizadas y personalizadas.
Tomas de decisiones ms inteligentes que con los anteriores sistemas Business Intelligence.
Filtros inteligentes de seguridad en el negocio electrnico
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 46
4.4.4 Desventajas
Al igual que para las ventajas es importante considerar el contexto de cada organizacin en
donde se quieran aplicar tcnicas de Big Data. El principal inconveniente es el costo, generalmente
elevado, del proceso de implementacin, principalmente en hardware, software y recursos humanos.
Otra consideracin sencilla pero no menos importante es la respuesta a la pregunta Mi empresa
realmente necesita Big Data?. Si la respuesta a dicha pregunta es SI, vale la pena el esfuerzo para
llevar adelante el proceso. Pero no vale la pena hacerlo simplemente porque est de moda o si las
ventajas que me ofrece no aplican en determinada organizacin.
Existen otros inconvenientes de menor peso como el rechazo por parte del personal, gastos de
formacin, necesidad de colaboracin de todos los sectores de la empresa, cuestiones de privacidad,
informacin desactualizada, etc.
4.4.5 Aplicaciones
El espectro de aplicaciones de las tcnicas de Big Data es muy amplio y prcticamente
inabarcable en un documento, sin embargo existe un anlisis llevado a cabo por IBM en el ao
2012[Schroeck et al. 2012] que identifica 5 orientaciones principales en las que se aplica Big Data y
se describen en la siguiente tabla.
Orientacin
Porcentaje
49%
Optimizacin operativa
18%
15%
14%
4%
4.4.6 Caractersticas
Existen muchas razones por las cuales los conceptos de Big Data son revolucionarios, pero
existen tres causas principales denominadas las 3 V del Big Data: volumen, velocidad y variedad.
4.4.6.1 Volumen
Es uno de los aspectos ms destacados pero no es el nico y muchas veces se relacionan las
tcnicas de Big Data solo con este concepto. La cantidad de datos existentes en el mundo es
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 47
inmensa y ha crecido mucho en los ltimos aos, pero ms ha crecido la velocidad con la que se
generan nuevos datos.
La diversidad de fuentes de datos, el mayor intercambio de datos entre sistemas y la
proliferacin de sistemas de informacin son algunas de las causas que originan este fenmeno.
4.4.6.2 Velocidad
Este concepto est relacionado con la gran cantidad de fuentes de datos y la necesidad de utilizar
estos datos rpidamente.
Muchas fuentes de datos automatizadas y equipos generan flujos constantes de datos a procesar.
Otras fuentes como los equipos mviles generan datos a intervalos ms largos, pero la gran cantidad
de dispositivos terminan generando corrientes de datos continuas.
Por otra parte todos estos datos pierden valor aceleradamente con el paso del tiempo, por lo cual
deben convertirse lo ms rpido posible en informacin til.
4.4.6.3 Variedad
4.4.7 Herramientas
Las tecnologas tradicionales de almacenamiento, procesamiento y visualizacin de datos han
mostrado limitaciones para algunos de los tipos de aplicaciones caractersticos del BigData,
especialmente en los casos con cantidades de datos extremadamente grandes. Por ello, han
aparecido nuevas herramientas orientadas especficamente a resolver estos problemas.
Se resumen algunas de ellas en la siguiente lista:
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 48
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Apache Solr
5.1
Introduccin
Pgina 49
Apache Solr es un motor de bsqueda de cdigo abierto que proporciona una capa de abstraccin
sobre las libreras Apache Lucene. Normalmente se lo menciona como la "serverizacin" de
Lucene, aunque no se limita simplemente a esto. La mayora de las caractersticas de Solr son
distintas de las de Lucene, pero cercanas en el mbito de aplicacin. La lnea entre lo que es Solr y
lo que es Lucene a veces suele ser borrosa.
Las principales caractersticas de Solr son:
Es altamente escalable
Incluye una administracin web que permite, entre otras cosas, gestionar distintas
colecciones de datos, consultar logs, realizar consultas utilizando un formulario, ejecutar
comandos de indexacin de documentos, importar informacin, analizar el ndice,
inspeccionar el esquema, etc.
Introduce el concepto de campo tipado, lo que permite indexar campos tales como fechas.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 50
Dispone de plugins de revisin gramatical en distintos idiomas (spell check) para realizar
recomendaciones de bsqueda.
Permite el manejo de documentos ricos (word, pdf, etc) basndose en el proyecto Apache
Tika [Mattmann, Zitting 2011].
Esta escrito en Java como aplicacin web y se puede desplegar en cualquier contenedor de
servlets.
5.2
Componentes principales
Lucene: libreras de cdigo abierto para realizar bsquedas de texto sobre las que se
construye Solr.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 51
5.3
Lucene
Apache Lucene es una librera de cdigo abierto de alto rendimiento para realizar bsquedas de
texto. Fue desarrollada y publicada por Doug Cutting en 2000 y ha evolucionado desde entonces
con una gran comunidad en lnea. Para utilizar Lucene directamente, es necesario escribir cdigo
para almacenar y consultar un ndice almacenado en un soporte fsico. Las principales
caractersticas de Lucene son:
Un amplio conjunto de analizadores de texto para transformar una cadena de texto en una
serie de trminos, que son las unidades fundamentales para indexar y buscar
Una sintaxis de la consulta con un analizador y una variedad de tipos de consulta a partir de
un simple trmino de bsqueda de coincidencias parciales.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 52
Velocidad de bsqueda: Solr est muy optimizado para realizar bsquedas rpidamente,
principalmente mediante la utilizacin de caches.
5.4
Indexacin
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 53
Cargar archivos XML o JSON mediante el envo de peticiones HTTP al servidor Solr desde
cualquier entorno en el que dichas solicitudes se pueden generar. En las ltimas versiones se
pueden insertar documentos mediante HTTP desde una pantalla de administracin.
Escribir una aplicacin Java para manipular los datos a travs de la API Solr para java.
Independientemente del mtodo utilizado para la captura de informacin, hay una estructura
bsica en comn para todos los datos que se introducen en un ndice Solr: un formato de documento
que contiene mltiples campos, cada uno identificado mediante un nombre y que contiene un tipo
de dato predefinido. Uno de los campos es generalmente designado como identificador nico
(similar a una clave primaria en una base de datos), aunque su uso no es estrictamente obligatorio
en Solr.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 54
Solr le permite construir un ndice con muchos campos diferentes. Como se vio en el ejemplo de
la receta se supuso la construccin de un ndice con un solo campo: ingredientes. Es posible agregar
otros campos en el ndice para buscar las recetas como por ejemplo el tipo de cocina: oriental,
gourmet o vegana o los tiempos de preparacin. Solr puede responder a preguntas como "Qu
recetas de estilo oriental tienen naranjas como ingrediente y se pueden preparar en menos de 30
minutos?"
El esquema es el lugar donde se le indica a Solr cmo debe construir los ndices de documentos.
Este esquema define los nombres y tipos de campos que componen el ndice normalmente se
definen en el archivo de configuracin schema.xml. Para los campos definidos en este archivo se
aplicarn los pasos de anlisis asociados al mismo cuando se indexe el contenido. Los campos que
no estn definidos explcitamente en el esquema o bien se pueden ignorar o asignar mediante una
definicin de campo dinmico.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 55
especficos, como por ejemplo text_en, text_en_splitting o phonetic que permiten trabajar en
particular con el idioma ingls.
Como mencionamos anteriormente, se le puede decir a Solr que tipo de datos contendr un
campo mediante la configuracin del esquema. El tipo de dato le indica al motor cmo interpretar el
campo y la forma en que se puede consultar.
5.5
Bsquedas
Pgina 56
para el procesamiento simple de consultas, mientras que otros manejan tareas como la replicacin
del ndice.
Las aplicaciones de bsqueda deben seleccionar un controlador de consultas de forma
predeterminada y se pueden configurar para permitir a los usuarios modificar esta seleccin
predeterminada para reemplazar el controlador de consultas por uno distinto.
Para procesar una bsqueda, un controlador de consultas llama a un parser o analizador de
consultas, que interpreta los trminos y parmetros que contiene. Cada parser tiene una sintaxis
diferente. El parser de consultas por defecto se denomina DisMax. Solr incluye tambin un parser
legado estndar de Lucene y una versin extendida de DisMax (eDisMax). La sintaxis del parser
estndar de Lucene permite una mayor precisin en las bsquedas, pero DisMax cuenta con mayor
tolerancia y tratamiento de errores. El parser de consultas DisMax est diseado para proporcionar
una experiencia similar a la de los motores de bsqueda ms populares como Google, que rara vez
muestran los errores de sintaxis a los usuarios. El analizador de consultas DisMax extendido es una
versin mejorada de DisMax que incluye la sintaxis de consulta completa de Lucene mientras sigue
tolerando errores de sintaxis. Tambin incluye otras caractersticas adicionales.
DisMax es una abreviatura Disyuncin Max, siendo el modo de consulta ms popular en Solr y
es el que se utiliz en el proyecto Zonales. El analizador de consulta estndar legado de Lucene es
bastante limitado, permitiendo simplemente operadores booleanos AND y OR, slo se puede buscar
en un campo y es muy posible que surja una excepcin por un error en la sintaxis de la consulta.
Por esto fue necesario crear nuevos modos de consulta ms potentes y as surgi el analizador de
consultas DisMax. Est diseado para procesar palabras sencillas introducidas por el usuario (sin
sintaxis compleja) y para buscar dichas palabras a travs de varios campos utilizando diferente
ponderacin en funcin del significado de cada campo, y prcticamente nunca lanza una excepcin.
Disyuncin se refiere al hecho de que su bsqueda se ejecuta en varios campos, por ejemplo,
ttulo, cuerpo y palabras clave, con diferentes pesos de relevancia
Max quiere decir que si la palabra buscada coincide tanto con ms de un campo, por ejemplo el
ttulo y el cuerpo, se considera la puntuacin o scoring del campo de mayor relevancia
(probablemente el ttulo en este caso) y no la suma de los campos como al utilizar una operacin
OR. Esto permite un mayor control sobre el ranking de resultados.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 57
Adems, existen parmetros de consulta comunes que son aceptados por todos los parsers de
anlisis de la consulta.
Una consulta puede incluir:
Los parmetros de bsqueda tambin pueden especificar un filtro para la consulta. Como parte
de la respuesta, un filtro de consulta ejecuta una bsqueda en todo el ndice y almacena en cach los
resultados. Debido a que Solr asigna una cach separado para consultas con filtros, el uso
estratgico de este tipo de consultas puede mejorar notablemente el rendimiento de las bsquedas. A
pesar de sus nombres similares, los filtros de consulta no estn relacionados con filtros de anlisis.
Los filtros de consulta realizan las consultas en tiempo de bsqueda con los datos que ya estn en el
ndice, mientras que los filtros de anlisis, como Tokenizers, analizan el contenido en forma previa
a la indexacin, siguiendo las normas especificadas.
Una bsqueda puede solicitar que ciertos trminos se resalten en la respuesta, es decir, los
trminos seleccionados se mostrarn en cajas de colores de modo que "resalten" en la pantalla de
resultados. Esta funcionalidad hace que sea ms fcil encontrar palabras o frases relevantes en los
documentos largos devueltos en una bsqueda. Solr incluye un amplio conjunto de parmetros de
bsqueda para controlar cmo se resaltan los trminos.
Las respuestas tambin se pueden configurar para incluir fragmentos de documentos (extractos)
como texto relevante. Los motores de bsqueda populares como Google y Yahoo! Muestran
fragmentos de texto en los resultados de las bsqueda: 3 4 lneas de texto que ofrecen una
introduccin al resultado de una bsqueda.
Para ayudar a los usuarios a encontrar el contenido que estn buscando, Solr soporta dos formas
especiales de agrupacin de resultados para facilitar la exploracin: faceting y clustering.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 58
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 59
Esta funcin puede hacer uso de faceting o clustering para proporcionar ayuda adicional a los
usuarios.
Un componente de Solr llamado response writer (escritor de respuesta) se ocupa de la
presentacin final de los resultados de una bsqueda. Solr incluye varios escritores de respuestas,
incluyendo uno que retorna los resultados en formato XML y otro en formato JSON.
El siguiente diagrama resume algunos elementos claves en el proceso de bsqueda
5.5.1 Relevancia
La relevancia es el grado en que la respuesta a una bsqueda satisface al usuario. La pertinencia
de la respuesta a una consulta depende siempre del contexto en el que se realiza la bsqueda. Una
sola aplicacin de bsqueda puede usarse en diferentes contextos por usuarios con diferentes
necesidades y expectativas. Por ejemplo, un motor de bsqueda de datos sobre el clima podra ser
utilizado por un investigador de una universidad que estudia las tendencias del clima a largo plazo,
un agricultor interesado en el clculo de la fecha probable de la ltima helada de primavera, un
ingeniero civil interesado en los patrones de lluvia y la frecuencia de las inundaciones, y por un
estudiante universitario para planificar unas vacaciones en una regin y se pregunta qu ropa
llevar?. Debido a que las motivaciones de estos usuarios varan, la relevancia de cualquier
respuesta particular a una consulta variar tambin.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 60
Qu tan comprensibles deben ser las respuestas de una bsqueda? A igual relevancia, en
general, la respuesta a esta pregunta depende del contexto de la bsqueda. El costo de no encontrar
un documento concreto en respuesta a una consulta puede ser alto en determinados casos y muy
bajo en otros. Al configurar Solr, se debe buscar un equilibrio entre la exhaustividad de la bsqueda
y otros factores como la puntualidad y la facilidad de uso.
Los ejemplos anteriores demuestran la importancia de dos conceptos relacionados con la
relevancia:
Volviendo a los ejemplos anteriores, es importante para una aplicacin de bsquedas legales
tener un porcentaje cercano al 100% de recall retornando todos los documentos que son relevantes
para una citacin. Es mucho menos importante que una aplicacin de recetas ofrezca este grado de
precisin, sin embargo es contraproducente retornar demasiados resultados abrumando al usuario.
En algunos contextos retornar menos resultados con mayor probabilidad de relevancia suele ser el
mejor enfoque.
Utilizando los conceptos de precisin y recall es posible cuantificar la relevancia entre los
distintos usuarios de un sistema y las consultas que realizan para una determinada coleccin de
documentos. Un sistema perfecto tendra 100% de precisin y un 100% de recall para cada usuario
y cada consulta. En otras palabras, equivaldra a recuperar todos los documentos relevantes y ni uno
ms. En trminos prcticos, cuando se habla de precisin y recall en los sistemas reales, lo ms
comn es centrarse en la precisin y recortar a un cierto nmero los resultados.
Utilizando las funciones de faceting, filtros de consultas y otros componentes de bsquedas, una
aplicacin Solr se puede configurar con la flexibilidad suficiente para permitir a los usuarios afinar
sus bsquedas con el fin de devolver los resultados ms relevantes. Es decir, Solr puede ser
configurado para equilibrar la precisin y el porcentaje de recall de forma tal que satisfaga las
necesidades de una comunidad de usuarios en particular.
La configuracin de una aplicacin Solr debera tener en cuenta:
Las necesidades de los diversos usuarios de la aplicacin (que pueden considerar facilidad
de uso y velocidad de respuesta, adems de las necesidades de informacin)
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 61
Las categoras que sean significativas para estos usuarios en sus diferentes contextos (por
ejemplo, fechas, categoras de productos, o regiones)
Alguna relevancia intrnseca de los documentos (por ejemplo, podra tener sentido
garantizar que una descripcin oficial del producto o FAQ siempre se devuelva cerca de la
parte superior de los resultados de la bsqueda)
Teniendo todos estos factores en cuenta, a menudo es til en las etapas de planificacin de una
implementacin Solr esbozar los tipos de respuestas esperados frente a determinadas consultas de
ejemplo. Una vez que la aplicacin est funcionando, se pueden emplear una serie de metodologas
de prueba, tales como grupos de discusin, pruebas in-house, pruebas TREC y pruebas A / B para
ajustar la configuracin de la aplicacin de forma tal que satisfaga mejor las necesidades de sus
usuarios.
Pgina 62
Descripcin
sort
Ordena la respuesta a una consulta ya sea en forma ascendente o descendente. Por defecto
ordena en base a la puntuacin de la respuesta (scoring) y alternativamente por otro criterio
definido por el usuario.
start
rows
fq
debug
wt
cache=false
Por defecto Solr almacena en caches las consultas previamente realizadas. La utilizacin de
este parmetro permite indicarle a Solr que no recupere informacin de la cach.
Parmetro
Descripcin
q.alt
Query alternative. Permite especificar una consulta para el analizador estndar que es
utilizada en la caso de que no se especifique ningn valor en el parmetro q. Tpicamente se
utiliza el valor q.alt="*.*".
qf
Query Fields. Especifica los campos a considerar en la consulta. Se les puede asignar un
factor de boosting utilizando el carcter ^para aumentar o disminuir la importancia de cada
uno de ellos. Por ejemplo qf="campoUno^2.3 campoDos campoTres^0.4"
mm
Min should match. Al procesar las consultas Solr reconoce tres tipos de clusulas:
obligatorias, prohibidas y opcionales. Por defecto Solr las trata como opcionales (parmetro
mm=0%), es decir recupera documentos aunque alguna de estas clusulas no tenga
coincidencias (Equivalente lgico OR). Mediante este parmetro se puede modificar el
nmero mnimo de coincidencias obligatorias. Puede especificarse en formato de porcentaje.
pf
Phrase boosting. Aumenta la puntuacin de los documentos en los casos en que los trminos
buscados aparezcan en una misma frase: cercana de los trminos.
tie
Tiebraker. Se especifica un valor flotante para utilizar como criterio de desempate en las
consultas. Cuando se busca un trmino en varios campos, cada campo genera una puntuacin
diferente. Con un valor 0.0 la consulta es totalmente disjunta (disjuntion max query), es decir,
solo el campo con mayor puntuacin contribuye al valor final. Por el contrario, un valor 1.0
indica que se suma la puntuacin de todos los campos. Un valor normalmente utilizado es
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 63
0.1.
bq
Boost Query. Permite especificar una clusula de consulta adicional que se aadir a la
consulta principal del usuario e influir en el scoring de los documentos recuperados. Por
ejemplo, para aadir peso a los documentos ms recientes, puede utilizarse:
bq=date:[NOW/DAY-1YEAR TO NOW/DAY]^2.5
Pueden especificarse varios parmetros bq.
bf
Boost Funcions. Al igual que el anterior permite aadir clusulas adicionales a la consulta del
usuario para modificar el scoring, pero permite al usuario utilizar funciones. Se puede utilizar
cualquier funcin soportada en forma nativa por Solr, incluso en forma anidada. Por ejemplo:
recip(rord(myfield),1,2,3)^1.5.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 64
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
6.1
Introduccin
Pgina 65
6.2
Zonales
6.2.2 Objetivos
Generar un medio que brinde el espacio para que sus usuarios se apropien de l.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 66
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 67
Envo de notas y noticias por parte de los usuarios. Para esto se cre una seccin
denominada La voz del vecino
Para cumplir con estos objetivos se diseo una arquitectura inicial reflejada en el siguiente
grfico:
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 68
Joomla! como componente CMS que permitiera gestionar los contenidos del portal y
adems ser extendido mediante su framework de desarrollo de componentes.
Una base de datos Mysql para el CMS y los contenidos generados y extrados.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 69
Como cierre de esta primer etapa se puso en lnea una versin inicial del sitio y los resultados del
ecualizador de inters fueron publicados en Intercom2010 en Puno, Per [Barry, Pez, Cortez
2010]. Este trabajo demostr la gran potencialidad del esquema de indexacin, bsqueda y
ordenamiento de informacin mediante el uso de las herramientas Solr-Lucene.
En la siguiente Imagen podemos observar la gramtica EBNF definida dentro del proyecto,
denominada zGram:
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 70
extraer para la localidad 'Puerto Madryn' mediante la fuente facebook a partir del usuario
'LU17.com' y 'Madryn TV' y de amigos del usuario 'Cultura Puerto Madryn' incluye
comentarios de los usuarios: 'Demin Barry', 'Juan Manuel Cortez'.
extraer para la localidad 'Argentina' mediante la fuente twitter asignando los tags
'poltica','actualidad' a partir del usuario '@CFKArgentina' y del usuario '@mauriciomacri' y
del usuario '@ricalfonsin' incluye comentarios y filtrando por con al menos 50 actions.
extraer para la localidad 'Crdoba' mediante la fuente twitter asignando los tags
'Deporte','futbol' a partir de las palabras crdoba, deporte, futbol, talleres y filtrando al
menos 75% de las palabras deben estar y con al menos 25 actions incluye los tags de la
fuente.
extraer
para
la
localidad
'rosario'
mediante
la
fuente
rss
ubicada
en
Pgina 71
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 72
Adicionalmente para los grandes medios nacionales se adaptaron extractores ya que sus
definiciones de RSS no accedan ni a los comentarios ni a las referencias (links) externas ni a las
imgenes.
A partir de poder extraer imgenes de las noticias y comentarios se mejor la herramienta
permitiendo realizar un tratamiento comn a todo el material multimedia asociado a una
publicacin realizando una gestin uniforme tanto para Facebook, Twitter y las pginas sindicadas.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 73
6.2.8 Arquitectura
La siguiente imagen resumen la arquitectura del proyecto finalizada la segunda etapa
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 74
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 75
6.3
El alcance del entorno de pruebas para el presente trabajo de tesina est limitado al ndice Solr
construido durante el proyecto Zonales.
6.3.1 Diseo
Al decidir la utilizacin de la herramienta Apache Solr para el indexado y la bsqueda de
informacin se tomaron dos decisiones de arquitectura claves que afectaban al resto de los
componentes de la solucin:
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 76
En ambas etapas la unidad de informacin o documento para Zonales era el post. Un post es un
artculo re-publicado en Zonales, proveniente de una red social como Facebook o Twitter, de un
medio digital o de cualquier otra fuente que se indexaba y clasificaba para luego mostrarlo
zonificado y ecualizado segn los intereses del usuario en la web. En la segunda etapa se
comenz a considerar los comentarios de los usuarios sobre las publicaciones extradas
(crawleadas) y tambin se indexaron como posts vinculados con otro post preexistente en el ndice.
6.3.1.1 Etapa 1 - Indexacin de posts
En la primer etapa del proyecto el concepto central que guiaba el diseo la arquitectura de la
plataforma y el desarrollo de sus componentes era el del Ecualizador de Inters[Barry, Pez,
Cortez 2010].
La informacin poda ser generada de dos maneras:
Por los mismos lectores del portal a travs de secciones como La voz del vecino
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 77
La indexacin total permiti reconstruir el ndice cada vez que que el esquema era modificado
por algn motivo durante el desarrollo de la plataforma. Cuando un contenido era cargado a travs
del portal, este era indexado en Solr en forma incremental.
En la primer versin diseada del esquema Solr para Zonales, dentro de una noticia, podemos
destacar los campos (fields):
title: los ndices sobre este field tenan un peso superior en el caso de las bsquedas de
trminos.
tagsnames y tagsvalues: esta tupla de valores tenan un peso superlativo respecto del
ecualizador de inters. La tupla inclua la zonificacin de la noticia.
Para mayor informacin se puede ver la definicin de campos del esquema en el Anexo 1:
Definicin de campos del esquema Solr en la etapa 1.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 78
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 79
Tanto la zona como la configuracin de intereses se guardaba en un modelo de datos para los
usuarios registrados, almacenndolos en una base de datos de la plataforma, y para el caso de los
visitantes annimos se mantenan sus selecciones utilizando cookies en el navegador.
La estrategia de recuperacin de la informacin depende de cuatro factores:
Los pesos indicados en las bandas de intereses que el usuario ha configurado (manifestado)
El dato temporal del post. En la mayora de los casos una noticia pierde inters con el paso
del tiempo desde su publicacin. Estrategia utilizada fundamentalmente para el
ordenamiento de la informacin
Es esta primer etapa se puso mayor nfasis en los intereses del usuario a travs del etiquetado de
la informacin y a los trminos buscados. En menor medida se consider la Zona, ya que la misma
era considerara en las bsquedas como un trmino (keyword) ms.
Para la recuperacin de la informacin se realiz una configuracin denominada zonalesContent
haciendo uso del analizador de consultas DisMax (el que viene por defecto en Solr). Podemos
destacar algunas configuraciones y parametrizaciones realizadas sobre el analizador de consultas
DisMax para la recuperacin de la informacin.
Se especific un valor bajo para el parmetro tie (0,01) dndole mayor importancia a los
campos con ms peso.
Se configur un valor de 0% para el parmetro mm, con lo cual todas las clusulas son
opcionales.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 80
Para utilizar el analizador de consultas extendido zonalesContent desde los servicios que
consultan el ndice Solr a travs de querys sobre el protocolo HTTP, es necesario agregar en las
consultas el parmetro qt=zonalesContent.
Para informacin sobre la funcionalidad de cada parmetro mencionado ver Modalidad y sintaxis
de las consultas Solr.
Para mayor detalle de la configuracin ver Anexo 2: Extensin analizador de consultas DisMax
en solrconfig.xml en la etapa 1.
6.3.1.3 Etapa 2 Indexacin de posts
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 81
Autor (fromUser)
Destinatarios, en la caso que los tuviera. Comn en las redes sociales. (toUsers)
Ttulo (title)
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 82
Zona (zone).
Para ver las estructura completas se puede consultar el Anexo 3: Formatos estandarizados de
noticias (posts).
El diseo del esquema para la construccin del ndice Solr surgi en forma directa de estas
estructuras de datos. Salvando algn trabajo de aplanamiento de datos y de configuracin de las
herramientas de lematizacin, tokenizers, etc. la estructura se mantuvo intacta. El esquema
resultante puede consultarse en Anexo 4: Definicin de campos del esquema Solr en la etapa 2.
6.3.1.4 Etapa 2 - Proceso de extraccin
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 83
CMUtils: portal web que permite generar y compilar la gramtica a travs de una interfaz
web, testear la extraccin y establecer la periodicidad de ejecucin de la misma en el
scheduler, entre otras utilidades adicionales.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 84
ZParser: servlet Java que recibe la gramtica en formato de cadena de texto, la compila y
retorna el resultado de la compilacin.
Tipo de fuente: los lectores del portal pueden seleccionar el tipo de fuente de la cual
recuperar las noticias. En principio se dividi la recuperacin en dos conceptos: En la red
para englobar las noticias de las redes sociales Facebook y Twitter, y Noticias para la
informacin recuperada desde medios digitales a travs de RSS.
Temporalidad de la noticia: considerando que para el comn de los los lectores las noticias
pierden relevancia con el paso del tiempo este es un aspecto de peso en la recuperacin de la
informacin.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 85
Debajo del selector alfanumrico de zona se ubica un segundo selector que permite elegir la
fuente de informacin de las noticias.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 86
Una vez construidos los selectores para el portal, el primer desafo que se present fue la
construccin de la consulta Solr a partir de los valores seleccionados por el usuario.
Lo primero que advertimos fue la prdida de todos estos valores cuando el usuario recargaba la
pgina o la abandona y luego retornaba. Para evitarlo se dise un estructura para almacenar
informacin de contexto denominada ZCtx que permita gestionar estos valores y se diseo una
arquitectura que contemplaba la sincronizacin bidireccional de datos entre los clientes y el
servidor.
La estructura ZCtx contena la siguiente informacin:
start: relacionado con la paginacin, permita indicar a partir de que noticia se deseaba
continuar recuperando resultas (Ver mas...) utilizando los parmetros start y rows de Solr
(ms informacin en Modalidad y sintaxis de las consultas Solr).
En cuanto a la sincronizacin bidireccional, la misma se lograba mediante la utilizacin de websockets, en particular socket.io y el almacenamiento de datos en el navegador utilizando cookies.
Un requerimiento HTTP estndar realiza una peticin desde el cliente al servidor y espera la
respuesta. Una vez que obtiene la respuesta, el canal de comunicacin se cierra y es reabierto en
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 87
caso de un nuevo requerimiento. Por el contrario, los web-sockets permiten mantener el canal de
comunicacin constantemente abierto entre los clientes y el servidor para el intercambio de datos,
facilitando al desarrollador el diseo de mecanismos de identificacin de clientes activos para luego
poder enviar mensajes broadcast mediante tcnicas de server-push[Bozdag et al., 2007].
Para la sincronizacin del contexto Zonales se desarroll una librera cliente y un servicio.
Ambos utilizan la herramienta socket.io [http://socket.io/] para la comunicacin sobre web-sockets.
Cuando el contexto cambia por alguna accin del usuario en el navegador se emite un aviso al
servidor para su actualizacin. Cuando el contexto cambiaba en el servidor, por ejemplo por la
llegada de nuevas noticias para una zona determinada, se actualizaban los contextos del lado cliente
para todos los usuarios conectados con dicha zona seleccionada a travs de mensajes broadcast.
Finalmente se resolvi la forma en la que se construye la consulta Solr. Desde los primeros
diseos la premisa siempre fue lograr, partiendo del contexto descripto anteriormente, una nica
consulta que recupere un conjunto de noticias para un cliente y se las enve en un nico mensaje
sobre el web-socket. Para ello debamos disear una consulta que contemplara todos los aspectos
mencionados dentro de sus parmetros, obteniendo toda la informacin necesaria para construirla a
partir del contexto ZCtx.
Como parte del desafo de equilibrar la zona y la temporalidad de la noticia una primer solucin
fue simplemente filtrar la recuperacin de noticias por zona a travs del campo campo zoneName y
ordenar los resultados por fecha o relevancia como se mencion anteriormente.
Analizando los resultados obtenidos y considerando los escenarios de pruebas planteados se
pudieron observar dos inconvenientes en esta solucin:
Un usuario de, por ejemplo, Rosario muy probablemente le interesen adems las noticias de
Santa Fe.
A partir de estos problemas surgi la ampliacin del concepto semntico de zona a travs del
campo zoneExtendedString, plasmando las jerarquas existentes en la realidad barrio, localidad,
provincia, pas en una cadena de texto, permitiendo adems considerar en las consultas conceptos
de cercana a travs de estas jerarquas.
Dentro de la jerarqua de zonas se considera como padres a las zonas que incluyen un conjunto
de hijos que tambin son zonas. Siguiendo con el ejemplo anterior, la localidad de Rosario es
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 88
hija de la provincia de Santa Fe mientras que Argentina como pas es padre de la provincia de
Mendoza.
La recuperacin por tipo de fuentes fue la ms sencilla de lograr dado a que se limita a filtrar la
informacin a travs del campo source. Debido a que solamente consideramos dos posibilidades,
cuando el usuario selecciona En la red el sistema recupera las noticias cuyo valor para el campo
mencionado es Facebook o Twitter y cuando selecciona Noticias simplemente filtra por el caso
contrario, es decir, noticias que no son ni de Facebook ni de Twitter.
A continuacin se muestran a modo de ejemplo parte de las consultas Solr que contemplan este
filtro:
En la red: ...&q=docType:post+AND+source:(facebook+OR+twitter)&bf=o...
Noticias: ...&q=docType:post+AND+!source:(facebook+OR+twitter)&bf=o
...
Ordenar la noticia por relevancia o por los ms recientes tambin se logr en forma rpida
modificando un parmetro de orden de la consulta, utilizando el campo relevance o modified (fecha
y hora de ltima modificacin del post) respectivamente.
...&sort=relevance+desc&...
...&sort=modified+desc&...
6.3.2 Pruebas
La bsqueda de la consulta Solr que permitiera recuperar la informacin teniendo en cuenta los
aspectos de temporalidad y zona se realiz a travs de mtodos de prueba sucesivas, refinando las
consultas en cada iteracin, analizando en cada uno de ellas los resultados obtenidos en
comparacin con los esperados y volviendo a ajustar los parmetros.
Se utilizaron para tal fin boosting querys (bq) y boosting functions (bf), parmetros que
permitieron especificar un factor que aumentara o impulsara la importancia de determinados
campos, valores o combinacin de ambos en la consulta.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 89
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 90
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 91
Cada uno de estos sub-conjuntos se compone con noticias de distinto valor temporal:
Puede examinarse el conjunto de datos completo en Anexo 5: Set de datos de pruebas D1.
Para definir los criterios de bsqueda se abarcaron distintos niveles de jerarqua geogrfica,
considerando como Nivel 1 a la zona de mayor escala, es decir Argentina. Se utilizaron los
siguientes criterios:
C2 - Recuperar las noticias del barrio Centro, Puerto Madryn, Chubut, Argentina Nivel 4
El segundo conjunto de datos D2 contena cinco noticias adicionales, que tienen por objeto
principalmente simular la dinmica de ingreso de nueva informacin. Es decir, la extraccin de
noticias en Zonales se realiza en forma constante de acuerdo a la programacin del scheduler.
Los datos adicionales agregados son:
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 92
Puede examinarse el conjunto de datos completo en Anexo 6: Set de datos de pruebas D2.
La combinacin de ambos conjuntos de datos con los criterios definidos dieron origen a un total
de ocho escenarios reflejados en la siguiente tabla:
Escenario
Conjunto de Datos
Criterio
Boosting
Resul. Esperados
E1
D1
C1
RE1
E2
D1
C2
RE2
E3
D1
C3
RE3
E4
D1
C4
RE4
E5
D2
C1
RE5
E6
D2
C2
RE6
E7
D2
C3
RE7
E8
D2
C4
RE8
Tabla 6: Escenarios
Para finalizar se resume en la siguiente tabla los resultados esperados para cada uno de los
escenarios.
Escenario
E1
RE1
Se espera recuperar en primer lugar las noticias en el rango de 48 hs. para Puerto
Madryn, luego las del barrio Centro de Puerto Madryn, Chubut, Trelew y
finalmente las de Argentina y las de localidades de otras provincias.
A continuacin las noticias del rango 48hs. a 1 semana y 1 semana a 1 mes, ambos
en el mismo orden de zona descripto anteriormente.
E2
RE2
Se espera recuperar en primer lugar las noticias en el rango de 48 hs. para barrio
Centro de Puerto Madryn, luego las de Puerto Madryn, Chubut, Trelew y
finalmente las de Argentina y las de localidades de otras provincias.
A continuacin las noticias del rango 48hs. a 1 semana y 1 semana a 1 mes, ambos
en el mismo orden de zona descripto anteriormente.
E3
RE3
Se espera recuperar en primer lugar las noticias en el rango de 48 hs. para Trelew,
luego las de Chubut, Puerto Madryn, barrio Centro de Puerto Madryn y finalmente
las de Argentina y las de localidades de otras provincias.
A continuacin las noticias del rango 48hs. a 1 semana y 1 semana a 1 mes, ambos
en el mismo orden de zona descripto anteriormente.
E4
RE4
Se espera recuperar en primer lugar las noticias en el rango de 48 hs. para Chubut,
luego las de Puerto Madryn y Trelew, las del barrio centro de Puerto Madryn, y
finalmente las de Argentina y las de localidades de otras provincias.
A continuacin las noticias del rango 48hs. a 1 semana y 1 semana a 1 mes, ambos
en el mismo orden de zona descripto anteriormente.
E5
RE5
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 93
las de otras localidades de la provincia y la de Formosa al final del rango.
La noticia insertada para Puerto Madryn de ms de 48 horas debe aparecer al
principio del rango correspondiente.
E6
RE6
E7
RE7
E8
RE8
Pueden analizarse en detalle el orden esperado de las noticias en las tablas de resultados
esperados en el Anexo 7: Resultados Esperados para los distintos escenarios de prueba.
6.3.2.2 Sistematizacin de las pruebas
Las pruebas se realizaron ejecutando las consultas en forma directa sobre la herramienta Solr a
travs de request HTTP sobre su API pblica y solicitando los resultados en formato XML.
La seccin
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 94
Se estructuraron los resultados esperados respetando este formato y en cada ciclo de prueba y
refinamiento se automatiz la comparacin de resultados utilizando herramientas de testing
mediante asertos.
6.3.3 Resultados
Luego de reiteradas modificaciones y adaptaciones sobre las funciones de boosting para lograr
obtener los resultados esperados en cada escenario se logr una funcin estable, probada mediante
la regeneracin de los datos y la repeticin de las consultas. Una vez estabilizada la funcin
objetivo se repitieron las consultas veinte veces, logrando obtener siempre los mismos resultados
para cada escenario.
La efectividad lograda en funcin de los resultados obtenidos versus resultados esperados es
cercana un 90%, aunque la misma aumenta hasta un valor cercano al 100% si se consideran solo la
primer franja temporal, es decir las noticias dentro de las 48 horas.
Para la obtencin de la funcin de boosting se cre un servicio javascript que, en funcin del
contexto, construye la URL Solr.
En particular la porcin de la URL relacionada con las pruebas y las funciones de boosting se
construy utilizando la funcin getSolrBoosting(zCtx) que se explica a continuacin.
Todas las dimensiones definidas fueron divididas en escala en funcin de la cantidad de niveles
jerrquicos de la zona geogrfica. Es decir, Nivel 1: Argentina, Nivel 2: Provincias, Nivel 3:
localidades, Nivel 4: barrios, y as sucesivamente. El campo selZone del contexto que contiene la
zona en formato extendido permite calcular este nivel.
Para el peso de las zonas en las consultas se utiliz boosting querys (bq) construidas alternando
los campos zonePartialExtendedString y zoneExtendedString con el siguiente criterio de boosting:
..
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 95
Esta distribucin de peso permite dar mayor importancia a las zonas ms cercanas a las del nivel
buscado en una relacin 10n.
Las franjas temporales cobran una relevancia mayor que la zona en relacin directa al nivel. Por
ejemplo, en una bsqueda de zona nivel 4 el peso de la franja temporal debe ser mucho mayor que
para un bsqueda de una zona nivel 2.
Para el peso de las franjas temporales tambin se utiliz boosting querys (bq) construidas en base
a campo modified de la noticia y la cantidad de niveles utilizando el siguiente criterio:
modified:[NOW-48HOURS TO *]^10#nivel*4.
modified:[NOW-7DAYS TO NOW-48HOURS]^10#nivel*(4-5).
modified:[NOW-30DAYS TO NOW-7DAYS]^10#nivel*(4-10).
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 96
g:"Argentina"^1000+modified:[NOW-48HOURS+TO+*]^1000000000000+modified:[NOW7DAYS+TO+NOW-48HOURS]^10000000+modified:[NOW-30DAYS+TO+NOW-7DAYS]^100
Chubut, Argentina
/solr/select?indent=on&version=2.2&start=0&fl=*
%2Cscore&rows=40&qt=zonalesContent&sort=&wt=xml&explainOther=&hl.fl=&q=docType:p
ost&bf=ord(modified)^10000&bq=+zoneExtendedString:"Chubut,
+Argentina"^1000000+zonePartialExtendedString:"Chubut,
+Argentina"^100000+zoneExtendedString:"Argentina"^10000+zonePartialExtendedStrin
g:"Argentina"^1000+modified:[NOW-48HOURS+TO+*]^100000000+modified:[NOW7DAYS+TO+NOW-48HOURS]^1000+modified:[NOW-30DAYS+TO+NOW-7DAYS]^0.01
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 97
No se hicieron pruebas de estrs sobre este conjunto de datos pues las pruebas de escalabilidad
se realizaron en el trabajo ya mencionado Distributed Search on Large NoSQL Databases[Tinetti,
Barry, Aita, Pez, PDPTA2011].
6.4
Infraestructura
Para la ejecucin de las pruebas se replic un ambiente como el utilizado durante el desarrollo
del proyecto Zonales, limitando la instalacin de componentes de software a los necesarios para
implementar la herramienta Apache Solr y el ndice creado en la segunda etapa.
Se cre una mquina virtual destinada exclusivamente a la ejecucin de las pruebas con las
siguientes caractersticas:
Hardware
Equipo anfitrin
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
RAM Memory 16Gb. DDR3
2 x HD 1Tb. 7200RPM SATA3
Proxmox Virtual Environment v. 3.1-3
Virtual Host
Common KVM processor 1 Core
RAM Memory 512MB/2.00GB
Virtual Disk 60Gb qcow format (qemu)
Software
Sistema operativo Linux kernel 2.6.32-358
Distribucin CentOS release 6.4 (Final) 64 bits
Servidor de aplicaciones Apache Tomcat 6.0.41
Apache Solr 1.4.1
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 98
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 99
Conclusiones
Es importante destacar el aporte positivo que significo para mi la participacin en un proyecto de
extensin, en donde junto con mis compaeros trabajamos en un entorno real de desarrollo, en el
cual un cliente exiga funcionalidades y resultados, un lder de proyecto o scrum master nos gui y
apuntal nuestras falencias y formar parte del equipo de trabajo, donde los roles van cambiando,
exigi tolerancia y adaptacin a los cambios.
En particular se utilizaron metodologas de desarrollo giles. Al principio del proyecto se utiliz
eXtreme Programming (XP) y avanzada la primer etapa se migr hacia SCRUM [Kniberg 2007]
[Rising, Janoff 2000]. Se logr estabilizar esta metodologa de desarrollo e incluso mantener un
mismo nivel de regularidad y productividad entre etapas del proyecto, a pesar de que dos de los
cuatro integrantes del equipo cambiaron.
Una constante durante el proyecto fue tambin el uso de tecnologas de punta como Apache Solr,
Node.js, Apache Nutch, Web-Sockets, ZK Framework, MongoDB entre otras. Muchas de ellas son
de uso muy difundido hoy en da, lo que demuestra que las elecciones tecnolgicas que se tomaron
fueron acertadas.
Junto con Juan Manuel Cortez, uno de los miembros del equipo Zonales, decidimos formar Sur
Software, spin-off universitario, formando una empresa de base tecnolgica pensada para brindar
soluciones informticas en el rea del software, manteniendo y fortaleciendo la metodologa de
desarrollo adoptada en Zonales y profundizando nuestros conocimientos en las herramientas
mencionadas.
En el mbito acadmico el proyecto Zonales impuls la formacin del grupo de investigacin en
tecnologas NoSQL dentro de la universidad, la redaccin del proyecto Tcnicas de recuperacin
de informacin en grandes volmenes de datos heterogneos con bases de datos NoSQL y la
presentacin de los papers citados en varias oportunidades en el presente trabajo [Tinetti, Barry,
Aita, Pez, PDPTA2011; Barry, Pez, Cortez 2010; Barry, Aita, Cortez 2014].
Haciendo foco en la temtica de este trabajo de tesina es grato destacar el desafo cumplido de
haber recibido por parte del cliente un exigencia concreta para el ordenamiento de las noticias y
haber podido mostrar que era posible hacerlo con las herramientas seleccionadas dentro de la
arquitectura de solucin que pensamos.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 100
Las funciones y consultas de boosting utilizadas en el presente trabajo son solo una pequea
parte de un gran conjunto de herramientas que ofrece Apache Solr para la recuperacin ordenada de
informacin. El campo de Big Data es tan amplio que incluso muchos expertos consideran a esta
poca como la era del Big Data y en este contexto dominar una herramienta como Solr que
permita indexar, clasificar y recuperar en forma ordenada gran cantidad de informacin valiosa es
un punto fuerte en mi carrera profesional.
Concretamente el proyecto Zonales signific, en lo personal, el comienzo de mi carrera como
desarrollador de software y profesional de sistemas. En forma previa solo contaba con lo aprendido
durante el curso de mis estudios y las prcticas realizadas en el marco de cada materia. Fue el
puntapi inicial que me permiti tomar la decisin de dedicarme de lleno a mi profesin y aceptar el
desafo permanente de actualizacin formativa que ello implica.
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 101
Lineas futuras
Las nuevas versiones de Apache Solr ofrecen la posibilidad de indexar datos geogrficos
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 102
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 103
Referencias
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 104
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
10
Pgina 105
Anexos
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 106
<uniqueKey>id</uniqueKey>
<defaultSearchField>title</defaultSearchField>
<solrQueryParser defaultOperator="OR" />
<copyField source="introtext" dest="introtext_f" />
<copyField source="fulltext" dest="fulltext_f" />
<copyField source="title" dest="title_f"/>
<!-- <copyField source="title" dest="title_s"/> -->
<copyField source="category" dest="category_s"/>
<copyField source="metakey" dest="metakey_ws"/>
<!-- El valor de state = 0 indica un contenido publicado. Se utiliza published para facilitar
los querys -->
<copyField source="state" dest="published" />
<!--<copyField source="published" dest="state"/>-->
</schema>
name="hl">true</str>
comma separated list of fields that will be highlighted -->
name="hl.fl">introtext fulltext title</str>
name="hl.usePhraseHighlighter">true</str>
name="hl.highlightMultiTerm">true</str>
<!-<str
<!-<str
<str
<str
<str
<str
<str
<str
name="f.intro_content.hl.fragsize">350</str>
name="f.full_content.hl.fragsize">350</str>
name="f.intro_content.hl.alternateField">introtext</str>
name="f.full_content.hl.alternateField">fulltext</str>
name="f.intro_content.hl.maxAlternateFieldLength">350</str>
name="f.full_content.hl.maxAlternateFieldLength">350</str>
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 107
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 108
</post>
<post>Post</post>
<post>Post</post>
...
<post>Post</post>
</posts>
"post": {
"source": Fuente,
"id": Post Id,
"docType": Tipo de documento (post, clasificado, etc.),
"postLatitude": Latitud del post,
"postLongitude": Longitud del post,
"from": {
"name": Nombre autor,
"category": Categora autor,
"id": Id Autor,
"url": Link al perfil del autor,
"place": {
"id": Id,
"name": Nombre del place,
"type": Tipo de place
}
},
"to": [
{
"name": Nombre destinatario,
"category": Categora destinatario,
"id": Id detinatario,
"url": Link al perfil del destinatario
}
],
"title": Ttulo,
"text": Contenido,
"links": [
"link": {
"type": link/Picture/Video/Photo/etc.,
"url": Link
}
]
"actions": [
"action": {
"type": comment/like/retweet/share/favorite/etc.,
"cant": Cantidad
}
],
"created": Fecha creacin,
"modified": Fecha ltima modificacin,
"relevance": Relevancia,
"relevanceDelta": Delta de relevancia definido por usuarios,
"zone" : {
"id": Id de la zona,
"name": Nombre de la zona,
"type": Tipo de la zona
},
"tags" : [
"tag" : Tag
]
}
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 109
type="pint"
indexed="true"
stored="true"/>
stored="true"
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 110
</fields>
<copyField source="zoneExtendedString" dest="zonePartialExtendedString"/>
<!-- Field to use to determine and enforce document uniqueness.
Unless this field is marked with required="false", it will be a required field
-->
<uniqueKey>id</uniqueKey>
Pgina 111
verbatim
Noticia otra provincia 3 das - Mendoza, Argentina - facebook - R30
Noticia otra provincia 5 das - Mendoza, Argentina - twitter - R40
Noticia otra provincia 20 das - Mendoza, Argentina - feed6.com - R10
Noticia pais de hoy - Argentina - facebook - R30
Noticia pais de ayer - Argentina - twitter - R10
Noticia pais 3 das - Argentina - feed2.com - R20
Noticia pais 5 das - Argentina - facebook - R0
Noticia pais 20 das - Argentina - twitter - R40
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 112
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 113
10.7.2 RE2
verbatim
Noticia barrio de hoy - Centro, Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia barrio de ayer - Centro, Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia localidad de hoy - Puerto Madryn, Chubut, Argentina - feed2.com - R30
Noticia localidad de ayer - Puerto Madryn, Chubut, Argentina - facebook - R10
Noticia provincia de hoy - Chubut, Argentina - twitter - R20
Noticia provincia de ayer - Chubut, Argentina - feed4.com - R40
Noticia otra localidad de la provincia de hoy - Trelew, Chubut, Argentina - facebook - R30
Noticia otra localidad de la provincia de ayer - Trelew, Chubut, Argentina - twitter - R0
Noticia pais de hoy - Argentina - facebook - R30
Noticia pais de ayer - Argentina - twitter - R10
Noticia localidad de otra provincia de hoy - Rosario, Santa Fe, Argentina - feed7.com - R10
Noticia localidad de otra provincia de ayer - Rosario, Santa Fe, Argentina - facebook - R30
Noticia otra provincia de hoy - Mendoza, Argentina - twitter - R0
Noticia otra provincia de ayer - Mendoza, Argentina - feed2.com - R20
Noticia barrio 3 das - Centro, Puerto Madryn, Chubut, Argentina - feed1.com - R20
Noticia barrio 5 das - Centro, Puerto Madryn, Chubut, Argentina - facebook - R30
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R0
Noticia localidad 5 das - Puerto Madryn, Chubut, Argentina - feed3.com - R40
Noticia provincia 3 das - Chubut, Argentina - facebook - R10
Noticia provincia 5 das - Chubut, Argentina - twitter - R0
Noticia otra localidad de la provincia 3 das - Trelew, Chubut, Argentina - feed6.com - R40
Noticia otra localidad de la provincia 5 das - Trelew, Chubut, Argentina - facebook - R20
Noticia pais 3 das - Argentina - feed2.com - R20
Noticia pais 5 das - Argentina - facebook - R0
Noticia localidad de otra provincia 3 das - Rosario, Santa Fe, Argentina - twitter - R40
Noticia localidad de otra provincia 5 das - Rosario, Santa Fe, Argentina - feed1.com - R0
Noticia otra provincia 3 das - Mendoza, Argentina - facebook - R30
Noticia otra provincia 5 das - Mendoza, Argentina - twitter - R40
Noticia barrio 20 das - Centro, Puerto Madryn, Chubut, Argentina - twitter - R40
Noticia localidad 20 das - Puerto Madryn, Chubut, Argentina - facebook - R20
Noticia provincia 20 das - Chubut, Argentina - feed5.com - R30
Noticia otra localidad de la provincia 20 das - Trelew, Chubut, Argentina - twitter - R10
Noticia pais 20 das - Argentina - twitter - R40
Noticia localidad de otra provincia 20 das - Rosario, Santa Fe, Argentina - facebook - R20
Noticia otra provincia 20 das - Mendoza, Argentina - feed6.com - R10
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 114
10.7.3 RE3
verbatim
Noticia otra localidad de la provincia de hoy - Trelew, Chubut, Argentina - facebook - R30
Noticia otra localidad de la provincia de ayer - Trelew, Chubut, Argentina - twitter - R0
Noticia provincia de hoy - Chubut, Argentina - twitter - R20
Noticia provincia de ayer - Chubut, Argentina - feed4.com - R40
Noticia localidad de hoy - Puerto Madryn, Chubut, Argentina - feed2.com - R30
Noticia localidad de ayer - Puerto Madryn, Chubut, Argentina - facebook - R10
Noticia barrio de hoy - Centro, Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia barrio de ayer - Centro, Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia pais de hoy - Argentina - facebook - R30
Noticia pais de ayer - Argentina - twitter - R10
Noticia localidad de otra provincia de hoy - Rosario, Santa Fe, Argentina - feed7.com - R10
Noticia localidad de otra provincia de ayer - Rosario, Santa Fe, Argentina - facebook - R30
Noticia otra provincia de hoy - Mendoza, Argentina - twitter - R0
Noticia otra provincia de ayer - Mendoza, Argentina - feed2.com - R20
Noticia otra localidad de la provincia 3 das - Trelew, Chubut, Argentina - feed6.com - R40
Noticia otra localidad de la provincia 5 das - Trelew, Chubut, Argentina - facebook - R20
Noticia provincia 3 das - Chubut, Argentina - facebook - R10
Noticia provincia 5 das - Chubut, Argentina - twitter - R0
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R0
Noticia localidad 5 das - Puerto Madryn, Chubut, Argentina - feed3.com - R40
Noticia barrio 3 das - Centro, Puerto Madryn, Chubut, Argentina - feed1.com - R20
Noticia barrio 5 das - Centro, Puerto Madryn, Chubut, Argentina - facebook - R30
Noticia pais 3 das - Argentina - feed2.com - R20
Noticia pais 5 das - Argentina - facebook - R0
Noticia localidad de otra provincia 3 das - Rosario, Santa Fe, Argentina - twitter - R40
Noticia localidad de otra provincia 5 das - Rosario, Santa Fe, Argentina - feed1.com - R0
Noticia otra provincia 3 das - Mendoza, Argentina - facebook - R30
Noticia otra provincia 5 das - Mendoza, Argentina - twitter - R40
Noticia otra localidad de la provincia 20 das - Trelew, Chubut, Argentina - twitter - R10
Noticia provincia 20 das - Chubut, Argentina - feed5.com - R30
Noticia localidad 20 das - Puerto Madryn, Chubut, Argentina - facebook - R20
Noticia barrio 20 das - Centro, Puerto Madryn, Chubut, Argentina - twitter - R40
Noticia pais 20 das - Argentina - twitter - R40
Noticia localidad de otra provincia 20 das - Rosario, Santa Fe, Argentina - facebook - R20
Noticia otra provincia 20 das - Mendoza, Argentina - feed6.com - R10
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 115
10.7.4 RE4
verbatim
Noticia provincia de hoy - Chubut, Argentina - twitter - R20
Noticia provincia de ayer - Chubut, Argentina - feed4.com - R40
Noticia localidad de hoy - Puerto Madryn, Chubut, Argentina - feed2.com - R30
Noticia otra localidad de la provincia de hoy - Trelew, Chubut, Argentina - facebook - R30
Noticia localidad de ayer - Puerto Madryn, Chubut, Argentina - facebook - R10
Noticia otra localidad de la provincia de ayer - Trelew, Chubut, Argentina - twitter - R0
Noticia barrio de hoy - Centro, Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia barrio de ayer - Centro, Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia pais de hoy - Argentina - facebook - R30
Noticia pais de ayer - Argentina - twitter - R10
Noticia localidad de otra provincia de hoy - Rosario, Santa Fe, Argentina - feed7.com - R10
Noticia localidad de otra provincia de ayer - Rosario, Santa Fe, Argentina - facebook - R30
Noticia otra provincia de hoy - Mendoza, Argentina - twitter - R0
Noticia otra provincia de ayer - Mendoza, Argentina - feed2.com - R20
Noticia provincia 3 das - Chubut, Argentina - facebook - R10
Noticia provincia 5 das - Chubut, Argentina - twitter - R0
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R0
Noticia otra localidad de la provincia 3 das - Trelew, Chubut, Argentina - feed6.com - R40
Noticia localidad 5 das - Puerto Madryn, Chubut, Argentina - feed3.com - R40
Noticia otra localidad de la provincia 5 das - Trelew, Chubut, Argentina - facebook - R20
Noticia barrio 3 das - Centro, Puerto Madryn, Chubut, Argentina - feed1.com - R20
Noticia barrio 5 das - Centro, Puerto Madryn, Chubut, Argentina - facebook - R30
Noticia pais 3 das - Argentina - feed2.com - R20
Noticia pais 5 das - Argentina - facebook - R0
Noticia localidad de otra provincia 3 das - Rosario, Santa Fe, Argentina - twitter - R40
Noticia localidad de otra provincia 5 das - Rosario, Santa Fe, Argentina - feed1.com - R0
Noticia otra provincia 3 das - Mendoza, Argentina - facebook - R30
Noticia otra provincia 5 das - Mendoza, Argentina - twitter - R40
Noticia provincia 20 das - Chubut, Argentina - feed5.com - R30
Noticia localidad 20 das - Puerto Madryn, Chubut, Argentina - facebook - R20
Noticia otra localidad de la provincia 20 das - Trelew, Chubut, Argentina - twitter - R10
Noticia barrio 20 das - Centro, Puerto Madryn, Chubut, Argentina - twitter - R40
Noticia pais 20 das - Argentina - twitter - R40
Noticia localidad de otra provincia 20 das - Rosario, Santa Fe, Argentina - facebook - R20
Noticia otra provincia 20 das - Mendoza, Argentina - feed6.com - R10
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 116
10.7.5 RE5
verbatim
Noticia localidad ms reciente - Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia localidad de hoy - Puerto Madryn, Chubut, Argentina - feed2.com - R30
Noticia localidad de ayer - Puerto Madryn, Chubut, Argentina - facebook - R10
Noticia barrio de hoy - Centro, Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia barrio de ayer - Centro, Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia provincia de hoy - Chubut, Argentina - twitter - R20
Noticia provincia de ayer - Chubut, Argentina - feed4.com - R40
Noticia otra localidad de la provincia de hoy - Trelew, Chubut, Argentina - facebook - R30
Noticia otra localidad de la provincia de ayer - Trelew, Chubut, Argentina - twitter - R0
Noticia otra localidad de la provincia ms reciente - Comodoro Rivadavia, Chubut, Argentina - facebook - R30
Noticia barrio de otra localidad de la provincia ms reciente - Sarmiento, Trelew, Chubut, Argentina - feed1.com - R20
Noticia pais de hoy - Argentina - facebook - R30
Noticia pais de ayer - Argentina - twitter - R10
Noticia localidad de otra provincia de hoy - Rosario, Santa Fe, Argentina - feed7.com - R10
Noticia localidad de otra provincia de ayer - Rosario, Santa Fe, Argentina - facebook - R30
Noticia localidad de otra provincia ms reciente - Formosa, Formosa, Argentina - twitter - R40
Noticia otra provincia de hoy - Mendoza, Argentina - twitter - R0
Noticia otra provincia de ayer - Mendoza, Argentina - feed2.com - R20
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R0
Noticia localidad 5 das - Puerto Madryn, Chubut, Argentina - feed3.com - R40
Noticia barrio 3 das - Centro, Puerto Madryn, Chubut, Argentina - feed1.com - R20
Noticia barrio 5 das - Centro, Puerto Madryn, Chubut, Argentina - facebook - R30
Noticia provincia 3 das - Chubut, Argentina - facebook - R10
Noticia provincia 5 das - Chubut, Argentina - twitter - R0
Noticia otra localidad de la provincia 3 das - Trelew, Chubut, Argentina - feed6.com - R40
Noticia otra localidad de la provincia 5 das - Trelew, Chubut, Argentina - facebook - R20
Noticia pais 3 das - Argentina - feed2.com - R20
Noticia pais 5 das - Argentina - facebook - R0
Noticia localidad de otra provincia 3 das - Rosario, Santa Fe, Argentina - twitter - R40
Noticia localidad de otra provincia 5 das - Rosario, Santa Fe, Argentina - feed1.com - R0
Noticia otra provincia 3 das - Mendoza, Argentina - facebook - R30
Noticia otra provincia 5 das - Mendoza, Argentina - twitter - R40
Noticia localidad 20 das - Puerto Madryn, Chubut, Argentina - facebook - R20
Noticia barrio 20 das - Centro, Puerto Madryn, Chubut, Argentina - twitter - R40
Noticia provincia 20 das - Chubut, Argentina - feed5.com - R30
Noticia otra localidad de la provincia 20 das - Trelew, Chubut, Argentina - twitter - R10
Noticia pais 20 das - Argentina - twitter - R40
Noticia localidad de otra provincia 20 das - Rosario, Santa Fe, Argentina - facebook - R20
Noticia otra provincia 20 das - Mendoza, Argentina - feed6.com - R10
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 117
10.7.6 RE6
verbatim
Noticia barrio de hoy - Centro, Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia barrio de ayer - Centro, Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia localidad ms reciente - Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia localidad de hoy - Puerto Madryn, Chubut, Argentina - feed2.com - R30
Noticia localidad de ayer - Puerto Madryn, Chubut, Argentina - facebook - R10
Noticia provincia de hoy - Chubut, Argentina - twitter - R20
Noticia provincia de ayer - Chubut, Argentina - feed4.com - R40
Noticia otra localidad de la provincia ms reciente - Comodoro Rivadavia, Chubut, Argentina - facebook - R30
Noticia otra localidad de la provincia de hoy - Trelew, Chubut, Argentina - facebook - R30
Noticia otra localidad de la provincia de ayer - Trelew, Chubut, Argentina - twitter - R0
Noticia barrio de otra localidad de la provincia ms reciente - Sarmiento, Trelew, Chubut, Argentina - feed1.com - R20
Noticia pais de hoy - Argentina - facebook - R30
Noticia pais de ayer - Argentina - twitter - R10
Noticia localidad de otra provincia ms reciente - Formosa, Formosa, Argentina - twitter - R40
Noticia localidad de otra provincia de hoy - Rosario, Santa Fe, Argentina - feed7.com - R10
Noticia localidad de otra provincia de ayer - Rosario, Santa Fe, Argentina - facebook - R30
Noticia otra provincia de hoy - Mendoza, Argentina - twitter - R0
Noticia otra provincia de ayer - Mendoza, Argentina - feed2.com - R20
Noticia barrio 3 das - Centro, Puerto Madryn, Chubut, Argentina - feed1.com - R20
Noticia barrio 5 das - Centro, Puerto Madryn, Chubut, Argentina - facebook - R30
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R0
Noticia localidad 5 das - Puerto Madryn, Chubut, Argentina - feed3.com - R40
Noticia provincia 3 das - Chubut, Argentina - facebook - R10
Noticia provincia 5 das - Chubut, Argentina - twitter - R0
Noticia otra localidad de la provincia 3 das - Trelew, Chubut, Argentina - feed6.com - R40
Noticia otra localidad de la provincia 5 das - Trelew, Chubut, Argentina - facebook - R20
Noticia pais 3 das - Argentina - feed2.com - R20
Noticia pais 5 das - Argentina - facebook - R0
Noticia localidad de otra provincia 3 das - Rosario, Santa Fe, Argentina - twitter - R40
Noticia localidad de otra provincia 5 das - Rosario, Santa Fe, Argentina - feed1.com - R0
Noticia otra provincia 3 das - Mendoza, Argentina - facebook - R30
Noticia otra provincia 5 das - Mendoza, Argentina - twitter - R40
Noticia barrio 20 das - Centro, Puerto Madryn, Chubut, Argentina - twitter - R40
Noticia localidad 20 das - Puerto Madryn, Chubut, Argentina - facebook - R20
Noticia provincia 20 das - Chubut, Argentina - feed5.com - R30
Noticia otra localidad de la provincia 20 das - Trelew, Chubut, Argentina - twitter - R10
Noticia pais 20 das - Argentina - twitter - R40
Noticia localidad de otra provincia 20 das - Rosario, Santa Fe, Argentina - facebook - R20
Noticia otra provincia 20 das - Mendoza, Argentina - feed6.com - R10
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 118
10.7.7 RE7
verbatim
Noticia otra localidad de la provincia de hoy - Trelew, Chubut, Argentina - facebook - R30
Noticia otra localidad de la provincia de ayer - Trelew, Chubut, Argentina - twitter - R0
Noticia barrio de otra localidad de la provincia ms reciente - Sarmiento, Trelew, Chubut, Argentina - feed1.com - R20
Noticia provincia de hoy - Chubut, Argentina - twitter - R20
Noticia provincia de ayer - Chubut, Argentina - feed4.com - R40
Noticia localidad ms reciente - Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia otra localidad de la provincia ms reciente - Comodoro Rivadavia, Chubut, Argentina - facebook - R30
Noticia localidad de hoy - Puerto Madryn, Chubut, Argentina - feed2.com - R30
Noticia localidad de ayer - Puerto Madryn, Chubut, Argentina - facebook - R10
Noticia barrio de hoy - Centro, Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia barrio de ayer - Centro, Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia pais de hoy - Argentina - facebook - R30
Noticia pais de ayer - Argentina - twitter - R10
Noticia localidad de otra provincia ms reciente - Formosa, Formosa, Argentina - twitter - R40
Noticia localidad de otra provincia de hoy - Rosario, Santa Fe, Argentina - feed7.com - R10
Noticia localidad de otra provincia de ayer - Rosario, Santa Fe, Argentina - facebook - R30
Noticia otra provincia de hoy - Mendoza, Argentina - twitter - R0
Noticia otra provincia de ayer - Mendoza, Argentina - feed2.com - R20
Noticia otra localidad de la provincia 3 das - Trelew, Chubut, Argentina - feed6.com - R40
Noticia otra localidad de la provincia 5 das - Trelew, Chubut, Argentina - facebook - R20
Noticia provincia 3 das - Chubut, Argentina - facebook - R10
Noticia provincia 5 das - Chubut, Argentina - twitter - R0
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R0
Noticia localidad 5 das - Puerto Madryn, Chubut, Argentina - feed3.com - R40
Noticia barrio 3 das - Centro, Puerto Madryn, Chubut, Argentina - feed1.com - R20
Noticia barrio 5 das - Centro, Puerto Madryn, Chubut, Argentina - facebook - R30
Noticia pais 3 das - Argentina - feed2.com - R20
Noticia pais 5 das - Argentina - facebook - R0
Noticia localidad de otra provincia 3 das - Rosario, Santa Fe, Argentina - twitter - R40
Noticia localidad de otra provincia 5 das - Rosario, Santa Fe, Argentina - feed1.com - R0
Noticia otra provincia 3 das - Mendoza, Argentina - facebook - R30
Noticia otra provincia 5 das - Mendoza, Argentina - twitter - R40
Noticia otra localidad de la provincia 20 das - Trelew, Chubut, Argentina - twitter - R10
Noticia provincia 20 das - Chubut, Argentina - feed5.com - R30
Noticia localidad 20 das - Puerto Madryn, Chubut, Argentina - facebook - R20
Noticia barrio 20 das - Centro, Puerto Madryn, Chubut, Argentina - twitter - R40
Noticia pais 20 das - Argentina - twitter - R40
Noticia localidad de otra provincia 20 das - Rosario, Santa Fe, Argentina - facebook - R20
Noticia otra provincia 20 das - Mendoza, Argentina - feed6.com - R10
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr
Pgina 119
10.7.8 RE8
verbatim
Noticia provincia de hoy - Chubut, Argentina - twitter - R20
Noticia provincia de ayer - Chubut, Argentina - feed4.com - R40
Noticia localidad ms reciente - Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia localidad de hoy - Puerto Madryn, Chubut, Argentina - feed2.com - R30
Noticia otra localidad de la provincia de hoy - Trelew, Chubut, Argentina - facebook - R30
Noticia otra localidad de la provincia ms reciente - Comodoro Rivadavia, Chubut, Argentina - facebook - R30
Noticia barrio de otra localidad de la provincia ms reciente - Sarmiento, Trelew, Chubut, Argentina - feed1.com - R20
Noticia localidad de ayer - Puerto Madryn, Chubut, Argentina - facebook - R10
Noticia otra localidad de la provincia de ayer - Trelew, Chubut, Argentina - twitter - R0
Noticia barrio de hoy - Centro, Puerto Madryn, Chubut, Argentina - facebook - R0
Noticia barrio de ayer - Centro, Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia pais de hoy - Argentina - facebook - R30
Noticia pais de ayer - Argentina - twitter - R10
Noticia localidad de otra provincia ms reciente - Formosa, Formosa, Argentina - twitter - R40
Noticia localidad de otra provincia de hoy - Rosario, Santa Fe, Argentina - feed7.com - R10
Noticia localidad de otra provincia de ayer - Rosario, Santa Fe, Argentina - facebook - R30
Noticia otra provincia de hoy - Mendoza, Argentina - twitter - R0
Noticia otra provincia de ayer - Mendoza, Argentina - feed2.com - R20
Noticia provincia 3 das - Chubut, Argentina - facebook - R10
Noticia provincia 5 das - Chubut, Argentina - twitter - R0
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R10
Noticia localidad 3 das - Puerto Madryn, Chubut, Argentina - twitter - R0
Noticia otra localidad de la provincia 3 das - Trelew, Chubut, Argentina - feed6.com - R40
Noticia localidad 5 das - Puerto Madryn, Chubut, Argentina - feed3.com - R40
Noticia otra localidad de la provincia 5 das - Trelew, Chubut, Argentina - facebook - R20
Noticia barrio 3 das - Centro, Puerto Madryn, Chubut, Argentina - feed1.com - R20
Noticia barrio 5 das - Centro, Puerto Madryn, Chubut, Argentina - facebook - R30
Noticia pais 3 das - Argentina - feed2.com - R20
Noticia pais 5 das - Argentina - facebook - R0
Noticia localidad de otra provincia 3 das - Rosario, Santa Fe, Argentina - twitter - R40
Noticia localidad de otra provincia 5 das - Rosario, Santa Fe, Argentina - feed1.com - R0
Noticia otra provincia 3 das - Mendoza, Argentina - facebook - R30
Noticia otra provincia 5 das - Mendoza, Argentina - twitter - R40
Noticia provincia 20 das - Chubut, Argentina - feed5.com - R30
Noticia localidad 20 das - Puerto Madryn, Chubut, Argentina - facebook - R20
Noticia otra localidad de la provincia 20 das - Trelew, Chubut, Argentina - twitter - R10
Noticia barrio 20 das - Centro, Puerto Madryn, Chubut, Argentina - twitter - R40
Noticia pais 20 das - Argentina - twitter - R40
Noticia localidad de otra provincia 20 das - Rosario, Santa Fe, Argentina - facebook - R20
Noticia otra provincia 20 das - Mendoza, Argentina - feed6.com - R10
Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin de
informacin de Apache Solr