Ergebnisse verbessern

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

Anleitung zum Boosting

In dieser Anleitung findest du 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

Beim Boosting können Sie die Ergebnisrangfolge steuern, indem Sie die Ergebnisse erhöhen oder herabstufen.

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 günstigeren Produkte (unter 95 $) priorisieren und die teuren Produkte (über 95 $) weniger priorisieren. Sie können eine Optimierungsspezifikation folgendermaßen anwenden:

JSON

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

Im Ergebnis sind „nest_mini_2nd_gen“, „google_home_mini“ und „nest_hub“ die ersten drei, während „nest_audio“, „nest_hub_max“ und „google_home_max“ die letzten drei sind. Es wird jedoch keine bestimmte Reihenfolge garantiert, die sich von der Sortierung nach Preis unterscheidet (siehe Ergebnisse filtern und sortieren).