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

Preview:

Citation preview

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

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

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

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

SolariumSolr 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?

Recommended