Ingeniería

Automatización mediante analítica de búsqueda con Elastic App Search

Vale la pena entusiasmarse por la analítica de búsqueda. Revela un propósito y ofrece una ventana al proceso de pensamiento subyacente de quien realiza una búsqueda. En este articulo se explicará cómo tomar esta información valiosa de búsqueda analítica y aplicarla de forma dinámica para automatizar mejoras en las aplicaciones.

Una ayuda con las apps

Elastic App Search es una caja de herramientas que permite crear experiencias de búsqueda de clase mundial y está respaldada por el Elastic Stack. La API de analítica de App Search te brinda acceso programático a los datos relacionados con las interacciones de búsqueda. A través de ella, puedes conocer qué se está buscando y en qué resultados hacen clic quienes realizan la búsqueda.

Imagina un caso de ejemplo en el que tenemos una aplicación de comercio electrónico para vender zapatos. Una persona puede explorar los elementos de la marquesina en la página principal, navegar por las categorías de inventario o aprovechar la búsqueda para encontrar los zapatos que más le gustan. A medida que busca, tus datos crecen.

Una simple tienda de comercio electrónico que vende zapatos.

Búsquedas principales, por consulta

El punto final de la API de analítica puede usarse para determinar las tres consultas de búsqueda principales:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "page": {
    "size": 3
  }
}'

Los datos que se reciben son completos; está claro cuáles zapatos esperan encontrar las personas:

{
  "results": [
    {
      "term": "black high tops",
      "clicks": 49,
      "queries": 431
    },
    {
      "term": "running shoes",
      "clicks": 31,
      "queries": 509
    },
    {
      "term": "skate shoes",
      "clicks": 14,
      "queries": 100
    }
  ],
  "meta": {
    "page": {
      "size": 3,
      "current": 1
    }
  }
}

Documentos principales, por clic

También tenemos otro modo de análisis: encontrar exactamente los documentos que generaron un clic después de que un usuario realizara su búsqueda.

Un documento es un objeto: un zapato, un bien de comercio electrónico, un artículo escrito o un personaje en tu juego. Si deseas hacer uso de la búsqueda profesional, tus objetos se indexarán en un motor de búsqueda como el que proporciona App Search.

Después de la indexación, el objeto se convierte en un documento con formato conforme al esquema de tu motor de búsqueda. A continuación, una persona realiza una búsqueda y tu aplicación devuelve una matriz de resultados, que son tus documentos.

Y podemos determinar cuáles de estos documentos atraen a las personas a hacer clic:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "page": {
    "size": 3
  }
}'

Los documentos que se muestran están representados por su id y ordenados por cantidad de clics:

{
  "results": [
    {
      "document_id": "4909",
      "clicks": 499
    },
    {
      "document_id": "1633",
      "clicks": 321
    },
    {
      "document_id": "9729",
      "clicks": 200
    }
  ],
  "meta": {
    "page": {
      "size": 3,
      "current": 1
    }
  }
}

Esta búsqueda de analítica de documentos específicos es la que aprovecharemos para optimizar de forma dinámica el contenido dentro de nuestra aplicación. Y nuestro enfoque quizás cambie lo que piensas sobre la búsqueda dentro de tus propias aplicaciones.

Fuera del cuadro

Con frecuencia asociamos la búsqueda con el cuadro de búsqueda, y por un buen motivo: los cuadros de búsqueda están en todas partes. Pero cuando comenzamos a aprovechar otros puntos finales de la API creados para dar soporte a la búsqueda, podemos salirnos de los confines rectangulares del cuadro de búsqueda.

La búsqueda en sí tiene un ritmo refinado y cíclico:

1: Una persona realiza una consulta de búsqueda. 2: La búsqueda y sus datos de clics asociados se rastrean mediante analítica. 3: Se analizan los datos, y el modelo de relevancia se ajusta usando Pesos y Refuerzos, Curaciones y Sinónimos.

Ese es el tipo de ritmo que vemos en la aplicación de comercio electrónico de ejemplo anterior.

Pero ahora introduciremos un paso nuevo...

4: Automatiza la ubicación de alto valor de los documentos de la marquesina.

¿Por qué es útil? Imagina que un par de zapatos de la tienda de comercio electrónico experimenta un aumento repentino explosivo de popularidad. De pronto, todos quieren comprar las zapatillas rojas tipo bota con luces, también conocidas como documento "id": "9797".

La API de analítica muestra nuestros tres documentos principales, y vemos que 9797 es el primero:

{
  "results": [
    {
      "id": "9797",
      "clicks": 982
    },
    {
      "id": "1633",
      "clicks": 23
    },
    {
      "id": "4909",
      "clicks": 11
    }
  ],
  "meta": {
    "page": {
      "size": 3,
      "current": 1
    }
  }
}

Como “zapatillas rojas tipo bota con luces” es una de las zapatillas menos populares, no las tenemos en un lugar prominente en la página de destino principal. Afortunadamente, los usuarios las encuentran a través de la búsqueda. Si no fuera por la búsqueda, deberían ingresar a categoría y buscarlas. ¡Pero el tiempo ahorrado es dinero ganado! Debemos esforzarnos más.

Con el punto final de la API de documentos, podemos buscar documentos específicos:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/documents' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \
-d '["9729"]'

Esto mostrará las “zapatillas rojas tipo bota con luces” o el objeto JSON que representa a las “zapatillas rojas tipo bota con luces”.

Nuestra página principal ahora trabaja de la siguiente manera (desde el punto de vista funcional):

La página de destino de nuestra tienda tiene una ventana destacada para los productos asignados dinámicamente.

Las zapatillas rojas tipo bota con luces en el recuadro azul se llamaron mediante una función. La tarea de la función es tomar el documento más popular, clasificado por clics, y mostrarlo. Como resultado, la página de destino principal siempre está lista.

La barra de búsqueda es el combustible, el catalizador, de una página de destino que siempre sea relevante y se actualice de forma dinámica. Las personas asociarán la tienda con el hecho de que siempre parece tener justo lo que buscaban, como si fuera magia.

App Search tiene clientes para JavaScript, Node.js, Java, Ruby y Python. Crea objetos que almacenen tus documentos populares y luego alimenta esos objetos en las búsquedas que informan la construcción de tus vistas principales. Es la dimensión secundaria de la búsqueda de calidad.

La importancia de las etiquetas

Un último beneficio incluido con la automatización es el concepto de analítica de etiquetado. Cualquier consulta de búsqueda puede mantener una “etiqueta” como parámetro de búsqueda adicional:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer search-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "query": "dancing shoes",
  "analytics": {
    "tags": [
      "mobile",
    ]
  }
}'

Una etiqueta puede usarse como filtro cuando se ejecutan búsquedas de analítica como la siguiente:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "filters": { "tag": "mobile" }
}'

Se presentarán los documentos principales ordenados por clics y filtrados con la etiqueta dada, “mobile” en este caso.

Puedes pensar en asignar dinámicamente una etiqueta según cómo una persona ingrese a tu página web. ¿Busca a través de un dispositivo móvil? Si es así, etiqueta sus búsquedas con “mobile”. Quizás las personas buscan con frecuencia diferentes zapatos en sus móviles. Sabiendo esto, puedes crear una función que haga que el contenido de tu página de destino reaccione a si una persona está en un dispositivo móvil o en un equipo de escritorio.

Resumen

La analítica de búsqueda puede proporcionar información profunda a través de los datos. Puedes usar estos datos para informar y automatizar accesos directos para mejorar la experiencia de una persona. Mientras más rápido las personas puedan llegar a lo que buscan, más probable es que cumplan con el objetivo en común: la visita, la venta o la participación.

Puedes comenzar hoy con App Search con una prueba gratuita de 14 días de nuestra versión alojada o descargar la versión beta de la versión autoadministrada. Cada nueva versión de prueba incluye un conjunto de datos de muestra, por lo que puedes experimentar antes de comenzar a usar tus propios datos.