Application dynamique de l'analytique avec Elastic App Search | Elastic Blog
Technique

L'analyse des recherches au service de l'automatisation avec Elastic App Search

L'analyse des recherches en passionne plus d'un. Et pour cause. Elle révèle l'intention de l'utilisateur et nous donne un aperçu du cheminement sous-jacent qu'emprunte sa pensée. Cet article vous explique comment exploiter ces précieuses informations que fournit l'analyse des recherches, pour les appliquer dynamiquement et automatiser l'amélioration de votre application.

Le bonheur est dans l'API

Elastic App Search est une boîte à outils qui vous permet de créer des expériences de recherche irréprochables. Sous le capot ? Elle s'appuie sur la Suite Elastic. L'API App Search Analytics vous donne un accès par programme aux données liées aux interactions de recherche. Vous pouvez ainsi en déduire les contenus recherchés et connaître les résultats de recherche qui génèrent le plus de clics.

Imaginons une application de vente de chaussures en ligne. Les internautes peuvent parcourir les articles exposés dans la vitrine de la page d'accueil, passer d'une catégorie d'articles à une autre, ou utiliser la fonction de recherche pour trouver la paire de chaussures qui leur plaît. Et à mesure qu'ils lancent des recherches, les données dont vous disposez augmentent.

Boutique de vente de chaussures en ligne.

Les recherches les plus fréquentes – classées par requête

Vous pouvez utiliser le point de terminaison de l'API Analytics pour connaître les trois requêtes de recherche les plus fréquentes :

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
  }
}'

Notons la richesse des données collectées – on voit clairement quels types de chaussures les internautes recherchent le plus :

{
  "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
    }
  }
}

Les documents les plus consultés – classés par nombre de clics

Nous proposons aussi un autre mode d'analyse : il vous permet de savoir exactement quels documents ont généré des clics après que l'utilisateur a lancé sa recherche.

Un document est un objet, c'est-à-dire une paire de chaussures, un produit proposé à la vente en ligne, un article de blog, de presse ou autre, ou encore un personnage dans un jeu. Pour proposer une fonction de recherche professionnelle, vous devez indexer vos objets dans un moteur de recherche comme celui d'App Search.

Une fois indexé, l'objet devient un document formaté suivant le schéma de votre moteur de recherche. Lorsqu'un internaute lance une recherche, votre application renvoie un ensemble de résultats. Ces résultats sont vos documents.

Et vous pouvez savoir lequel de ces documents génère le plus de clics :

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
  }
}'

Les documents trouvés sont représentés par un id et classés par nombre de clics :

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

C'est cette recherche analytique de certains documents que nous allons exploiter pour optimiser dynamiquement le contenu de notre application. Et il est probable que notre approche change votre façon de voir la recherche dans vos applications.

Hors des sentiers battus (et des zones de recherche)

On associe souvent la recherche et la zone de recherche, et pour cause. Les zones de recherche sont partout. Mais quand on commence à exploiter d'autres points de terminaison d'API conçus pour la recherche, on peut s'échapper de la petite prison rectangulaire qu'est la zone de recherche.

La recherche présente un rythme cyclique précis :

1 : Un utilisateur lance une requête de recherche. 2 : Les données relatives à la recherche et aux clics qu'elle a générés font l'objet d'un suivi via l'analyse des recherches. 3 : Les données sont analysées et le modèle de pertinence est ajusté grâce à des pondérations et des accélérateurs de recherche, des curations, et des synonymes.

C'est ce type de rythme qu'on observe dans l'exemple de l'application d'e-commerce que nous avons vu plus haut.

Mais cette fois, nous allons ajouter une étape…

4 : Automatiser l'affichage de documents de la vitrine dans des emplacements à forte valeur ajoutée.

Pourquoi est-ce utile ? Imaginons qu'une paire de chaussures disponibles dans notre boutique en ligne enregistre une explosion de la demande. Du jour au lendemain, tout le monde tente de mettre la main sur une paire de "red light-up high top sneakers" (baskets montantes rouges avec semelle lumineuse), qui correspond au document "id": "9797".

L'API Analytics renvoie nos 3 documents les plus consultés et 9797 s'affiche en haut de la liste :

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

Parce que les "red light-up high-top sneakers" faisaient jusqu'ici partie des articles les moins recherchés, elles n'occupent pas un emplacement privilégié sur la page de destination principale. Mais heureusement, les utilisateurs parviennent à les trouver via la fonction de recherche. Sans cela, ils devraient parcourir la catégorie correspondante pour les trouver. Mais le temps, c'est de l'argent. Nous devons donc faire mieux.

Grâce au point de terminaison d'API Documents, nous pouvons rechercher des documents spécifiques :

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"]'

Cela renvoie les "red light-up high-top sneakers", ou plutôt l'objet JSON qui représente les "red light-up high-top sneakers".

D'un point de vue fonctionnel, notre page d'accueil s'affiche comme suit :

La page de destination de notre boutique en ligne affiche une fenêtre pour les produits mis en avant, qui sont affectés dynamiquement.

Les "red light-up high-top sneakers" qui s'affichent dans la zone bleue ont été appelées via une fonction. Le rôle de cette fonction est d'afficher le document qui connaît le plus de succès, en fonction du nombre de clics qu'il a générés. Résultat, la page de destination principale est toujours prête.

La barre de recherche est le véritable moteur, le catalyseur, d'une page de destination dynamiquement mise à jour et systématiquement pertinente. Ce que voient les internautes, c'est que cette boutique en ligne semble toujours proposer exactement l'article qu'ils comptaient rechercher, comme par magie.

App Search propose des clients pour JavaScript, Node.js, Java, Ruby et Python. Créez des objets pour stocker vos documents les plus recherchés, puis envoyez ces objets dans des requêtes qui renseignent à leur tour la construction des principaux affichages. Voilà pour la deuxième caractéristique d'une recherche de qualité.

À vos balises

Autre grand avantage côté automatisation, l'ajout de balises associées à l'analytique. N'importe quelle requête de recherche peut intégrer un "tag" (c'est-à-dire une balise) comme paramètre de recherche supplémentaire :

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",
    ]
  }
}'

La balise peut servir de filtre lorsque vous exécutez des requêtes analytiques. Par exemple :

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" }
}'

Les documents les plus consultés seront classés par nombre de clics et filtrés en fonction de la balise indiquée (dans ce cas, tag: "mobile").

Vous pouvez aussi affecter dynamiquement une balise selon la manière dont l'internaute arrive sur votre page web. L'utilisateur effectue-t-il une recherche via un appareil mobile ? Si c'est le cas, ajoutez une balise "mobile" à ses requêtes. Peut-être les mobinautes recherchent-ils souvent certains produits plutôt que d'autres. Armé de cette information, vous pouvez créer une fonction qui adapte le contenu de votre page de destination selon l'appareil utilisé (mobile ou ordinateur).

Récapitulons

L'analyse des recherches peut vous fournir de très précieuses informations grâce aux données. Vous pouvez exploiter ces données pour renseigner et automatiser des raccourcis qui optimiseront l'expérience de l'internaute. Plus vite les utilisateurs trouvent ce qu'ils recherchent, plus ils sont susceptibles d'atteindre cet objectif commun : les vues, la vente ou l'interaction.

Envie de vous lancez avec App Search ? Testez pendant 14 jours la version d'essai gratuite de notre offre hébergée ou téléchargez la version bêta de la version autogérée. Nous préchargeons un échantillon de données dans les versions d'essai. Vous pouvez ainsi vous entraîner avant d'importer vos propres données.