Qué motor de búsqueda elegir para tu eCommerce con Magento 2

1*J3qNac EyHkdkiwNtgIpwA

He estado un tiempo estudiando y probando distintos motores de búsqueda para Magento 2 y he llegado a varias conclusiones que quiero compartir.

En primer lugar, si estás en un artículo como este es porque probablemente el buscador de Magento se te haya quedado pequeño y estás buscando una alternativa. De todas formas, Magento 2.3.1 activa Elasticsearch como buscador por defecto. ¡Será por algo!

Pues bien, esto es lo que me pasó a mi en uno de los proyectos corporativos con Magento que desarrollamos en ACTIUM Digital. Se trataba de un proyecto relativamente ambicioso y el buscador era el punto clave. Pude dedicar cierto tiempo a estudiar e incluso probar unos cuantos para decantarnos por el que mejor se adaptaba a nuestras necesidades. Si una cosa tenemos clara, es que aunque hay que ser ágil y rápido probando y descartando, escatimar en I+D genera hipoteca técnica a largo plazo.

Dedícale tiempo y cariño. Un buen buscador mejorará la conversión en tu tienda online.

En este artículo explicaré mi experiencia y las conclusiones a las que he llegado utilizando:

  • Elasticsearch
  • Doofinder
  • Algolia

¿Qué ocurre con el buscador de Magento?

El buscador que trae por defecto Magento no es más que una búsqueda a través de la base de datos MySQL. No podemos compararlo con otros buscadores, especialmente con los que comento aquí. Esto trae la ventaja de que es fácil de configurar y nos ofrece un buscador en funcionamiento out of the box. Esto es suficiente para la mayoría de eCommerce relativamente pequeños y con un catálogo de productos que no supere los pocos miles.

Ahora bien, si nuestro eCommerce crece o es un proyecto que ya sabemos desde un principio que va a ser grande (miles de productos, visitas, etc.) o que simplemente queremos que tenga un buen buscador, hay que estudiar alternativas, además de pensar en crear una arquitectura escalable en todos los aspectos.

Otras desventajas

Además de ser ahora mismo una opción oficialmente deprecada. Con el buscador de MySQL no podremos usar funcionalidades como las sugerencias, el clustering, o la configuración del peso por atributo.

El indexer de Magento

Una de las partes más importantes a tener en cuenta y a entender cómo funciona es el propio sistema de indexación del catálogo de Magento.

Magento tiene un proceso para indexar toda la información del catálogo de productos, categorías y precios. Para que las búsquedas sean rápidas, Magento debe actualizar constantemente dicho índice. Si no pasamos por este proceso, cada vez que queramos buscar información sobre un producto Magento tendrá que pasar por todo un proceso de cálculo y consultas hasta obtenerlo. Esto ocurre por ejemplo con los precios y su constante actualización.

2 2

Para actualizar todos estos datos, Magento realiza una reindexación programable. Esta reindexación permite que la base de datos esté constantemente actualizada, pero es un proceso que puede llegar a ser muy lento.

Este proceso de reindexación tiene dos modos de actuación a tener muy en cuenta. Actualizar al guardar (Update on Save) que se ejecutará cada vez que modifiquemos datos, o actualización programada (Update on Schedule) que ejecutará el proceso programado cuando nosotros queramos.

Es importante conocer las dos modalidades de indexación porque entran muy en juego en cómo se actualiza también la información en buscadores externos a Magento como Elasticsearch, Doofinder o Algolia.

Elasticsearch

La primera opción a tener en cuenta si no queremos depender de servicios externos y de pago.

3 3
Logo de Elasticsearch

Elasticsearch está basado en un modelo de negocio Open Source, así que también podemos descargarlo y instalarlo en nuestra propia infraestructura. En mi caso, creamos un servidor adicional y exclusivo para Elasticsearch y, desde Magento, conectamos a la instancia del buscador.

Basta con indicarle el host, el puerto y el prefijo del índice. Magento se encargará de enviarle la información para que elastic la tenga almacenada en su motor, y Elastic devolverá los resultados cuando el usuario haga una búsqueda. Todo de forma rápida y transparente.

4 4
Opciones de configuración de Elasticsearch en Magento 2

Aunque la mejora interna y del buscador es indiscutible respecto a la opción MySQL, la parte visual y la personalización de Elastic siguen un poco limitadas y son complejas de modificar. Una opción a tener en cuenta es utilizar plugins como Elastic Search for Magento 2 de Amasty que permite, entre otras cosas, configurar el autocompletado, utilizar sinónimos y búsqueda personalizable con atributos y el peso de los mismos.

Una de las grandes ventajas es que al tratarse de un motor de búsqueda que puedes instalar en tus servidor sin depender de otros, el precio se reduce significativamente. A cambio, tendrás que mantener el servicio, actualizarlo y quizá perder más tiempo configurándolo, pero tienes el control absoluto del mismo y no tendrás un susto en la factura si pasas de 5.000 SKU a 100 o 200.000 como era nuestro caso.

Doofinder

Se trata de un buscador inteligente, de los que puedes añadir y configurar en el Frontend en pocos minutos y con una simple llamada a un JavaScript. Ofrecen un plugin para Magento 2 que se encarga de enviar via API los productos a sus servidores para procesarlos y ofrecerte de vuelta los resultados de cada búsqueda.

5
Logo de Doofinder

El proceso es realmente sencillo y funciona a la primera. Creas un buscador, configuras las claves de la API, instalas el módulo en Magento y poca cosa más. Eso si, hay que repasar bien el manual oficial del módulo doofinder-magento2.

6

Hace tiempo tenían un método de integración mediante feeds (como el Feed URL que se ve en la imagen) pero en breve será eliminado. El método principal es a través de su API Rest.

Además de filtros y sugerencias, también puedes configurar qué campos de tus productos y con qué “peso” se utilizarán para las búsquedas.

7
Opciones de configuración de campos y peso.

Lo importante a tener en cuenta es que el módulo de Doofinder, a través del cron de Magento, envía los datos de los productos a su motor de búsqueda. Tras un primer envío, hay que cambiar la configuración del indexer a Update on Save para que cualquier actualización sea enviada a Doofinder, quien cobra por uso de su API, así que este método reduce el número de peticiones.

Actualización a 16 de marzo de 2020
Desde Doofinder me comentan que están trabajando en una nueva versión que incluirá una implementación del Instant Search similar a la de Algolia, con la que permitirán una capa de personalización superior a la actual, logrando un resultado similar al del Instantsearch.js. En cuanto pueda probarlo volveré a actualizar el post.

Cuidado, porque si cambiamos el método de indexación a Update on Schedule, Doofinder reindexará todo el contenido y además nos cobrará por todas las peticiones enviadas. No recomiendan esta opción. El módulo, por otra parte, se asegura de cambiar la configuración a Update on Save tras la primera actualización.

8
Ejemplo de los resultados que muestra Doofinder. Imagen de su blog oficial.

Antes de integrar Doofinder, asegurate de entender bien cómo funciona el workflow de integración para evitar que choque con alguno de tus módulos o integraciones.

Debo añadir que tienen un soporte técnico muy bueno y rápido. También en español. Además de ayudarte en el proceso de integración, resuelven muy bien cualquier tipo de duda que tengas y se adaptan todo lo que pueden a tus problemas o necesidades. A nosotros nos ampliaron el periodo de prueba tras tener algunos problemas y fueron comprensivos en todo momento.

Por desgracia, en nuestro caso en concreto, el sistema de actualización de artículos de Magento necesitaba atacar directamente la base de datos y no podíamos ejecutar la actualización con el Update on Save de Magento. No pudimos implementarlo.

Algolia

Algolia nos pareció algo más maduro y fiable, así que decidimos probarlo incluso sabiendo que probablemente se nos escaparía de presupuesto. Todo estaba encima de la mesa. Como comentaba, un buen buscador es clave para un buen retorno en ventas. Si sabemos lo que buscamos, utilizamos el buscador. No la navegación por categorías.

9
Logo de Algolia

El plugin para Magento 2 tiene una página en Github más quedecente, con actualizaciones constantes y varios participantes. Ver cosas como esta nos garantiza que, desactualizado, no lo está.

10

Algolia es quizá el más completo de todos. La documentación oficial es ordenada, limpia y no le falta nada! Al igual que Doofinder, Algolia también se configura con Magento a través de clave de API. El módulo se puede descargar de forma gratuita a través del Marketplace de Magento

Recomiendo probar la demo que tienen publicada con un Magento y la plantilla Luma. En ella podemos ver lo rápido que aparecen los resultados y lo robusta que es la visualización en todo tipo de dispositivos, punto también muy imporante.

11

Algolia tiene una ventaja frente a Doofinder que nos pareció muy interesante, y es que tras plantearles el problema de la actualización directa de infomación de Magento en la base de datos (algo que Doofinder no podía detectar al funcionar exclusivamente con el indexer de Magento) nos comentaron que el plugin de Algolia era capaz de detectar los cambios de datos en la BBDD de Magento a través de un campo de última actualización, lo cual solucionaba esa problemática.

El buscador SaaS más completo que hemos encontrado.

Algolia es enorme. Muy potente. Tiene una interfaz muy cuidada y da una sensación de robustez que es lo que necesita un cliente de eCommerce.

Gestión de índices, reglas, analítica, monitorización,… basta con verlo y probarlo. Puedes hacerlo durante 14 días.

12
Dashboard de Algolia

Instantsearch.js

Otra cosa muy chula que tiene Algolia es la librería instantsearch.js con la que podemos personalizar prácticamente al completo la experiéncia de usuario en las búsquedas en tiempo real. Algo que no encontramos en Doofinder y que es bastante más complejo y limitado en Elasticsearch. Incomparable, diría yo.

Conclusión

Aunque Algolia y Doofinder son bastante intuitivos, potentes y rápidos, al final nos decantamos por Elasticsearch. Nuestro caso era un poco peculiar porque teníamos más de 50.000 productos con previsión de llegar a 100.000, además de una actualización de precios constante y la necesidad de controlar de forma muy precisa el indexado y renderizado de resultados. Nuestros requisitos son de cambio constante, por eso necesitamos algo que podamos trastear, no un SaaS.

Por otra parte, sabemos que en un futuro es posible que debamos cambiar, así que aunque nos quedamos de momento con Elastic, estamos preparados para, si se da el caso, migrar rápidamente a uno tipo SaaS.

Si no tienes un eCommerce muy peculiar y personalizado como el nuestro, seguramente Algolia y Doofinder sean una gran opción a tener en cuenta. Como en todo, el producto ideal para todos los casos no existe.

La bala de plata no existe. Para cada proyecto nuevo que valoramos, volvemos a tener en cuenta todas estas opciones.

Presta también atención al precio porque son productos de pago por uso, y depende del número de productos y las llamadas a su API (entre otras cosas) el precio puede dispararse.

También hay que decir que detrás de estas dos empresas encontramos muy buenos profesionales técnicos que nos ayudaron en todo momento a implementar, probar y solucionar todo tipo de dudas. No te quedes con las ganas de probarlos.