Obtenir des résultats de recherche

Cette page décrit les requêtes de base avec recherche, y compris les recherches de texte, les recherches de navigation, la pagination, l'optimisation et les résultats personnalisés.

Ne mettez jamais en cache les résultats personnalisés d'un utilisateur final et ne les renvoyez jamais à un autre utilisateur.

À propos de la recherche textuelle et de la navigation via la recherche

La recherche offre des fonctionnalités de recherche par requête textuelle et de recherche par navigation.

Dans le cas d'utilisation de la recherche par requête textuelle, un acheteur peut saisir une requête textuelle sur votre site. La recherche renvoie une réponse contenant des produits qui correspondent aux paramètres des commandes que vous avez configurées, triés par pertinence et maximisation des revenus.

Dans le cas d'utilisation "Parcourir", un acheteur peut accéder au menu de votre site et accéder à une catégorie de produits spécifique. La recherche choisit automatiquement l'ordre de tri qui permet de maximiser les revenus en se basant sur le comportement et les tendances des utilisateurs. Les paramètres de navigation que vous avez configurés permettent d'affiner les résultats de navigation.

Les requêtes de recherche textuelle et de recherche par navigation utilisent la méthode servingConfigs.search.

Recherches de requêtes textuelles

Lorsqu'un utilisateur saisit une requête textuelle pour effectuer une recherche sur votre site, l'outil de recherche trie les résultats de recherche potentiels en fonction de leur pertinence, de leur popularité, du potentiel d'achat et de la personnalisation.

Une requête servingConfigs.search est considérée comme une requête de recherche textuelle si son champ query n'est pas vide.

Lors de l'importation d'un événement utilisateur, envoyez les événements de recherche de requête textuelle générés par la recherche en tant qu'événements utilisateur search. Si l'événement comporte un champ userEvent.searchQuery non vide et un champ userEvent.pageCategories vide, la recherche le considère comme un événement de recherche textuel.

Parcourir les recherches

En règle générale, lorsque vous parcourez les produits à l'aide de la navigation sur le site, vous obtenez des résultats tous de même pertinence ou triés par articles les plus vendus. La recherche utilise l'IA pour optimiser le tri des résultats de navigation en tenant compte de la popularité, du potentiel d'achat et de la personnalisation.

Lorsque la méthode servingConfigs.search envoie une requête, la recherche la considère comme une requête de navigation si le champ query est vide. Dans ce cas, les résultats sont basés sur les champs filter et pageCategories, ainsi que sur une optimisation et une personnalisation plus poussées, le cas échéant.

Lorsque vous importez un événement utilisateur, veillez à envoyer les événements de recherche de navigation générés par la recherche en tant qu'événements utilisateur search. La recherche considère un événement utilisateur search comme un événement basé sur la navigation s'il comporte un champ userEvent.searchQuery vide et un champ userEvent.pageCategories non vide.

Pour obtenir des résultats de recherche corrects, les valeurs pageCategories et filter de vos requêtes de recherche doivent correspondre exactement aux valeurs pageCategories et filter des événements utilisateur importés. Si elles ne correspondent pas exactement, les données des requêtes de recherche peuvent ne pas être reconnues, ce qui peut avoir un impact négatif sur la qualité des résultats.

Utilisez les requêtes de recherche pour obtenir des résultats à la fois pour les recherches textuelles et les recherches par navigation. Pour effectuer une requête de recherche, utilisez la méthode servingConfigs.search.

Toutes les requêtes de recherche nécessitent placement, qui identifie le nom complet de la ressource de la configuration de diffusion à utiliser. La configuration de diffusion détermine les paramètres et les commandes associées qui affectent les résultats de recherche.

Les requêtes de recherche textuelles nécessitent un champ query non vide.

Le champ pageCategories doit être renseigné pour les requêtes de recherche de navigation.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProducts(String query) throws IOException, InterruptedException {
  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .build();

  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();
    System.out.println("Search response: " + searchResponse);
  }
}

Par défaut, un nombre raisonnable de résultats triés par pertinence est renvoyé.

Pour que la réponse de recherche renvoyée contienne également des attributs produit, veillez à fournir des valeurs d'attributs lorsque vous importez vos données de catalogue. Product possède des attributs système prédéfinis (marque, couleur et taille par exemple) pour lesquels vous pouvez fournir des valeurs. Vous pouvez également inclure des attributs personnalisés que vous définissez avec Product.attributes.

Effectuer des requêtes

Ce tutoriel explique comment envoyer une requête de recherche textuelle au service Vertex AI Search pour le commerce et analyser la réponse.


Pour obtenir des instructions détaillées sur cette tâche directement dans l'éditeur Cloud Shell, cliquez sur Visite guidée :

Visite guidée


Pagination

Utilisez la pagination pour réduire la durée de recherche et la taille des réponses envoyées.

Utiliser la pagination

Ce tutoriel explique comment contrôler la pagination dans une requête de recherche textuelle. Lorsqu'un acheteur recherche des produits dans un magasin, il peut améliorer sa navigation dans les résultats de recherche. Par exemple, ils peuvent limiter le nombre d'éléments dans la réponse de recherche à l'aide de la fonctionnalité de taille de page ou accéder à la page de leur choix à l'aide de la fonctionnalité de décalage.


Pour obtenir des instructions détaillées sur cette tâche directement dans l'éditeur Cloud Shell, cliquez sur Visite guidée :

Visite guidée


Paginer

Pour passer d'une page à une autre, utilisez page_token ou offset suivant votre cas d'utilisation.

Pour passer à la page suivante, vous pouvez utiliser page_token. Par exemple, supposons que vous envoyez l'élément SearchRequest suivant.

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
}

Dans SearchResponse, vous pouvez obtenir les cinq produits les plus pertinents ainsi qu'un jeton next_page_token.

JSON

{
  results: [
    products{...}, products{...}, products{...}, products{...}, products{...}
  ]
  next_page_token: "wY4ETNkBDOlVjZ0YWLzUmM40SMhVjMtADMwATL5UGN5MGZlVDJaIQ5LaYsQUw9fC6lIwgE1EgC"
  total_size: 100
  search_token: "NtQKDAiXt4_3BRDCg_jnARABGiQ1ZWRjOTRlOC0wMDAwLTI1YTEtODJlMy1mNGY1ZTgwZDUxOGM"
}

Pour obtenir les cinq produits les plus pertinents suivants (du 6e au 10e), définissez page_token avec le même placement, visitor_id et query que next_page_token à partir du SearchResponse précédent.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProducts_withNextPageToken(String query, int pageSize)
    throws IOException, InterruptedException {
  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchRequest firstRequest = SearchRequest.newBuilder()
        .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
        .setBranch(DEFAULT_BRANCH_NAME)
        .setVisitorId(VISITOR_ID)
        .setQuery(query)
        .setPageSize(pageSize)
        .build();

    SearchResponse firstResponse = searchClient.search(firstRequest).getPage()
        .getResponse();
    System.out.println("First search response: " + firstResponse);

    SearchRequest secondRequest = SearchRequest.newBuilder()
        .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
        .setBranch(DEFAULT_BRANCH_NAME)
        .setVisitorId(VISITOR_ID)
        .setQuery(query)
        .setPageSize(pageSize)
        .setPageToken(firstResponse.getNextPageToken())
        .build();

    SearchResponse secondResponse = searchClient.search(secondRequest).getPage()
        .getResponse();
    System.out.println("Second search response: " + secondResponse);
  }
}

Dans cet exemple, SearchRequest ressemble à ceci :

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
  page_token: "wY4ETNkBDOlVjZ0YWLzUmM40SMhVjMtADMwATL5UGN5MGZlVDJaIQ5LaYsQUw9fC6lIwgE1EgC"
}

Dans d'autres cas de figure, au lieu de naviguer d'une page à l'autre ou d'obtenir les résultats ayant une pertinence maximale, vous pouvez souhaiter accéder directement à une position donnée à l'aide de offset.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProducts_withOffset(String query, int pageSize,
    int offset) throws IOException, InterruptedException {
  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .setPageSize(pageSize)
      .setOffset(offset)
      .build();

  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();
    System.out.println("Search response: " + searchResponse);
  }
}

Par exemple, si vous souhaitez accéder à la 10e page de résultats, chaque page comportant cinq résultats, vous pouvez définir la valeur offset sur 45, qui correspond à (10 - 1) * 5.

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
  offset: 45
}

Rechercher des niveaux de performances

La recherche Google propose plusieurs niveaux de performances qui améliorent de plus en plus les résultats. Par exemple, pour les cas d'utilisation de la recherche de requêtes textuelles, les résultats peuvent être basés uniquement sur la pertinence. Lorsque vous accédez à des niveaux de performances plus avancés, la recherche peut renvoyer des résultats basés sur la pertinence, la popularité, l'optimisation des revenus et la personnalisation.

La recherche débloque automatiquement des niveaux de performances plus élevés lorsque vous importez des données de catalogue et d'événements utilisateur répondant aux exigences minimales de chaque niveau.

La page Qualité des données de la console Search for Retail fournit une évaluation des exigences que vous avez remplies pour chaque niveau. Pour en savoir plus sur l'utilisation de cette page pour afficher la qualité des données et les niveaux de performances de recherche, consultez Déverrouiller les niveaux de performances de recherche.

Évaluer les résultats de recherche et de navigation textuels

Avant de mettre à jour le code de votre site Web pour demander une recherche textuelle ou parcourir les résultats de recherche, vous pouvez les prévisualiser pour vérifier que votre configuration de diffusion fonctionne comme prévu.

Pour en savoir plus sur les configurations de diffusion, consultez la page À propos des configurations de diffusion.

Vous pouvez prévisualiser les résultats de la configuration de diffusion à partir de la page Évaluation ou en accédant à la page Détails d'une configuration de diffusion dans la console, puis en cliquant sur l'onglet Évaluer. Les étapes suivantes vous expliquent comment effectuer un aperçu à partir de la page Évaluation.

Pour prévisualiser les résultats renvoyés par votre configuration de diffusion:

  1. Accédez à la page Évaluation de la console Search for Retail.

    Accéder à la page "Évaluation"

  2. Cliquez sur l'onglet Rechercher.

  3. Sélectionnez la configuration de diffusion que vous souhaitez prévisualiser.

  4. Sélectionnez la branche de catalogue qui contient le catalogue que vous souhaitez prévisualiser.

  5. Facultatif: saisissez un ID de visiteur pour prévisualiser les résultats de recherche de cet utilisateur.

  6. (Facultatif) Saisissez un ID utilisateur pour prévisualiser les résultats de recherche de cet utilisateur.

  7. Facultatif: saisissez une heure de recherche pour prévisualiser les résultats qui s'afficheront à l'heure indiquée.

    Par exemple, si vous avez fait la promotion de certains produits pour le Black Friday, vous pouvez voir les résultats tels qu'ils apparaissaient ce jour-là.

  8. Facultatif: Sélectionnez les attributs à afficher à côté des résultats de recherche, puis cliquez sur OK pour les appliquer.

    Les attributs que vous sélectionnez permettent de générer une liste de filtres d'attributs qui apparaissent sous Ajouter des attributs après avoir effectué la recherche initiale. Ces filtres d'attributs peuvent inclure des attributs autres que ceux que vous sélectionnez à cette étape, tels que des attributs dynamiques.

  9. Saisissez une requête de recherche textuelle pour afficher un aperçu des résultats correspondants.

  10. Cliquez sur Aperçu de la recherche ou appuyez sur Entrée dans n'importe quel champ de saisie pour afficher les résultats.

    Les résultats de recherche s'affichent avec les vignettes disponibles.

    Si votre recherche déclenche une commande de redirection, une notification affiche l'URI de redirection.

  11. Facultatif: Cliquez sur l'icône Grille ou Liste pour modifier la façon dont les résultats de recherche s'affichent dans l'aperçu.

  12. Facultatif: si vous avez sélectionné des attributs à afficher à côté de vos résultats, sélectionnez une ou plusieurs valeurs d'attribut dans la liste des attributs pour filtrer les résultats en fonction de ces valeurs. Les résultats sont automatiquement mis à jour une fois sélectionnés.

    Lorsque vous sélectionnez plusieurs valeurs du même attribut, elles sont appliquées en tant qu'opérateur OR, et les valeurs des différents attributs sont appliquées comme le serait un opérateur AND. Par exemple, après avoir sélectionné les attributs "color" et les valeurs "blue" et "gold", et les valeurs de matière "cotton" et "polyester". L'attribut des résultats de recherche doit être "bleu" ou "or", ainsi que l'attribut "coton" ou "polyester".

Parcourir

  1. Accédez à la page Évaluation de la console Search for Retail.

    Accéder à la page "Évaluation"

  2. Cliquez sur l'onglet Parcourir.

  1. Sélectionnez la configuration de diffusion que vous souhaitez prévisualiser.

  2. Sélectionnez la branche de catalogue qui contient le catalogue que vous souhaitez prévisualiser.

  3. Facultatif: saisissez un ID de visiteur pour prévisualiser les résultats de cet utilisateur.

  4. (Facultatif) Saisissez un ID utilisateur pour prévisualiser les résultats de cet utilisateur.

  5. Facultatif: Pour prévisualiser l'apparence des résultats avec un filtre spécifique ajouté, saisissez une chaîne de filtre. Utilisez la syntaxe d'expression de filtre spécifiée dans la documentation sur les filtres.

  6. Facultatif: saisissez une durée de navigation pour prévisualiser les résultats qui s'afficheront au moment spécifié.

    Par exemple, si vous avez fait la promotion de certains produits pour le Black Friday, vous pouvez voir les résultats tels qu'ils apparaissaient ce jour-là.

  7. Saisissez la catégorie de page pour laquelle vous testez les résultats de navigation.

  8. Facultatif: Sélectionnez les attributs à afficher avec les résultats, puis cliquez sur OK pour les appliquer.

    Les attributs que vous sélectionnez permettent de générer une liste de filtres d'attributs qui apparaissent sous Ajouter des attributs après avoir effectué la recherche initiale. Ces filtres d'attributs peuvent inclure des attributs autres que ceux que vous sélectionnez à cette étape, tels que des attributs dynamiques.

  9. Cliquez sur Parcourir l'aperçu ou appuyez sur Entrée dans n'importe quel champ de saisie pour afficher les résultats.

    Les résultats s'affichent avec les vignettes disponibles.

  10. Facultatif: Cliquez sur l'icône Grille ou Liste pour modifier l'affichage de vos résultats dans l'aperçu.

  11. Facultatif: si vous avez sélectionné des attributs à afficher à côté de vos résultats, sélectionnez une ou plusieurs valeurs d'attribut dans la liste des attributs pour filtrer les résultats en fonction de ces valeurs. Les résultats sont automatiquement mis à jour une fois sélectionnés.

    Lorsque vous sélectionnez plusieurs valeurs du même attribut, elles sont appliquées en tant qu'opérateur OR, et les valeurs des différents attributs sont appliquées comme le serait un opérateur AND. Par exemple, après avoir sélectionné les attributs "couleur" et "matière", vous pouvez filtrer vos résultats de recherche en sélectionnant les valeurs de couleur "bleu" et "or", et les valeurs de matière "coton" et "polyester". L'attribut de vos résultats doit être "bleu" ou "or", et l'attribut "coton" ou "polyester" doit également être indiqué.

Pour afficher la page Détails de la configuration de diffusion que vous prévisualisez, cliquez sur Afficher la configuration de diffusion sous le champ Sélectionner une configuration de diffusion.