Résultats du boost

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

Utiliser le boosting

Ce tutoriel présente quelques exemples de boosting de produits.


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.

Prérequis

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

Adaptation vocale améliorée (boost)

Le boosting vous permet de contrôler le classement des résultats prioriser ou déprioriser 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

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchRequest.BoostSpec;
import com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProductsWithBoostSpec(String query, int pageSize,
    String condition, float boostStrength) throws IOException, InterruptedException {
  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();

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

Supposons que vous souhaitiez donner la priorité aux produits les moins chers (moins de 95 dollars) et déprioriser ceux qui sont les plus chers (supérieurs à 95 dollars). Vous pouvez appliquer une spécification d'optimisation comme suit:

JSON

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

Dans le résultat : "nest_mini_2nd_gen", "google_home_mini" et "nest_hub" pourrait être la les trois premières, tandis que "nest_audio", "nest_hub_max" et "google_home_max" pourrait être trois derniers. Toutefois, aucun ordre spécifique n'est garanti, ce qui diffère par prix, comme indiqué dans la section Filtrer et trier les résultats.