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 mise en 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 mise en correspondance et la pertinence, afin de proposer une meilleure expérience de recherche globale aux utilisateurs et de répondre aux besoins des marchands.

Par défaut, Vertex AI Search pour le commerce utilise la pertinence dans la recherche. Toutefois, la recherche est également conçue pour afficher des articles légèrement pertinents plus haut dans les résultats de recherche afin de fournir aux marchands des résultats de recherche plus ciblés et 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, en fournissant des fonctionnalités non 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 les plus vendus. La recherche non par défaut est personnalisée pour renvoyer des résultats de recherche spécifiques avec les variantes de produits 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 par défaut.

  • Activation des commandes de boost/enterrage ajustables pour affiner les résultats de recherche.

La recherche propose à la fois 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 de recherche 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 le plus rentable en apprenant du comportement et des tendances des utilisateurs. Les résultats de recherche peuvent être encore plus précis grâce aux commandes que vous avez définies.

Les requêtes de recherche de texte 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, 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 basée sur du texte si elle comporte un champ query non vide.

Lorsque vous importez 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 textuelle.

Parcourir les recherches

La fonctionnalité de navigation utilise la navigation sur le site pour générer des résultats de recherche de même pertinence, triés par articles les plus vendus. La recherche utilise l'IA pour optimiser le tri des résultats de recherche en tenant compte de la popularité, de la facilité d'achat et de la personnalisation.

Les requêtes et événements de diffusion avec un champ de requête vide et des champs page_categories non vides 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, ainsi que sur une optimisation et une personnalisation supplémentaires, le cas échéant.

Pour obtenir des résultats de recherche dans le navigateur corrects, 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. valeurs filter dans vos événements utilisateur importés. Si les paramètres des requêtes ne correspondent pas aux paramètres des événements, le modèle de reclassement 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 pour le commerce catégorise 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. 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 dans laquelle l'utilisateur navigue. Pour ce faire, l'ID de catégorie doit être défini à la fois dans les champs filter et page_category. Par exemple, si vous souhaitez cibler les résultats de recherche sur "Maison et jardin". Tout d'abord, une seule valeur filter de "in-stock" n'affine pas suffisamment la recherche pour fournir des résultats de navigation optimaux. Pour fournir des résultats de recherche limités à "Maison et jardin", vous devez définir "Home \& Garden" dans la catégorie de pages, mais aussi dans le filtre avec categories: ANY("Home & Garden"). Si vous ne définissez pas de catégorie dans la partie "Filtre", les résultats de la recherche risquent d'être trop larges et d'inclure de nombreux articles qui ne sont pas de la catégorie "Maison et jardin".

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 fonctionnalité de navigation fonctionne avec des requêtes de chaîne vide, les produits d'une catégorie donnée ne s'afficheront pas automatiquement dans les résultats d'une catégorie de pages 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 suffisamment ciblés, même si l'utilisateur accède à une page de catégorie.

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

Les requêtes de recherche de texte requièrent un champ query non vide.

Les requêtes de recherche dans le navigateur 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 retail 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 grâce aux résultats de recherche. Par exemple, il peut 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 son 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
}

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.

Le Réseau de Recherche débloque automatiquement des niveaux de performances plus élevés lorsque vous importez des 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 Search for Retail vous indique quelles exigences vous avez remplies pour 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.

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

Avant de mettre à jour le code de votre site Web pour demander une 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 à partir de 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 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 de la recherche pour le 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 de catalogue contenant 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 de recherche qui s'afficheraient à l'heure spécifié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 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 attributs que vous sélectionnez permettent de générer une liste de filtres d'attributs qui s'affichent sous Ajouter des attributs après la recherche initiale. Ces filtres de facettes peuvent inclure d'autres facettes que celles que vous sélectionnez à cette étape, telles que les facettes 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 un champ de saisie pour afficher les résultats.

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

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

  11. Facultatif: Cliquez sur l'icône Grille ou Liste pour modifier l'affichage des résultats de recherche en mode 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 le filtre sélectionné.

    Lorsque vous sélectionnez plusieurs valeurs d'un même attribut, elles sont appliquées comme un 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 les valeurs "bleu" et "or", ainsi que les valeurs matériau "coton" et "polyester". Les résultats de votre 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 de la recherche pour le 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 de catalogue contenant le catalogue que vous souhaitez prévisualiser.

  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 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 sur les filtres.

  6. (Facultatif) Saisissez une heure 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 de ventes à pic, vous pouvez voir les résultats tels qu'ils apparaîtraient ce jour-là.

  7. Saisissez la catégorie de pages pour laquelle vous testez les résultats de recherche.

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

    Les attributs que vous sélectionnez sont utilisés pour générer une liste de filtres d'attributs qui s'affichent sous Ajouter des attributs après la recherche initiale. Ces filtres de facettes peuvent inclure d'autres facettes que celles que vous sélectionnez à cette étape, telles que des facettes dynamiques.

  9. Cliquez sur Parcourir l'aperçu ou appuyez sur Entrée dans un 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 sur l'icône Liste pour modifier l'affichage des résultats en mode 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 le filtre sélectionné.

    Lorsque vous sélectionnez plusieurs valeurs d'un même attribut, elles sont appliquées comme un 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 les 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 un attribut "bleu" ou "or", ainsi qu'un 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.