Bessere Ergebnisse erzielen

Sie können Einträge angeben, die bei Suchanfragen hervorgehoben werden sollen.

Anleitung zum Boosting

In dieser Anleitung finden Sie einige Beispiele für das Produkt-Boosting.


Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt im Cloud Shell-Editor zu erhalten:

Anleitung


Beispieldatensatz

Auf dieser Seite wird das folgende Dataset als Beispiel verwendet. Nur die zur Erläuterung erforderlichen Felder sind enthalten.

Vorbereitung

Informationen zur Syntax des Filterausdrucks finden Sie unter Ergebnisse filtern und sortieren.

Schub

Mit Boosting können Sie das Ergebnisranking steuern, indem Sie einen Boost anwenden, um die Ergebnisse zu priorisieren oder herabzustufen.

Wenn Sie beispielsweise nach "Google Lautsprecher" suchen, erhalten Sie in keiner bestimmten Reihenfolge "nest_mini_2nd_gen", "nest_audio", "nest_hub_max", "nest_hub", "google_home_max" und "google_home_mini".

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

Angenommen, Sie möchten die kostengünstigeren Produkte (weniger als 95 Dollar) priorisieren und die teuren Produkte (über 95 Dollar) herabstufen. Sie können eine Spezifikation für die Leistungssteigerung auf folgende Weise anwenden:

JSON

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

In der Ergebnisliste werden „nest_mini_2nd_gen“, „google_home_mini“ und „nest_hub“ möglicherweise als die ersten drei Ergebnisse angezeigt und „nest_audio“, „nest_hub_max“ und „google_home_max“ sind die letzten drei Ergebnisse. Es wird jedoch keine bestimmte Reihenfolge garantiert, die sich von der Sortierung nach Preis unterscheidet, wie unter Ergebnisse filtern und sortieren beschrieben.