Mejorando la
búsqueda en la
web con Apache
Solr
Iván G. Campaña N.
CTO y Co-Fundador de DOMO Soluciones Web & T.I.
@icampana
Búsqueda de información
● ¿Qué pasaría si la web funcionara como una
inmensa biblioteca con millones de libros?
● No importa qué tan bien organizada,
categorizada y estructurada esté la
información
● El volumen hace que sea imposible
encontrar algo específico en poco tiempo.
La semántica le gana a la estructura
● La búsqueda de
información resulta más
práctica al enfocarse en
el contenido
● La “metadata” o
descripción es muy
“dura”
● Google le ganó a
Altavista por enfocarse
en el significado.
¿Cuando aplicar un sistema de búsqueda?
● Cualquier sistema de información web que
maneje un alto volumen de documentos.
● Cuando encontrar la información en base a
múltiples parámetros sea una prioridad.
● Donde sea necesario mejorar la experiencia
del usuario en cuanto a navegación y tiempo
de respuesta.
¿Qué es Apache Solr?
● Un motor de búsqueda de código abierto
con capacidad empresarial que puede
indexar y buscar documentos en base a las
características que indiquemos.
● Es independiente del lenguaje de
programación, del tipo de aplicación y la
plataforma.
¿Quiénes usan Solr?
Características de
Apache Solr
Búsqueda de texto completo
Permite buscar
por palabras
completas,
fragmentos,
frases, campos,
fechas, autor,
clasificación de
cualquier tipo.
Resaltado de texto
Permite marcar
los términos de
búsqueda
utilizados en la
consulta
Búsqueda por “facetas”
● Permite reducir o
fragmentar el espacio de
búsqueda.
● Mejora la experiencia del
usuario.
● Indexa campos de los
diferentes contenidos
● Fragmenta la información
Características de Apache Solr
● Soporta grandes volúmenes de información.
○ Una instalación simple puede manejar Terabytes de
información y responder en menos de 200
milisegundos.
● Se basa en estándares abiertos.
● Se puede tener 1 servidor de búsquedas
para múltiples aplicaciones.
Características de Apache Solr...
● Hace correcciones ortográficas sobre la
búsqueda
○ Ej: buscar arvol y recomendar la búsqueda de
contenidos que digan árbol.
● Permite indexación asíncrona
○ La indexación es independiente de la aplicación
principal.
● Soporta diferentes características por cada tipo
de campo indexado.
Características de Apache Solr...
● Es independiente de la infraestructura
(puede funcionar con cualquier lenguaje de
programación y base de datos).
● Puede procesar documentos de Word y
PDFs
● Permite búsqueda geoespacial (si los
documentos tienen coordenadas
geográficas)
Características de Apache Solr...
● Permite replicar la información y distribuir el
índice de búsqueda entre múltiples
servidores.
● Soporta caché para las búsquedas.
● Reduce/Elimina la carga de la BD y del
servidor web.
BD Relacional vs Solr
● La información se almacena en una BD transaccional
(donde la lectura/escritura es costosa).
● Funciona con índices específicos y normalmente no
soporta búsquedas contextuales o de similitudes.
● La indexación y búsqueda consumen recursos que
deberían utilizarse para transaccionalidad.
● La BD relacional necesita muchos más recursos para
responder a la demanda de un sitio con alta carga.
Requisitos básicos
- Java version 1.6 o superior (1.8
recomendado)
- Servidor capaz de ejecutar servlets:
- Ej: Glassfish, JBoss, Jetty, Tomcat, WebSphere, etc.
- La última versión disponible de Apache Solr
Integración con aplicaciones Web
● Tanto indexación como recuperación se hace a través
de peticiones http con REST
● Es necesario definir las características de la
información que se va a almacenar (Tipos de datos).
● El formateo de los resultados se hace en la aplicación
cliente.
● Si se usa facetas los parámetros de consulta deben ir
incluídos en la solicitud.
● Hay algunos frameworks que ya soportan su uso por
defecto o con plugins (ej: Drupal, Typo3, Wordpress).
Ejemplo de arquitectura final
Puede convertirse
en un cluster
Enlaces
Página oficial:
http://lucene.apache.org/solr/
Tutorial de uso de Apache Solr:
http://www.solrtutorial.com/

Mejorando la búsqueda Web con Apache Solr

  • 1.
    Mejorando la búsqueda enla web con Apache Solr Iván G. Campaña N. CTO y Co-Fundador de DOMO Soluciones Web & T.I. @icampana
  • 2.
    Búsqueda de información ●¿Qué pasaría si la web funcionara como una inmensa biblioteca con millones de libros? ● No importa qué tan bien organizada, categorizada y estructurada esté la información ● El volumen hace que sea imposible encontrar algo específico en poco tiempo.
  • 3.
    La semántica legana a la estructura ● La búsqueda de información resulta más práctica al enfocarse en el contenido ● La “metadata” o descripción es muy “dura” ● Google le ganó a Altavista por enfocarse en el significado.
  • 4.
    ¿Cuando aplicar unsistema de búsqueda? ● Cualquier sistema de información web que maneje un alto volumen de documentos. ● Cuando encontrar la información en base a múltiples parámetros sea una prioridad. ● Donde sea necesario mejorar la experiencia del usuario en cuanto a navegación y tiempo de respuesta.
  • 5.
    ¿Qué es ApacheSolr? ● Un motor de búsqueda de código abierto con capacidad empresarial que puede indexar y buscar documentos en base a las características que indiquemos. ● Es independiente del lenguaje de programación, del tipo de aplicación y la plataforma.
  • 6.
  • 7.
  • 8.
    Búsqueda de textocompleto Permite buscar por palabras completas, fragmentos, frases, campos, fechas, autor, clasificación de cualquier tipo.
  • 9.
    Resaltado de texto Permitemarcar los términos de búsqueda utilizados en la consulta
  • 10.
    Búsqueda por “facetas” ●Permite reducir o fragmentar el espacio de búsqueda. ● Mejora la experiencia del usuario. ● Indexa campos de los diferentes contenidos ● Fragmenta la información
  • 11.
    Características de ApacheSolr ● Soporta grandes volúmenes de información. ○ Una instalación simple puede manejar Terabytes de información y responder en menos de 200 milisegundos. ● Se basa en estándares abiertos. ● Se puede tener 1 servidor de búsquedas para múltiples aplicaciones.
  • 12.
    Características de ApacheSolr... ● Hace correcciones ortográficas sobre la búsqueda ○ Ej: buscar arvol y recomendar la búsqueda de contenidos que digan árbol. ● Permite indexación asíncrona ○ La indexación es independiente de la aplicación principal. ● Soporta diferentes características por cada tipo de campo indexado.
  • 13.
    Características de ApacheSolr... ● Es independiente de la infraestructura (puede funcionar con cualquier lenguaje de programación y base de datos). ● Puede procesar documentos de Word y PDFs ● Permite búsqueda geoespacial (si los documentos tienen coordenadas geográficas)
  • 14.
    Características de ApacheSolr... ● Permite replicar la información y distribuir el índice de búsqueda entre múltiples servidores. ● Soporta caché para las búsquedas. ● Reduce/Elimina la carga de la BD y del servidor web.
  • 15.
    BD Relacional vsSolr ● La información se almacena en una BD transaccional (donde la lectura/escritura es costosa). ● Funciona con índices específicos y normalmente no soporta búsquedas contextuales o de similitudes. ● La indexación y búsqueda consumen recursos que deberían utilizarse para transaccionalidad. ● La BD relacional necesita muchos más recursos para responder a la demanda de un sitio con alta carga.
  • 16.
    Requisitos básicos - Javaversion 1.6 o superior (1.8 recomendado) - Servidor capaz de ejecutar servlets: - Ej: Glassfish, JBoss, Jetty, Tomcat, WebSphere, etc. - La última versión disponible de Apache Solr
  • 17.
    Integración con aplicacionesWeb ● Tanto indexación como recuperación se hace a través de peticiones http con REST ● Es necesario definir las características de la información que se va a almacenar (Tipos de datos). ● El formateo de los resultados se hace en la aplicación cliente. ● Si se usa facetas los parámetros de consulta deben ir incluídos en la solicitud. ● Hay algunos frameworks que ya soportan su uso por defecto o con plugins (ej: Drupal, Typo3, Wordpress).
  • 18.
    Ejemplo de arquitecturafinal Puede convertirse en un cluster
  • 19.
    Enlaces Página oficial: http://lucene.apache.org/solr/ Tutorial deuso de Apache Solr: http://www.solrtutorial.com/