Cómo implementar Algolia en tu página web

Índice de contenidos

Algolia es un motor de búsqueda muy potente que puede implementarse de manera muy sencilla y rápida en cualquier página web o aplicación móvil. En este artículo encontrarás una guía básica para implementar Algolia de principio a fin.

Si quieres saber más en profundidad te recomendamos ver nuestro post ¿Qué es Algolia? El motor de búsqueda para mejorar tu UX y CRO.

Sin más dilación, vamos a ver cómo implementarlo.

Paso 1: Preparar los datos

Cuando decimos “preparar los datos” nos referimos a que los datos deben seguir unas especificaciones concretas para que el motor de búsqueda pueda procesarlos y también a optimizar los datos para su búsqueda, y así mejorar la velocidad y calidad de la respuesta.

Formato

Algolia funciona exclusivamente con datos en formato JSON.

Los tipos de atributos que se puede utilizar son cadenas (string), números (integer y float), booleanos (true o false), objetos anidados y arrays. No admite, por ejemplo, el formato de fecha (date). Para trabajar con fechas habría que convertirlas a unix timestamp. Un registro podría ser el siguiente ejemplo:

Optimización de los datos

Para esta parte la premisa principal es el lema “Menos es más” como decía el arquitecto Mies van der Rohe. 

No es una buena práctica pasar toda la base de datos del feed de producto a la herramienta. Lo recomendable es hacer una selección de aquellos datos que se consideren relevantes para la búsqueda. Podemos diferenciar varios tipos distintos:

  • Searchable attributes: los atributos que pueden ser buscados. Por ejemplo, para un registro de películas estos podrían ser título, actores, género o descripción.
  • Filtering/facetting attributes: atributos que van a permitir refinar la búsqueda y conseguir un mejor resultado, como podrían ser el año, género, puntuación o palabras clave.
  • Display attributes: atributos que se utilizarán para visualizar los resultados, como por ejemplo la URL que permitirá visualizar una imagen.
  • Business metrics attributes: atributos decisivos para que los mejores resultados aparezcan por delante de otros menos relevantes.

Subir los datos a Algolia

El primer paso es configurar el cliente API instalando el paquete algoliasearch. Utilizaremos NPM para este ejemplo, pero puedes utilizar el gestor de paquetes que tú prefieras.

npm install --save algoliasearch

A continuación hay que crear una instancia del cliente con el appID y apiKey de la cuenta que quieras utilizar. Esta información la encontrarás en tu Dashboard de Algolia:

El código para crear la instancia es el siguiente:

const algoliasearch = require ('algoliasearch');
const client = algoliasearch ('PW7Q8HCMTL', '4eadc8f72bc64cbf48d67887005cb3c1');
const index = client.initIndex('test_MOVIES');

Ahora ya podemos subir los registros. Hay varias formas para hacerlo: directamente desde el código fuente, importando un archivo JSON o importando los datos desde la base de datos.

La forma más común de cargar los datos es utilizando un fichero JSON, y sería desde la sección de Indices desplegando el submenú de Upload records y seleccionando Upload file:

Podríamos hacer lo mismo desde código con las siguientes sentencias:

const movies = require("./movie_dataset.json");
index.addObjects(movies);

Después habría que ejecutar en consola el siguiente comando:

node main.js

Paso 2: Definir reglas de relevancia

Por defecto todos los atributos que aparecen en el JSON de feed de producto son “buscables” y eso genera mucho ruido. Así que habrá que definir las reglas de relevancia para mejorar la calidad de la respuesta de las búsquedas que haga el usuario. 

Searcheable Attributes

Son aquellos atributos que se quieren controlar, se excluirían por ejemplo, las URLs de imágenes o la página web asociada al registro. Además podemos ordenar los atributos por relevancia o ponerlos al mismo nivel de importancia si se diera el caso. Por último, también podríamos indicar si el orden en el que se escriben las palabras es relevante para cada atributo o no lo es.

Veamos el siguiente ejemplo:

index.setSettings({
       searchableAttributes:["title, alternative_titles", "unordered(genre)", "actors"]
   });

En el ejemplo anterior estamos indicando que el atributo title y alternative_titles tienen la misma relevancia. El siguiente atributo más importante es genre y por último actors. Además, en genre indicamos que no es relevante el orden que tengas las palabras de atributo utilizando unordered.

Custom ranking attributes

Cuando varios registros tienen exactamente la misma relevancia textual para una consulta dada, se define una clasificación personalizada que provocará el desempate y colocará los resultados más relevantes en primer lugar.

Siguiendo con el mismo ejemplo podríamos definir lo siguiente:

index.setSettings({
       customRanking:["desc(rating)", "desc(year)", "desc(score)"]
   });

En el ejemplo anterior estamos indicando que el desempate se basará en primer lugar en el valor del atributo rating en sentido descendente, en segundo lugar por el atributo year y en tercer lugar por el atributo score. Si queremos que se tengan en cuenta en sentido ascendente solo habría que cambiar desc por asc.

Faceting

Además, se pueden definir una especie de filtros que facilita la búsqueda del usuario. Se definen de la siguiente manera:

index.setSettings({
       'attributesForFaceting': ['genre', 'actors']
   })

Pagination

Podemos definir también el número máximo de resultados que se muestran al usuario por página del siguiente modo:

index.setSettings({
       'maxValuesPerFacet': 1000
   });

Todo esto y muchas más reglas se pueden configurar también desde el Dashboard del proyecto Algolia. En la sección de Indices, si accedes a la pestaña de Configuración podrás configurar de forma completa la búsqueda en función de los intereses comerciales del momento.


Paso 3: Desarrollo de la interfaz del usuario

Hay dos formas fundamentales de visualizar la búsqueda en la web. Dropdown menu que se aconseja cuando el buscador es accesible desde distintas páginas de la web y la más utilizada que es Instant search result page, donde se pasa a una página dedicada en exclusiva a la visualización de resultados. Generalmente, esta última garantiza una mejor experiencia de usuario.

Se puede ver un ejemplo de la primera en la web de noon y un ejemplo de la segunda en la web de Mercadona.

Instant search result page

La página de resultados instantánea es válida para aplicaciones móviles iOS como Android y además para aplicaciones web siendo compatible con Vanilla, React, React Native, Angular y Vue.

Las posibilidades que permite Algolia para desarrollar la parte front del buscador son múltiples y variadas. Encontrarás mucha documentación interesante y sencilla de aplicar en la web oficial de Algolia.

Ejemplo para testear

Para concluir te dejamos aquí un ejemplo de sandbox para que veas lo fácil y rápido que sería montar un proyecto propio:

Edit InstantSearch test for Vanilla JS

¿A qué esperas para ponerte a ello? Implementa Algolia y cuéntanos qué te ha parecido en los comentarios.

Share on facebook
Share on twitter
Share on linkedin
Share on email
4 min
Suscríbete a nuestra newsletter

Los mejores artículos de analítica digital para potenciar tu negocio.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Entradas relacionadas

Cómo configurar una propiedad App+Web en Google Analytics

Las nuevas propiedades de App+Web de Google analytics nos permiten añadir hasta 50 flujos de datos de uno u otro tipo. En este artículo te explicamos cómo crear este tipo de propiedades y cómo configurarlas para web.

5 minutos

Dificultad

Técnicas avanzadas de personalización [Dynamic Yield]

Un test de optimización es una estupenda herramienta a la hora de incrementar nuestra tasa de conversión. Pero un resultado aparentemente inconcluyente puede ocultar oportunidades de mejora que una herramienta de personalización no dejaría escapar.

3 minutos

Dificultad

Nuevas propiedades App + Web de Google Analytics

Las propiedades App + Web son el nuevo modelo de propiedades de Google Analytics que nos permiten consolidar los datos de páginas webs y aplicaciones en un solo sitio, facilitando el análisis multiplataforma.

3 minutos

Dificultad

Ir arriba

Esta web utiliza ‘cookies’ de terceros. Al clicar aceptar está aceptando el uso que realizamos de las cookies. Para más información puede consultar nuestra Política de cookies