Este documento describe Apache Solr, un motor de búsqueda de código abierto que puede indexar y buscar documentos basándose en características especificadas. Solr permite búsquedas de texto completo, resaltado de términos, búsquedas por facetas y correcciones ortográficas. Se utiliza comúnmente para sistemas con grandes volúmenes de datos donde la búsqueda por múltiples parámetros es importante. Solr es independiente del lenguaje de programación, la aplicación o la plataforma y puede
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Mejorando la búsqueda Web con Apache Solr
1. 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
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 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.
4. ¿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.
5. ¿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.
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 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.
12. 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.
13. 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)
14. 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.
15. 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.
16. 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
17. 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).