SlideShare une entreprise Scribd logo
1  sur  40
Drupal 8 más rápido que
nunca con Apache Solr
Karim Boudjema Schombourg
Drupal Camp Costa Rica 2017

+ 17 años trabajando con
periódicos

Desarrollando periódicos en
línea con Drupal 5.x, 6.x,
7.x, 8.x

Miembro activo de Drupal
Bolivia y Drupal Belgium

+ 10 años con Drupal

Gerente de proyectos en
Smartica en Bolivia
@karimboudjema
http://www.smarticaweb.com
Karim Boudjema (KarimB)
Algunos trabajos con Drupal ...
UCB
http://www.lostiempos.com https://www.neweurope.eu/
http://enciclomedico.org/ http://www.laprensa.com.bo
http://www.elfec.com/ http://postgrado.ucbcba.edu.bo/
Algunos trabajos con Drupal ...
En Drupal 7: http://www.lostiempos.com En Drupal 8: http://www.laprensa.com.bo
Objetivo
 Conceptos básicos de Apache Solr
 Ya se puede utilizar Solr con Drupal8
Indice
 La comunidad Drupal
 El problema
 Introducción a Apache Solr / Lucene
 Instalar Search API Solr : Like a Boss
 Configurar Drupal y Apache Solr
 Facetas
 Tips
– Stop Words
La comunidad Drupal
Drupal Camp Bolivia 2013
 Miles de cabezas son más
potentes que una
 Muchas de la funcionalidades que
buscamos ya existen! NO
reinventes la rueda!
 Hay desarrolladores Drupal que
son genios! Aprovecha de su
experiencia!
 Sin la comunidad la curva de
aprendizaje es .... casi imposible
La comunidad Drupal
Mis mentores
Jeff Geerling
@geerlingguy
Joaquín Bravo
@jackbravo
Los Problemas
Los Problemas
Sitios Drupal
Performance
2 problemas que muchos sitios enfrentan: Performance + Experiencia de búsqueda
Experiencia de
Búsqueda
 SQL no ha sido diseñado para para
búsquedas full-text, por eso es
lento.
 Drupal no es rápido para usuarios
autenticados.
El problema
¿La Solución?
Performance
Experiencia de
Búsqueda
+

Muy rápido para buscar en cientos de miles de
documentos

Relevancia en búsquedas

Sorting / Boosting

Multiples index

Integración con Views

Navegación por Facetas

Autocomplete y Spell Checker (rápido)

More like this

Respeta derechos de usuarios

Búsquedas “geospaciales “
La Solución: Search Api Solr
Experiencia de
Búsqueda
+
Experiencia en búsqueda
Facetas RelevanciaFacetas
Lo más
buscado
Keyword
Ordenar
lostiempos.com
 Lo que necesitamos hoy en búsqueda
Herramientas de búsqueda
FacetasFacetas
Ordenar
clasificados.lostiempos.com
 Búsquedas super rápidas
 Solr no utiliza la DB de Drupal
– Es por eso que lo vamos a utilizarlo
tambíen como backend para las
vistas (views), lo que va a mejorar
considerablemente la velocidad del
sitio.
La Solución: Search Api Solr
Performance
+
¿Qué es Solr?
 Aplicación web Java
 Expone por HTTP (Rest Like) la librería de
búsqueda full-text Lucene
 Solr = Serverlization de Lucene
 Pero aporta unos extras sobre Lucene
 Creado en 2005 por Yonik Seeley de Cnet
 Contribuido a la Apache Fundation en Ene
2006
 Versión 6.6.0
 Permite también indexar documentos PDF,
MS Office, MP3, Imagenes ... (Apache Tika)
¿Qué es Apache Solr?
¿Quien utiliza Apache Solr?
El índice invertido
bye bye select like “%blue sky%”
¿Porqué Solr es rápido para búsquedas?
Proceso de indexación en Solr
¿Qué es Apache Solr?
Maria DB Apache
SOLR
DRUPAL
SQL
POST
en el
Index Búsqueda a través
de Get requests
Gracias a Solr, tenemos un segundo backend mucho más rápido para búsquedas y para
nuestras vistas
Apache Solr como backend de Views
PHP 7NGNIX
Browser
Cache CDN Reverse
proxy
OpCode
Cache
PHP (*)
Cache
engine
Query
Cache
MariaDB
SQL
Queries
Boost
HTTP
GET/POST
(*) En PHP7 el opCode cache viene por defecto
http://jpauli.github.io/2015/03/05/opcache.html
Apache
Solr
memcache
Porqué utilizar Solr con Drupal?

Performance
– Para búsquedas
– En general para vistas

Mejor experiencia de búsqueda
– Facetas
– Relevancia
– Boosting
– Spell checker
En resumen

Instalar Apache Solr

Instalar Drupal

Descargar los módulos

Search Api (search_api)

Facets (facets)

Solr Search (search_api_solr)
– Solr Search Defaults (search_api_solr_defaults)

Configurar Drupal y Solr
Antes de empezar...
Instalar Solr: Llamar al Dev Ops

Drupal VM

Módulo: Solr Search Defaults
Otra opción: Like a Boss
Jeff Geerling

Descargar Drupal VM:
https://www.drupalvm.com/

Cambiar en config.yml
Like a Boss: Drupal VM
Lanzar la VM vagrant up
Like a Boss: Drupal VM
Like a Boss: Drupal VM
Habilitar los módulos Search API y Solr Search
-> drupal moi search_api_solr
Deshabilitar el módulo (del core) Search
Like a Boss: Configurar Drupal y Solr
Habilitar el módulo Solr Search Defaults
¿Qué hace este módulo?
1. Copia la configuración
/modules/contrib/search_api_solr/solr-conf a /var/solr/data/d8/conf
2. Configura el Server Solr y el Index Solr
3. Configura algunos campos a indexar
Like a Boss: Configurar Drupal y Solr
Módulos:
Search Api (search_api)
Framework genérico para búsquedas
Facets (facets)
Interface genéricas de búsqueda por facetas
Solr Search (search_api_solr)
Implementación de Search Api que utiliza Apache Solr como
servidor para indexar y buscar contenidos
Solr Search Defaults (search_api_solr_defaults)
Módulo que configura Solr Search
Solarium
Solr client library for PHP
Apache Solr y Drupal

Añadir campos y filtros que necesitamos al Index

Configurar los processors

Crear la vista

Crear las facetas
Drupal y Solr: Configurar la búsqueda
DEMO TIME !!
DEMO TIME !!
Objetivo de la Demo
1. Indexar Contenidos
2. Hacer la Vista “Búsqueda”
3. Hacer las facetas

Editar el archivo stopwords.txt y añadir la lista de
palabras a no indexar

/var/solr/data/-collectionUsed-/conf/stopwords.txt

Editar el schema.xml

/var/solr/data/-collectionUsed-/conf/schema.xml

y añadir format="snowball"
Tips: Drupal y Solr - Stop Words
¿Preguntas?
Drupal 8 más rápido que nunca con Apache Solr

Contenu connexe

Similaire à Drupal 8 más rápido que nunca con Apache Solr

Proyectos escalables con Drupal
Proyectos escalables con DrupalProyectos escalables con Drupal
Proyectos escalables con DrupalPablo Cerda
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on railsJoski Jk
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on RailsJoski Jk
 
Presentando drupal en xalapa
Presentando drupal en xalapaPresentando drupal en xalapa
Presentando drupal en xalapaMedio y forma
 
Drupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en DrupalDrupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en DrupalRojomorgan
 
Drupal in a day - SeeD
Drupal in a day - SeeDDrupal in a day - SeeD
Drupal in a day - SeeDseedcolombia
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebFacundo E. Goñi Perez
 
Cómo configurar el seo de tu drupal
Cómo configurar el seo de tu drupal  Cómo configurar el seo de tu drupal
Cómo configurar el seo de tu drupal Hiberus Tecnologia
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Marco Antonio Ordoñez Valverde
 
SAMP (OpenSolaris + Apache + MySQL + PHP / Python / Perl / Drupal / Django)
SAMP (OpenSolaris + Apache + MySQL + PHP / Python / Perl / Drupal / Django)SAMP (OpenSolaris + Apache + MySQL + PHP / Python / Perl / Drupal / Django)
SAMP (OpenSolaris + Apache + MySQL + PHP / Python / Perl / Drupal / Django)juandanielp
 
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...Rojomorgan
 
Frameworks para Php Adwa
Frameworks para Php AdwaFrameworks para Php Adwa
Frameworks para Php AdwaAndres Karp
 

Similaire à Drupal 8 más rápido que nunca con Apache Solr (20)

Proyectos escalables con Drupal
Proyectos escalables con DrupalProyectos escalables con Drupal
Proyectos escalables con Drupal
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Presentando drupal en xalapa
Presentando drupal en xalapaPresentando drupal en xalapa
Presentando drupal en xalapa
 
Drupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en DrupalDrupal Sevilla octubre SEO en Drupal
Drupal Sevilla octubre SEO en Drupal
 
Laravel 5.1
Laravel 5.1Laravel 5.1
Laravel 5.1
 
Drupal in a day - SeeD
Drupal in a day - SeeDDrupal in a day - SeeD
Drupal in a day - SeeD
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Cómo configurar el seo de tu drupal
Cómo configurar el seo de tu drupal  Cómo configurar el seo de tu drupal
Cómo configurar el seo de tu drupal
 
Curso Mu
Curso MuCurso Mu
Curso Mu
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
 
CMS - Joomla
CMS - JoomlaCMS - Joomla
CMS - Joomla
 
SAMP (OpenSolaris + Apache + MySQL + PHP / Python / Perl / Drupal / Django)
SAMP (OpenSolaris + Apache + MySQL + PHP / Python / Perl / Drupal / Django)SAMP (OpenSolaris + Apache + MySQL + PHP / Python / Perl / Drupal / Django)
SAMP (OpenSolaris + Apache + MySQL + PHP / Python / Perl / Drupal / Django)
 
Presentando drupal
Presentando drupalPresentando drupal
Presentando drupal
 
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
Drupal Summer Barcelona 2016: Buenas prácticas SEO en Drupal 8 sin morir en e...
 
Curso joomla-3
Curso joomla-3Curso joomla-3
Curso joomla-3
 
Frameworks para Php Adwa
Frameworks para Php AdwaFrameworks para Php Adwa
Frameworks para Php Adwa
 
TEMA 1 NAVEGADORES
TEMA 1 NAVEGADORESTEMA 1 NAVEGADORES
TEMA 1 NAVEGADORES
 
Tema 3 unidades 1 y 2
Tema 3 unidades 1 y 2Tema 3 unidades 1 y 2
Tema 3 unidades 1 y 2
 
Programación de Componentes para Joomla (Gabriel Cuesta)
Programación de Componentes para Joomla (Gabriel Cuesta)Programación de Componentes para Joomla (Gabriel Cuesta)
Programación de Componentes para Joomla (Gabriel Cuesta)
 

Drupal 8 más rápido que nunca con Apache Solr

  • 1. Drupal 8 más rápido que nunca con Apache Solr Karim Boudjema Schombourg Drupal Camp Costa Rica 2017
  • 2.  + 17 años trabajando con periódicos  Desarrollando periódicos en línea con Drupal 5.x, 6.x, 7.x, 8.x  Miembro activo de Drupal Bolivia y Drupal Belgium  + 10 años con Drupal  Gerente de proyectos en Smartica en Bolivia @karimboudjema http://www.smarticaweb.com Karim Boudjema (KarimB)
  • 3. Algunos trabajos con Drupal ... UCB http://www.lostiempos.com https://www.neweurope.eu/ http://enciclomedico.org/ http://www.laprensa.com.bo http://www.elfec.com/ http://postgrado.ucbcba.edu.bo/
  • 4. Algunos trabajos con Drupal ... En Drupal 7: http://www.lostiempos.com En Drupal 8: http://www.laprensa.com.bo
  • 5. Objetivo  Conceptos básicos de Apache Solr  Ya se puede utilizar Solr con Drupal8
  • 6. Indice  La comunidad Drupal  El problema  Introducción a Apache Solr / Lucene  Instalar Search API Solr : Like a Boss  Configurar Drupal y Apache Solr  Facetas  Tips – Stop Words
  • 7. La comunidad Drupal Drupal Camp Bolivia 2013
  • 8.  Miles de cabezas son más potentes que una  Muchas de la funcionalidades que buscamos ya existen! NO reinventes la rueda!  Hay desarrolladores Drupal que son genios! Aprovecha de su experiencia!  Sin la comunidad la curva de aprendizaje es .... casi imposible La comunidad Drupal
  • 11. Los Problemas Sitios Drupal Performance 2 problemas que muchos sitios enfrentan: Performance + Experiencia de búsqueda Experiencia de Búsqueda
  • 12.  SQL no ha sido diseñado para para búsquedas full-text, por eso es lento.  Drupal no es rápido para usuarios autenticados. El problema
  • 14.  Muy rápido para buscar en cientos de miles de documentos  Relevancia en búsquedas  Sorting / Boosting  Multiples index  Integración con Views  Navegación por Facetas  Autocomplete y Spell Checker (rápido)  More like this  Respeta derechos de usuarios  Búsquedas “geospaciales “ La Solución: Search Api Solr Experiencia de Búsqueda +
  • 15. Experiencia en búsqueda Facetas RelevanciaFacetas Lo más buscado Keyword Ordenar lostiempos.com
  • 16.  Lo que necesitamos hoy en búsqueda Herramientas de búsqueda FacetasFacetas Ordenar clasificados.lostiempos.com
  • 17.  Búsquedas super rápidas  Solr no utiliza la DB de Drupal – Es por eso que lo vamos a utilizarlo tambíen como backend para las vistas (views), lo que va a mejorar considerablemente la velocidad del sitio. La Solución: Search Api Solr Performance +
  • 19.  Aplicación web Java  Expone por HTTP (Rest Like) la librería de búsqueda full-text Lucene  Solr = Serverlization de Lucene  Pero aporta unos extras sobre Lucene  Creado en 2005 por Yonik Seeley de Cnet  Contribuido a la Apache Fundation en Ene 2006  Versión 6.6.0  Permite también indexar documentos PDF, MS Office, MP3, Imagenes ... (Apache Tika) ¿Qué es Apache Solr?
  • 21. El índice invertido bye bye select like “%blue sky%” ¿Porqué Solr es rápido para búsquedas?
  • 23. ¿Qué es Apache Solr? Maria DB Apache SOLR DRUPAL SQL POST en el Index Búsqueda a través de Get requests Gracias a Solr, tenemos un segundo backend mucho más rápido para búsquedas y para nuestras vistas
  • 24. Apache Solr como backend de Views PHP 7NGNIX Browser Cache CDN Reverse proxy OpCode Cache PHP (*) Cache engine Query Cache MariaDB SQL Queries Boost HTTP GET/POST (*) En PHP7 el opCode cache viene por defecto http://jpauli.github.io/2015/03/05/opcache.html Apache Solr memcache
  • 25. Porqué utilizar Solr con Drupal?  Performance – Para búsquedas – En general para vistas  Mejor experiencia de búsqueda – Facetas – Relevancia – Boosting – Spell checker En resumen
  • 26.  Instalar Apache Solr  Instalar Drupal  Descargar los módulos  Search Api (search_api)  Facets (facets)  Solr Search (search_api_solr) – Solr Search Defaults (search_api_solr_defaults)  Configurar Drupal y Solr Antes de empezar...
  • 27. Instalar Solr: Llamar al Dev Ops
  • 28.  Drupal VM  Módulo: Solr Search Defaults Otra opción: Like a Boss Jeff Geerling
  • 30. Lanzar la VM vagrant up Like a Boss: Drupal VM
  • 31. Like a Boss: Drupal VM
  • 32. Habilitar los módulos Search API y Solr Search -> drupal moi search_api_solr Deshabilitar el módulo (del core) Search Like a Boss: Configurar Drupal y Solr
  • 33. Habilitar el módulo Solr Search Defaults ¿Qué hace este módulo? 1. Copia la configuración /modules/contrib/search_api_solr/solr-conf a /var/solr/data/d8/conf 2. Configura el Server Solr y el Index Solr 3. Configura algunos campos a indexar Like a Boss: Configurar Drupal y Solr
  • 34. Módulos: Search Api (search_api) Framework genérico para búsquedas Facets (facets) Interface genéricas de búsqueda por facetas Solr Search (search_api_solr) Implementación de Search Api que utiliza Apache Solr como servidor para indexar y buscar contenidos Solr Search Defaults (search_api_solr_defaults) Módulo que configura Solr Search Solarium Solr client library for PHP Apache Solr y Drupal
  • 35.  Añadir campos y filtros que necesitamos al Index  Configurar los processors  Crear la vista  Crear las facetas Drupal y Solr: Configurar la búsqueda
  • 37. DEMO TIME !! Objetivo de la Demo 1. Indexar Contenidos 2. Hacer la Vista “Búsqueda” 3. Hacer las facetas
  • 38.  Editar el archivo stopwords.txt y añadir la lista de palabras a no indexar  /var/solr/data/-collectionUsed-/conf/stopwords.txt  Editar el schema.xml  /var/solr/data/-collectionUsed-/conf/schema.xml  y añadir format="snowball" Tips: Drupal y Solr - Stop Words