40
Drupal 8 más rápido que nunca con Apache Solr Karim Boudjema Schombourg Drupal Camp Costa Rica 2017

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

Embed Size (px)

Citation preview

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

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

Karim Boudjema Schombourg

Drupal Camp Costa Rica 2017

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

+ 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)

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

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/

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

Algunos trabajos con Drupal ...

En Drupal 7: http://www.lostiempos.com En Drupal 8: http://www.laprensa.com.bo

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

Objetivo

Conceptos básicos de Apache Solr

Ya se puede utilizar Solr con Drupal8

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

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

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

La comunidad Drupal

Drupal Camp Bolivia 2013

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

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

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

Mis mentores

Jeff Geerling

@geerlingguy

Joaquín Bravo

@jackbravo

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

Los Problemas

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

Los Problemas

Sitios Drupal

Performance

2 problemas que muchos sitios enfrentan: Performance + Experiencia de búsqueda

Experiencia de Búsqueda

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

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

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

¿La Solución?

Performance

Experiencia de Búsqueda

+

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

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 deBúsqueda

+

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

Experiencia en búsqueda

Facetas RelevanciaFacetas

Lo más buscado

Keyword

Ordenar

lostiempos.com

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

Lo que necesitamos hoy en búsqueda

Herramientas de búsqueda

FacetasFacetas

Ordenar

clasificados.lostiempos.com

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

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

+

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

¿Qué es Solr?

Page 19: Drupal 8 más rápido que nunca con Apache 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?

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

¿Quien utiliza Apache Solr?

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

El índice invertido

bye bye select like “%blue sky%”

¿Porqué Solr es rápido para búsquedas?

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

Proceso de indexación en Solr

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

¿Qué es Apache Solr?

Maria DB Apache SOLR

DRUPAL

SQL

POSTen 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

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

Apache Solr como backend de Views

PHP 7NGNIX

BrowserCache CDN Reverse

proxy

OpCodeCache PHP (*)

Cache engine

QueryCache

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

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

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

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

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...

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

Instalar Solr: Llamar al Dev Ops

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

Drupal VM Módulo: Solr Search Defaults

Otra opción: Like a Boss

Jeff Geerling

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

Descargar Drupal VM: https://www.drupalvm.com/

Cambiar en config.yml

Like a Boss: Drupal VM

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

Lanzar la VM vagrant up

Like a Boss: Drupal VM

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

Like a Boss: Drupal VM

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

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

Page 33: Drupal 8 más rápido que nunca con Apache 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

Page 34: Drupal 8 más rápido que nunca con Apache 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

SolariumSolr client library for PHP

Apache Solr y Drupal

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

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

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

DEMO TIME !!

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

DEMO TIME !!

Objetivo de la Demo

1. Indexar Contenidos

2. Hacer la Vista “Búsqueda”

3. Hacer las facetas

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

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

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

¿Preguntas?

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