Migliora i risultati

Questa pagina illustra il miglioramento dei risultati di ricerca.

Tutorial sul boosting

Questo tutorial mostra alcuni esempi di potenziamento dei prodotti.


Per seguire le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, fai clic su Procedura guidata:

Aiuto


Set di dati di esempio

Questa pagina utilizza il seguente set di dati come esempio. Sono inclusi solo i campi necessari per la spiegazione.

Prerequisiti

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

Aumento

Con il boosting, puoi controllare il ranking dei risultati applicando un boost per assegnare una priorità ai risultati o ridurne la priorità.

Ad esempio, se cerchi "speaker Google", troveresti "nest_mini_2nd_gen", "nest_audio", "nest_hub_max", "nest_hub", "google_home_max" e "google_home_mini" in un ordine non 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 dollari) e ridurre la priorità di quelli più costosi (superiori a 95 dollari). Puoi applicare una specifica di boosting 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" potrebbero essere i primi tre, mentre "nest_audio", "nest_hub_max" e "google_home_max" potrebbero essere gli ultimi tre. Tuttavia, non è garantito un ordine specifico, a differenza dell'ordine per prezzo, come spiegato nella sezione Filtrare e ordinare i risultati.