Obtenir des résultats de recherche

Cette page décrit les requêtes de base avec Retail Search, y compris les recherches de requêtes textuelles, 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 final.

À propos de la recherche textuelle et de la recherche avec Retail Search

Retail Search propose des fonctionnalités de recherche textuelle et de navigation dans les requêtes.

Dans le cas d'une recherche textuelle, un acheteur peut saisir une requête textuelle sur votre site. Retail Search renvoie une réponse de recherche contenant des produits qui correspondent aux paramètres de contrôles que vous avez configurés, triés par pertinence et par 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. Retail Search choisit automatiquement l'ordre de tri le plus rentable en apprenant le comportement et les tendances des utilisateurs. Vous pouvez affiner les résultats de navigation à l'aide des commandes que vous avez configurées.

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

Recherches via des requêtes textuelles

Lorsqu'un utilisateur saisit une requête textuelle pour effectuer une recherche sur votre site, Retail Search trie les résultats de recherche potentiels en fonction de leur pertinence, de leur popularité, de leur caractère commercial et de leur personnalisation.

Retail Search considère qu'une requête servingConfigs.search est une requête textuelle si elle contient un champ query non vide.

Lorsque vous importez des événements utilisateur, envoyez des événements de recherche textuelle générés par Retail Search en tant qu'événements utilisateur search. Si l'événement comporte un champ userEvent.searchQuery non vide et un champ userEvent.pageCategories vide, Retail Search le considère comme un événement de recherche textuel.

Parcourir les recherches

En règle générale, la navigation dans les produits à l'aide de la navigation sur le site produit des résultats tous pertinents, ou triés par produits les plus vendus. Retail Search exploite l'IA pour optimiser le tri des résultats de navigation en tenant compte de la popularité, de l'achat et de la personnalisation.

Lorsque la méthode servingConfigs.search envoie une requête, Retail Search 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 l'optimisation et la personnalisation supplémentaires, si elles sont disponibles.

Lorsque vous importez l'événement utilisateur, veillez à envoyer les événements de recherche de navigation générés par Retail Search en tant qu'événements utilisateur search. Retail Search considère qu'un événement utilisateur search est 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 de navigation corrects, les valeurs "pageCategory" et "filter" dans vos requêtes de recherche doivent correspondre exactement aux valeurs "pageCategories" et "filter" dans vos é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 affecter la qualité des résultats.

Utiliser des requêtes de recherche pour obtenir des résultats pour les recherches textuelles et les recherches de 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 de ressource complet de la configuration de diffusion qui sera utilisée. 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 de requête textuelle nécessitent un champ query non vide.

Les requêtes de recherche de navigation nécessitent un champ pageCategories non vide.

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 vous explique comment envoyer une requête de recherche textuelle au service Retail et analyser sa 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 le temps 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 en utilisant la fonctionnalité de taille de page ou accéder à leur page préférée à 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


Pagination

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
}

Niveaux de performances de recherche

Retail Search propose plusieurs niveaux de performance sur le Réseau de Recherche qui améliorent de plus en plus vos résultats. Par exemple, pour les cas d'utilisation de recherche de texte, les résultats peuvent être uniquement basés sur la pertinence. Lorsque vous atteignez des niveaux de performances plus avancés, Retail Search peut renvoyer des résultats basés sur la pertinence, la popularité, l'optimisation des revenus et la personnalisation.

Retail Search débloque automatiquement des niveaux de performances plus élevés lorsque vous importez les données de catalogue et d'événements utilisateur qui répondent aux exigences minimales de chaque niveau.

La page Qualité des données de la console Google Cloud Retail évalue les exigences que vous avez remplies pour chaque niveau. Pour savoir comment utiliser cette page pour afficher les niveaux de qualité des données et de performances de la recherche, consultez Déverrouiller les niveaux de performances.

Évaluer la recherche de texte et parcourir les résultats

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

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

Vous pouvez prévisualiser les résultats de la configuration de diffusion depuis la page Évaluer, ou en accédant à la page Détails d'une configuration de diffusion dans la console et en cliquant sur l'onglet Évaluer. Les étapes suivantes vous expliquent comment prévisualiser sur la page Évaluer.

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

  1. Accédez à la page Évaluer de la console Google Cloud.

    Accéder à la page "Évaluer"

  2. Cliquez sur l'onglet Rechercher.

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

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

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

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

  5. (Facultatif) Saisissez un moment pour rechercher des résultats de recherche qui s'afficheront au moment spécifié.

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

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

    Les attributs sélectionnés sont utilisés pour générer une liste de filtres d'attributs qui apparaissent sous Ajouter des attributs après 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.

  7. Saisissez une requête de recherche textuelle pour prévisualiser les résultats de la requête.

  8. Cliquez sur Aperçu de la recherche ou appuyez sur Entrée dans un 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.

  9. Facultatif: Cliquez sur l'icône Grille ou Liste pour changer l'affichage des résultats de recherche.

  10. (Facultatif) Si vous avez sélectionné les 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 lors de la sélection.

    Lorsque vous sélectionnez plusieurs valeurs du même attribut, elles sont appliquées en tant qu'opérateur OR, et les valeurs de différents attributs sont appliquées comme un opérateur AND. (par exemple, après avoir sélectionné les attributs "couleur" et "bleu" et "or"), les valeurs de matière "coton" et "polyester". Les résultats de vos recherches doivent comporter l'attribut "bleu" ou "or", ainsi que l'attribut "coton" ou "polyester".

Parcourir

  1. Accédez à la page Évaluer de la console Google Cloud.

    Accéder à la page "Évaluer"

  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 contenant le catalogue que vous souhaitez prévisualiser.

  3. (Facultatif) Saisissez un ID de visiteur pour prévisualiser les résultats de l'utilisateur.

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

  5. (Facultatif) Pour prévisualiser les 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 Filtre.

  6. Facultatif: saisissez une durée de navigation pour prévisualiser les résultats qui apparaîtront au moment spécifié.

    Par exemple, si vous avez fait la promotion de certains produits pour le Black Friday, vous pouvez afficher les résultats tels qu'ils apparaîtront 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 à côté des résultats, puis cliquez sur OK pour les appliquer.

    Les attributs sélectionnés sont utilisés pour générer une liste de filtres d'attributs qui apparaissent sous Ajouter des attributs après 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, accompagnés de leurs vignettes.

  10. (Facultatif) Cliquez sur l'icône Grille ou Liste pour modifier l'affichage des résultats dans l'aperçu.

  11. (Facultatif) Si vous avez sélectionné les 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 lors de la sélection.

    Lorsque vous sélectionnez plusieurs valeurs du même attribut, elles sont appliquées en tant qu'opérateur OR, et les valeurs de différents attributs sont appliquées comme 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", ainsi que les valeurs de matière "coton" et "polyester". Les résultats doivent présenter l'attribut "bleu" ou "or", ainsi que l'attribut "coton" ou "polyester".

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