Obtenir des résultats de recherche

Cette page décrit les requêtes de base avec la recherche, y compris les recherches par requête textuelle, les recherches par 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 renvoyez jamais de résultats personnalisés à un autre utilisateur final.

La pertinence est différente de la correspondance. La mise en correspondance consiste à trouver dans l'index des produits candidats qui correspondent à la requête de recherche de l'utilisateur. La pertinence, en revanche, est un degré de correspondance. Il s'agit de classer ces produits de manière à répondre au mieux à l'intention et aux besoins de l'utilisateur. Vertex AI Search pour le commerce utilise des techniques pour améliorer la correspondance et la pertinence afin d'offrir une meilleure expérience de recherche globale aux utilisateurs, qui répond aux besoins des marchands.

Par défaut, Vertex AI Search pour le commerce utilise la pertinence dans la recherche. Toutefois, la recherche est également ajustée pour afficher les éléments moyennement pertinents plus haut dans les résultats de recherche. Cela permet aux marchands d'obtenir des résultats de recherche plus ciblés afin d'augmenter le potentiel de conversion des événements utilisateur.

Ces fonctionnalités de recherche supplémentaires optimisent l'algorithme de pertinence par défaut. Elles fournissent des fonctionnalités non définies par défaut, adaptées au profil d'utilisation de chaque marchand, y compris :

  • Options de tri des résultats, par exemple par prix, par articles les mieux notés ou par articles les plus vendus. La recherche non définie par défaut est personnalisée pour renvoyer des résultats de recherche spécifiques avec les variantes de produit appropriées. Par exemple, pour afficher la variante la moins chère ou la plus chère lorsque vous triez par prix.

  • Application automatique d'un filtre de pertinence plus strict pour les événements utilisateur non définis par défaut.

  • Activation des contrôles de boost/d'enfouissement à intensité réglable pour affiner les résultats de recherche.

La recherche fournit 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 client peut saisir une requête textuelle sur votre site. La recherche renvoie une réponse contenant des produits qui correspondent aux paramètres des contrôles que vous avez configurés, triés par pertinence et par maximisation des revenus.

Dans le cas d'utilisation de navigation, un client peut accéder au menu de votre site et naviguer vers une catégorie de produits spécifique. La recherche choisit automatiquement l'ordre de tri qui maximise les revenus en s'appuyant sur le comportement et les tendances des utilisateurs. Vous pouvez affiner davantage les résultats de navigation à l'aide des contrôles que vous avez configurés.

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

Recherches par requête textuelle

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

La recherche considère une requête servingConfigs.search comme une requête de recherche textuelle si elle comporte un champ query non vide.

Lorsque vous importez des événements utilisateur, envoyez les événements de recherche de requêtes textuelles 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 textuelle.

Parcourir les recherches

La navigation utilise la navigation sur le site pour générer des résultats de recherche de pertinence égale, 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é, de la possibilité d'achat et de la personnalisation.

Pour obtenir les bons résultats de recherche par navigation, tenez compte des points suivants :

  • Les valeurs pageCategories et filter de vos requêtes de recherche doivent correspondre exactement aux valeurs pageCategories et filter de vos événements utilisateur importés. Si les paramètres des requêtes ne correspondent pas à ceux des événements, le modèle de reranking basé sur les clics appris à partir des événements ne fonctionnera pas très bien pour cette requête spécifique et aura un impact négatif sur la qualité des résultats.

  • Vertex AI Search for Commerce catégorise un événement utilisateur search comme événement basé sur la navigation s'il comporte un champ userEvent.searchQuery vide et un champ userEvent.pageCategories non vide. C'est pourquoi vous devez vous assurer d'envoyer les événements de navigation générés par Vertex AI Search pour le commerce en tant qu'événements utilisateur search lorsque vous les importez.

  • Un filtre de navigation doit être valide et indiquer, pour chaque requête de navigation, les produits appartenant à la catégorie de produits que l'utilisateur consulte. Pour ce faire, l'ID de catégorie doit être défini dans les champs filter et page_category. Par exemple, si vous souhaitez que les résultats de recherche soient ciblés sur la catégorie "Maison et jardin". Tout d'abord, le fait de n'avoir qu'une seule valeur filter de "in-stock" ne permet pas d'affiner suffisamment la recherche pour obtenir des résultats de navigation optimaux. Pour fournir des résultats de recherche limités à la catégorie "Maison et jardin", vous devez définir "Home \& Garden" dans la catégorie de la page, mais aussi dans le filtre avec categories: ANY("Home & Garden"). Si vous ne définissez pas la catégorie dans la partie filtre, les résultats de navigation risquent d'être trop larges et d'inclure de nombreux articles qui ne sont pas dans la catégorie "Maison et jardin".

Les requêtes et les événements de diffusion avec un champ de requête vide et des champs page_categories remplis sont considérés comme des requêtes de navigation et des événements utilisateur. Le champ page_categories spécifie la page de navigation elle-même. Lorsque la méthode servingConfigs.search envoie une requête, la recherche la considère comme une requête de recherche par navigation si le champ query est vide. Dans ce cas, les résultats sont basés sur les champs filter et pageCategories, et, si possible, sur une optimisation et une personnalisation plus poussées.

Vous pouvez définir la catégorie dans les deux, comme dans cet exemple :

JSON

page_category: "Home & Garden"
filter: "(availability: ANY("IN_STOCK")) AND (categories: ANY("Home & Garden"))"

Sinon, comme la navigation fonctionne avec des requêtes de chaîne vide, les produits d'une catégorie donnée ne s'affichent pas automatiquement dans les résultats d'une catégorie de page donnée. En d'autres termes, si l'utilisateur final navigue sans rien spécifier à l'aide d'une requête textuelle, les résultats de recherche peuvent ne pas être efficacement ciblés, même si l'utilisateur accède à une page de catégorie.

Utiliser des requêtes de recherche

Utilisez des requêtes de recherche pour obtenir des résultats pour les recherches textuelles et les recherches par navigation. Pour envoyer 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 qui sera utilisée. La configuration de diffusion détermine les paramètres et les contrôles associés qui affectent les résultats de recherche.

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

Les requêtes de recherche par 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 Vertex AI Search for 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 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 client recherche des produits dans une boutique, 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


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 la recherche

La recherche propose plusieurs niveaux de performances qui améliorent progressivement vos résultats. Par exemple, pour les cas d'utilisation de recherche de requêtes textuelles, les résultats peuvent être basés uniquement sur la pertinence. À mesure que vous débloquez 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 les niveaux de performances supérieurs lorsque vous importez des données de catalogue et d'événements utilisateur qui répondent aux exigences minimales de chaque niveau.

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

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

Avant de mettre à jour le code de votre site Web pour demander des résultats de recherche textuelle ou de recherche par navigation, 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 À 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, puis en cliquant sur l'onglet Évaluer. Les étapes suivantes expliquent comment prévisualiser à partir de la page Évaluer.

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

  1. Accédez à la page Évaluer dans la console Search for Commerce.

    Accéder à la page "Évaluer"

  2. Cliquez sur l'onglet Recherche.

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

  4. Sélectionnez la branche du catalogue contenant le catalogue dont vous souhaitez afficher l'aperçu.

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

  6. Facultatif : Saisissez un ID utilisateur pour prévisualiser les résultats de recherche correspondant à cet utilisateur.

  7. Facultatif : Saisissez une heure de recherche pour prévisualiser les résultats de recherche qui s'afficheraient à l'heure spécifiée.

    Par exemple, si vous avez fait la promotion de certains produits pour une vente spéciale, vous pouvez voir les résultats tels qu'ils s'afficheraient ce jour-là.

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

    Les facettes que vous sélectionnez sont utilisées pour générer une liste de filtres de facettes qui s'affiche sous Ajouter des facettes 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 les attributs dynamiques.

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

  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 miniatures disponibles.

    Si votre recherche déclenche un contrôle de redirection, une notification s'affiche et indique l'URI de redirection.

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

  12. Facultatif : Si vous avez sélectionné des facettes à afficher à côté de vos résultats, sélectionnez une ou plusieurs valeurs de facette dans la liste des facettes pour filtrer les résultats par ces valeurs. Les résultats sont automatiquement mis à jour une fois la sélection effectuée.

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

Parcourir

  1. Accédez à la page Évaluer dans la console Search for Commerce.

    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 du catalogue contenant le catalogue dont vous souhaitez afficher l'aperçu.

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

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

  5. Pour prévisualiser l'apparence des résultats avec un filtre spécifique, 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 s'afficheraient à l'heure spécifiée.

    Par exemple, si vous avez fait la promotion de certains produits pour un événement commercial majeur, vous pouvez voir les résultats tels qu'ils s'afficheraient ce jour-là.

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

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

    Les facettes que vous sélectionnez sont utilisées pour générer une liste de filtres de facettes qui s'affiche sous Ajouter des facettes 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 les 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 miniatures 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 facettes à afficher à côté de vos résultats, sélectionnez une ou plusieurs valeurs de facette dans la liste des facettes pour filtrer les résultats par ces valeurs. Les résultats sont automatiquement mis à jour une fois la sélection effectuée.

    Lorsque vous sélectionnez plusieurs valeurs du même attribut, elles sont appliquées comme le ferait un opérateur OR. Les valeurs de différents attributs sont appliquées comme le ferait un opérateur AND. Par exemple, après avoir sélectionné les facettes couleur et matière, vous pouvez ensuite 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". Vos résultats doivent comporter 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 sous le champ Sélectionner la configuration de diffusion.