Esta é a documentação do Recommendations AI, da Pesquisa de varejo e do novo Console do Retail.

Otimize os resultados

Esta página descreve o aprimoramento dos resultados da pesquisa.

Tutorial de otimização

Neste tutorial, mostramos alguns exemplos de otimização de produto.


Para orientações passo a passo sobre esta tarefa diretamente no editor do Cloud Shell, clique em Orientações:

Orientação


As seções a seguir guiam você pelas mesmas etapas que você encontra clicando em Orientações.

Exemplo de conjunto de dados

Nesta página, usamos o conjunto de dados a seguir como exemplo. Somente os campos necessários para explicação são incluídos.

Pré-requisitos

Consulte Filtrar e ordenar os resultados da sintaxe da expressão de filtro.

Otimização

Com o aprimoramento, é possível controlar a classificação dos resultados aplicando um aumento para priorizar ou remover a prioridade dos resultados.

Por exemplo, se você pesquisar "alto-falante do Google", verá "nest_mini_2nd_gen", "nest_audio", "nest_hub_max", "nest_hub", "google_home_max" e "google_home_mini" em uma ordem específica.

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

Suponha que você queira priorizar os produtos mais baratos (menos de 95 dólares) e não priorizar os caros (mais de 95 dólares). Você pode aplicar uma especificação de otimização como:

JSON

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

No resultado, "nest_mini_2nd_gen", "google_home_mini" e "nest_hub" podem ser os três primeiros, enquanto "nest_audio" "nest_hub_max" e "google_home_max" podem ser últimos No entanto, nenhum pedido específico é garantido, o que é diferente do pedido por preço, conforme discutido em Filtrar e ordenar os resultados.