Ce document concerne Recommendations AI, Retail Search et la nouvelle console Retail. Pour utiliser Retail Search dans la phase en disponibilité limitée, contactez le service commercial Cloud.

Si vous n'utilisez que Recommendations AI, restez dans la console Recommendations AI et consultez la documentation sur Recommendations AI.

Améliorer les résultats

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

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 Filtrage et tri pour connaître la syntaxe d'expression de filtre.

Boosting

Avec l'optimisation, vous pouvez contrôler le classement des résultats en appliquant une fonctionnalité pour augmenter ou réduire le niveau de priorité des 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 réduire le niveau de priorité donné aux produits onéreux (plus de 95 dollars), vous pouvez appliquer une fonction d'amélioration 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 ce résultat, "nest_mini_2nd_gen", "google_home_mini" et "nest_hub" pourraient être les trois premiers, tandis que "nest_audio", "nest_hub_max" et "google_home_max" pourraient être les trois derniers. Cependant, aucun ordre spécifique n'est garanti (contrairement au tri par prix) comme indiqué dans la section Filtrage et tri.