Extension des requêtes

L'extension des requêtes consiste à assouplir progressivement les contraintes de requête pour inclure plus de résultats lorsqu'aucun ou trop peu de résultats ne sont initialement trouvés. Cela entraîne un ajustement de la taille des résultats par requête.

Utiliser l'extension des requêtes

Ce tutoriel explique comment activer la fonctionnalité d'extension des requêtes. Lorsqu'un acheteur utilise une expression de recherche ambiguë ou composée de plusieurs mots, il peut obtenir une réponse vide. Une fois l'extension des requêtes activée, la requête est analysée, et la liste étendue des produits basée sur la requête de recherche analysée est renvoyée.


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


Exemple d'ensemble de données

Cette page utilise l'ensemble de données suivant comme exemple. Seuls les champs nécessaires aux explications sont inclus.

Extension des requêtes

L'extension des requêtes augmente le rappel des termes de requête pour lesquels il y a peu de résultats, en particulier les requêtes de longue traîne.

Java

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

public static void searchProductsWithQueryExpansion(String query, int pageSize,
    Condition condition) throws IOException, InterruptedException {
  QueryExpansionSpec queryExpansionSpec = QueryExpansionSpec.newBuilder()
      .setCondition(condition)
      .build();

  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .setPageSize(pageSize)
      .setQueryExpansionSpec(queryExpansionSpec)
      .build();

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

Par exemple, si vous recherchez "Google Pixel 5" sans l'expansion de la requête, vous ne verrez peut-être que "google_pixel_5" dans les résultats. Avec l'expansion de la requête, vous pouvez également obtenir "google_pixel_4a_with_5g", "google_pixel_4a" et "google_pixel_5_case".