Bessere Ergebnisse erzielen

Auf dieser Seite wird die Optimierung der Suchergebnisse erläutert.

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

Weitere Informationen zur Syntax von Filterausdrücken finden Sie unter Ergebnisse filtern und sortieren.

Schub

Mit Boosting können Sie das Ranking der Ergebnisse steuern, indem Sie einen Boost auf Ergebnisse zu priorisieren oder ihre Priorität 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 $) priorisieren und die teuren Produkte (über 95 $) herabstufen. Sie können Boost-Spezifikation anwenden als:

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.