Construyendo un motor de recomendaciones con D8 y Solr

Ponente: 

Un motor de recomendaciones es un sistema inteligente que recomienda productos a un usuario en base a una lógica determinada (con cierta complejidad). En Bodeboca hemos implementado un sistema con una arquitectura bastante molona que sirve justo para esto, usando herramientas que nos gustan como Drupal 8 y Solr.

Al construir este proyecto me he encontrado con seis grandes problemas a resolver:

  1. Construcción de modelo de datos y almacenamiento y su acoplamiento con un motor de búsqueda. En nuestro caso han sido entidades custom desarrolladas a mano y el motor de búsqueda Solr.
  2. Obtención de los datos del sistema operacional (Hablamos de más de 500mil filas de base de datos que provienen de un Drupal 6) con un sistema de colas para importación de histórico. 
  3. Mantener TODOS esos datos actualizados con la menor latencia posible (aunque no es tiempo real) mediante un sistema reactivo en D6.
  4. Implementación de un algoritmo de recomendación configurable y flexible. Lo hemos conseguido gracias al patrón de diseño de plugins de D8.
  5. Almacenamiento/cacheo de los resultados.
  6. Exposición de los resultados usando Resources custom de REST.

El objetivo no es tanto mostrar un chorro de código como explicar la arquitectura del sistema y las Apis o herramientas empleadas para cada punto, los problemas a resolver y cómo los hemos capeado. Una charla en la que hablaremos mucho de gestión de colas, datos en bruto, datos calculados, Solr y su integración con Drupal 8... Un remix con el que he disfrutado mucho y que me apetece compartir con vosotros porque creo que se le puede sacar mucho jugo.

 

Nivel experiencia: 
Intermedio
Audiencia: 
Desarrolladores
Casos de estudio
Versión de Drupal: 
Drupal 8.x