Ce document concerne Recommendations AI, Retail Search et la nouvelle console Retail.

Optimiser les résultats

Cette page décrit l'optimisation des résultats de recherche.

Tutoriel pour optimiser

Ce tutoriel présente des exemples d'optimisation de produit.


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

Visite guidée


La procédure décrite dans les sections suivantes, est la même que si vous cliquez sur 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.

Prérequis

Consultez la section Filtrer et trier les résultats pour connaître la syntaxe des expressions de filtre.

Adaptation vocale améliorée (boost)

L'optimisation vous permet de contrôler le classement des résultats en appliquant un optimiseur pour hiérarchiser ou hiérarchiser les résultats.

Par exemple, si vous recherchez "enceinte Google", vous obtenez "nest_mini_2nd_gen", "nest_audio", "nest_hub_max", "nest_hub", "google_home_max" et "google_home_mini" sans ordre spécifique.

Java

public static SearchResponse searchProductsWithBoostSpec(String query, int pageSize,
    String condition, float boostStrength) throws IOException, InterruptedException {
  SearchServiceClient searchClient = getSearchServiceClient();

  BoostSpec boostSpec = BoostSpec.newBuilder()
      .addConditionBoostSpecs(ConditionBoostSpec.newBuilder()
          .setCondition(condition)
          .setBoost(boostStrength)
          .build())
      .build();

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

  SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();

  searchClient.shutdownNow();
  searchClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

Supposons que vous souhaitiez privilégier les produits moins chers (moins de 95 dollars) et privilégier les produits coûteux (plus de 95 dollars). Vous pouvez appliquer une spécification de boost en tant que:

JSON

{
  condition_boost_specs {
    condition: "price: IN(*, 95.0e)"
    boost: 0.5
  }
  condition_boost_specs {
    condition: "price: IN(95.0e, *)"
    boost: -0.5
  }
}

En conséquence, "nest_mini_2nd_gent", et "nest_hub_mini" et "nest_hub" peuvent être les trois premiers, tandis que "nest_audio" et "nest_hub_max" peuvent être les trois derniers. Cependant, aucun ordre spécifique n'est garanti, ce qui est différent du classement par prix, comme indiqué dans la section Filtrer et trier les résultats.