結果を向上させる

このページでは、検索結果の向上について説明します。

ブーストのチュートリアル

このチュートリアルでは、商品ブーストの例を説明します。


このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


データセットの例

このページでは、次のデータセットを例として使用します。説明に必要なフィールドのみが含まれています。

前提条件

フィルタ式の構文については、結果のフィルタリングと並べ替えをご覧ください。

ブースト

ブースティングでは、ブーストを適用して結果に優先順位を付けることで、結果のランキングを制御できます。

たとえば「Google スピーカー」を検索する場合、「nest_mini_2nd_gen」、「nest_audio」、「nest_hub_max」、「nest_hub」、「google_home_max」、および「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);
  }
}

安い商品(95 ドル未満)に優先し、高価な商品(95 ドル超)の優先度を下げる場合、ブースト仕様を以下のように適用できます。

JSON

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

結果で、「nest_mini_2nd_gen」、「google_home_mini」、「nest_hub」が最初の 3 つになり、「nest_audio」、「nest_hub_max」、「google_home_max」は最後の 3 つになります。ただし、フィルタと並べ替えの結果で説明されているように、特定の順序は保証されません。これは価格順とは異なります。