Migliorare i risultati

Questa pagina illustra il potenziamento dei risultati di ricerca.

Tutorial sul boosting

Questo tutorial mostra alcuni esempi di potenziamento dei prodotti.


Per seguire una guida passo passo per questa attività direttamente nel Editor di Cloud Shell, fai clic su Procedura guidata:

Procedura guidata


Set di dati di esempio

Questa pagina utilizza il seguente set di dati come esempio. Solo i campi necessari per ulteriori spiegazioni.

Prerequisiti

Per la sintassi delle espressioni di filtro, consulta Filtrare e ordinare i risultati.

Boost

Con il boosting, puoi controllare il ranking dei risultati applicando un boost per dare la priorità o meno ai risultati.

Ad esempio, se cerchi "altoparlante Google", otterresti "nest_mini_2nd_gen", "nest_audio", "nest_hub_max", "nest_hub", "google_home_max" e "google_home_mini" in nessun ordine specifico.

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);
  }
}

Supponiamo che tu voglia dare la priorità ai prodotti più economici (meno di 95 $) e rimuovere la priorità da quelli costosi (più di 95 $). Puoi applica una specifica di booster come:

JSON

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

Nel risultato, "nest_mini_2nd_gen", "google_home_mini" e "nest_hub" potrebbe essere primi tre, mentre "nest_audio", "nest_hub_max" e "google_home_max" potrebbe essere ultime tre. Tuttavia, non è garantito alcun ordine specifico, diversamente dall'ordinamento per prezzo, come descritto in Filtrare e ordinare i risultati.