Otimizar resultados

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

Tutorial de otimização

Este tutorial mostra alguns exemplos de otimização de produtos.


Para seguir as instruções da tarefa diretamente no editor do Cloud Shell, clique em Orientação:

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 para conferir a sintaxe da expressão de filtro.

Ensina

Com o reforço, é possível controlar a classificação dos resultados aplicando um reforço 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

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

Imagine que você queira priorizar os produtos mais baratos (menos de 95 dólares) e remover a prioridade dos mais caros (mais de 95 dólares). É possível aplicar uma especificação de aumento 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" pode ser três primeiras, enquanto "nest_audio", "nest_hub_max" e "google_home_max" pode ser as três últimas. No entanto, nenhum pedido específico é garantido, o que é diferente do pedido por preço, conforme discutido em Filtrar e ordenar resultados.