这是 Recommendations AI、Retail Search 和新的 Retail 控制台的文档。

提升效果

本页简要介绍了如何提升搜索结果。

示例数据集

本页以下面的数据集为例。仅包含说明所需的字段。

前提条件

如需了解过滤条件表达式语法,请参阅过滤和排序

增强

借助提升功能,您可以通过应用提升操作来控制结果的优先级,从而控制结果排序。

例如,如果您搜索“Google speaker”,那么您会收到无序的“nest_mini_2nd_gen”、“nest_audio”、“nest_hub_max”、“nest_hub”、“google_home_max”和“google_home_mini”。

Java

public static SearchResponse searchProductsWithBoostSpec(String query, int pageSize,
    String condition, float boostStrength) throws IOException, InterruptedException {
  SearchServiceClient searchClient = getSearchServiceClient();

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

  SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();

  searchClient.shutdownNow();
  searchClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

假设您要优先考虑价格较低的商品(小于 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”可能是前三个,而“nest_audio”、“nest_hub_max”和“google_home_max”可能是后三个。但无法保证特定顺序,这与按价格排序不同,如过滤和排序中所述。