Receber resultados da pesquisa

Nesta página, descrevemos as consultas básicas com a pesquisa, incluindo pesquisas de consulta de texto, de navegação, paginação, otimização e resultados personalizados.

Nunca armazene em cache resultados personalizados de um usuário final nem retorne resultados personalizados para um usuário final diferente.

Sobre a pesquisa de texto e a navegação com a pesquisa

A pesquisa oferece recursos de pesquisa de consulta de texto e navegação.

No caso de uso de pesquisa de consulta de texto, um comprador pode inserir uma consulta baseada em texto no seu site. A pesquisa retorna uma resposta de pesquisa com produtos que se encaixam nos parâmetros dos controles que você configurou, classificados por relevância e maximização de receita.

No caso de uso de navegação, um comprador pode acessar o menu do seu site e navegar até uma categoria de produto específica. A pesquisa escolhe automaticamente a ordem de classificação que maximiza a receita aprendendo com o comportamento e as tendências do usuário. Os resultados da navegação podem ser ainda mais refinados pelos controles configurados.

As solicitações de pesquisa de texto e navegação usam o método servingConfigs.search.

Pesquisas de consulta de texto

Quando um usuário insere uma consulta de texto para pesquisar no seu site, a pesquisa classifica os possíveis resultados da pesquisa com base na relevância, popularidade, compra e personalização.

A pesquisa considera uma solicitação servingConfigs.search como baseada em texto quando ela tem um campo query não vazio.

Ao fazer upload de um evento do usuário, envie eventos de pesquisa de consulta de texto gerados pela pesquisa como eventos de usuário search. Se o evento tiver um campo userEvent.searchQuery não vazio e um campo userEvent.pageCategories vazio, a pesquisa o considerará um evento de pesquisa baseado em texto.

Navegar pelas pesquisas

Normalmente, procurar produtos usando a navegação no site gera resultados com a mesma relevância ou classificados pelos itens mais vendidos. A pesquisa aproveita a IA para otimizar como os resultados são classificados por popularidade, compra e personalização.

Quando o método servingConfigs.search envia uma solicitação, a pesquisa a considera uma solicitação de pesquisa de navegação se o campo query estiver vazio. Quando esse é o caso, os resultados são baseados nos campos filter e pageCategories, além de outras otimizações e personalizações, se disponíveis.

Ao fazer upload do evento do usuário, envie eventos de pesquisa de navegação gerados pela pesquisa como eventos de usuário search. A pesquisa considera um evento de usuário search como baseado em navegação se ele tiver um campo userEvent.searchQuery vazio e um campo userEvent.pageCategories não vazio.

Para receber os resultados corretos da pesquisa de navegação, os valores pageCategories e filter nas solicitações de pesquisa precisam corresponder exatamente aos valores pageCategories e filter nos eventos do usuário enviados. Se eles não corresponderem exatamente, os dados nas solicitações de pesquisa podem não ser reconhecidos, o que pode afetar negativamente a qualidade dos resultados. A pesquisa de navegação reconhece apenas o primeiro valor de categoria em pageCategories.

Use as solicitações de pesquisa para obter resultados para pesquisas de texto e de navegação. Para fazer uma solicitação de pesquisa, use o método servingConfigs.search.

Todas as solicitações de pesquisa exigem placement, que identifica o nome completo do recurso da configuração de veiculação que será usada. A configuração de veiculação determina quais configurações e controles associados afetam os resultados da pesquisa.

As solicitações de pesquisa de consulta de texto exigem um campo query não vazio.

As solicitações de pesquisa de navegação exigem um campo pageCategories não vazio.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProducts(String query) throws IOException, InterruptedException {
  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .build();

  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();
    System.out.println("Search response: " + searchResponse);
  }
}

Por padrão, um número razoável de resultados ordenados por relevância é retornado.

Para receber atributos de produto retornados com a resposta da pesquisa, forneça valores de atributo ao importar os dados do catálogo. O Product tem atributos de sistema predefinidos, como marca, cor e tamanho, para os quais você pode fornecer valores. Também é possível incluir atributos personalizados definidos com Product.attributes.

Tutorial de consultas

Neste tutorial, mostramos como enviar uma consulta de pesquisa baseada em texto para o serviço da Vertex AI para Pesquisa para Retail e analisar a resposta.


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

Orientações


Paginação

Use a paginação para diminuir o tempo da pesquisa e o tamanho das respostas enviadas.

Tutorial de paginação

Neste tutorial, mostramos como controlar a paginação em uma solicitação de pesquisa baseada em texto. Quando um comprador procura produtos em uma loja, ele pode melhorar a navegação pelos resultados da pesquisa. Por exemplo, é possível limitar o número de itens na resposta da pesquisa usando o recurso de tamanho de página ou pular para a página preferida usando o recurso de deslocamento.


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

Orientações


Paginar

Para pular de uma página para outra, use page_token ou offset, de acordo com seu caso de uso.

Para acessar a próxima página, use page_token. Por exemplo, suponha que você envie a SearchRequest a seguir.

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
}

A partir de SearchResponse, é possível conseguir os produtos resultantes com cinco principais relevâncias, além de um next_page_token.

JSON

{
  results: [
    products{...}, products{...}, products{...}, products{...}, products{...}
  ]
  next_page_token: "wY4ETNkBDOlVjZ0YWLzUmM40SMhVjMtADMwATL5UGN5MGZlVDJaIQ5LaYsQUw9fC6lIwgE1EgC"
  total_size: 100
  search_token: "NtQKDAiXt4_3BRDCg_jnARABGiQ1ZWRjOTRlOC0wMDAwLTI1YTEtODJlMy1mNGY1ZTgwZDUxOGM"
}

Para conseguir os produtos de resultado com os próximos cinco valores (de 6º a 10º), você precisa definirpage_token usando o mesmoplacement ,visitor_id equery comonext_page_token da anteriorSearchResponse de dados.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProducts_withNextPageToken(String query, int pageSize)
    throws IOException, InterruptedException {
  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchRequest firstRequest = SearchRequest.newBuilder()
        .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
        .setBranch(DEFAULT_BRANCH_NAME)
        .setVisitorId(VISITOR_ID)
        .setQuery(query)
        .setPageSize(pageSize)
        .build();

    SearchResponse firstResponse = searchClient.search(firstRequest).getPage()
        .getResponse();
    System.out.println("First search response: " + firstResponse);

    SearchRequest secondRequest = SearchRequest.newBuilder()
        .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
        .setBranch(DEFAULT_BRANCH_NAME)
        .setVisitorId(VISITOR_ID)
        .setQuery(query)
        .setPageSize(pageSize)
        .setPageToken(firstResponse.getNextPageToken())
        .build();

    SearchResponse secondResponse = searchClient.search(secondRequest).getPage()
        .getResponse();
    System.out.println("Second search response: " + secondResponse);
  }
}

Neste exemplo, SearchRequest tem esta aparência:

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
  page_token: "wY4ETNkBDOlVjZ0YWLzUmM40SMhVjMtADMwATL5UGN5MGZlVDJaIQ5LaYsQUw9fC6lIwgE1EgC"
}

Em outros casos, em vez de navegar de uma página para outra ou de ver os resultados com maior relevância, você pode ir diretamente para uma posição específica com offset.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProducts_withOffset(String query, int pageSize,
    int offset) throws IOException, InterruptedException {
  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .setPageSize(pageSize)
      .setOffset(offset)
      .build();

  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();
    System.out.println("Search response: " + searchResponse);
  }
}

Por exemplo, se quiser a 10ª página dos resultados, quando o tamanho da página for 5, defina o offset como 45, que é calculado por (10 - 1) * 5.

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
  offset: 45
}

Níveis de desempenho de pesquisa

A pesquisa oferece vários níveis de desempenho que melhoram cada vez mais os resultados. Por exemplo, para os casos de uso de pesquisa de consulta de texto, os resultados podem ser baseados apenas na relevância. À medida que você tem acesso a níveis de desempenho mais avançados, a pesquisa pode retornar resultados com base em relevância, popularidade, otimização de receita e personalização.

A pesquisa desbloqueia automaticamente níveis de desempenho mais altos quando você faz upload de dados de eventos do usuário e do catálogo que atendem aos requisitos mínimos de cada nível.

A página Qualidade de dados no console da Pesquisa para Retail oferece uma avaliação de quais requisitos você atendeu para cada nível. Para mais informações sobre como usar esta página para visualizar a qualidade de dados e os níveis de desempenho da pesquisa, consulte Desbloquear níveis de desempenho de pesquisa.

Avaliar a pesquisa de texto e os resultados da navegação

Antes de atualizar o código do seu site para solicitar a pesquisa de texto ou navegar pelos resultados, visualize os resultados para confirmar se a configuração de veiculação está funcionando conforme o esperado.

Para mais informações sobre configurações de exibição, consulte Sobre configurações de exibição.

É possível visualizar os resultados da configuração de exibição na página Avaliar ou acessando a página Detalhes de uma configuração de exibição no console e clicando na guia Avaliar. As etapas a seguir mostram como visualizar na página Avaliar.

Para visualizar os resultados retornados pela configuração de veiculação:

  1. Acesse a página Avaliar no console do Search for Retail.

    Acessar a página "Avaliar"

  2. Clique na guia Pesquisar.

  3. Selecione a configuração de veiculação que você quer visualizar.

  4. Selecione a ramificação do catálogo que contém o catálogo que você quer visualizar.

  5. Opcional: insira um ID de visitante para visualizar os resultados da pesquisa desse usuário.

  6. Opcional: insira um ID do usuário para visualizar os resultados da pesquisa.

  7. Opcional: insira um horário de pesquisa para visualizar os resultados que apareceriam no horário especificado.

    Por exemplo, se você promoveu determinados produtos para a Black Friday, poderá ver os resultados na forma como seriam naquele dia.

  8. Opcional: selecione os atributos a serem exibidos ao lado dos resultados da pesquisa e clique em OK para aplicá-los.

    Os atributos selecionados são usados para gerar uma lista de filtros de atributos que aparecem em Adicionar atributos depois que você realiza a pesquisa inicial. Esses filtros podem incluir outros atributos além daqueles selecionados nesta etapa, como os dinâmicos.

  9. Insira uma consulta de pesquisa baseada em texto para visualizar os resultados da pesquisa.

  10. Clique em Visualização da pesquisa ou pressione Enter em qualquer campo de entrada para conferir os resultados.

    Os resultados da pesquisa são exibidos com as respectivas imagens em miniatura disponíveis.

    Se a pesquisa acionar um controle de redirecionamento, um aviso vai aparecer mostrando o URI de redirecionamento.

  11. Opcional: clique no ícone de grade ou de lista para mudar como os resultados da pesquisa são mostrados na visualização.

  12. Opcional: se você selecionou atributos para aparecer ao lado dos resultados, selecione um ou mais valores de atributo na lista para filtrar os resultados por esses valores. Os resultados são atualizados automaticamente após a seleção.

    Quando você seleciona vários valores do mesmo atributo, eles são aplicados como um operador OR, e os valores em diferentes atributos são aplicados como um operador AND seria. Por exemplo, depois de selecionar os atributos "cor" e os valores "azul" e "ouro", e os valores de material "algodão" e "poliéster". Os resultados da pesquisa precisam ter "azul" ou "ouro" como atributo, além de "algodão" ou "poliéster" como atributo.

Procurar

  1. Acesse a página Avaliar no console do Search for Retail.

    Acessar a página "Avaliar"

  2. Clique na guia Procurar.

  1. Selecione a configuração de veiculação que você quer visualizar.

  2. Selecione a ramificação do catálogo que contém o catálogo que você quer visualizar.

  3. Opcional: insira um ID de visitante para visualizar os resultados desse usuário.

  4. Opcional: insira um ID do usuário para visualizar os resultados desse usuário.

  5. Para visualizar como ficariam os resultados com um filtro específico, insira uma string de filtro. Use a sintaxe da expressão de filtro especificada na documentação Filter.

  6. Opcional: insira um tempo de navegação para visualizar os resultados que apareceriam no horário especificado.

    Por exemplo, se você promoveu determinados produtos para a Black Friday, poderá ver os resultados na forma como seriam naquele dia.

  7. Insira a categoria de página para a qual você está testando os resultados de navegação.

  8. Opcional: selecione os atributos a serem exibidos ao lado dos resultados e clique em OK para aplicá-los.

    Os atributos selecionados são usados para gerar uma lista de filtros de atributos que aparecem em Adicionar atributos depois que você realiza a pesquisa inicial. Esses filtros podem incluir outros atributos além daqueles selecionados nesta etapa, como os dinâmicos.

  9. Clique em Browse preview ou pressione Enter em qualquer campo de entrada para conferir os resultados.

    Os resultados são exibidos com as respectivas imagens de miniatura disponíveis.

  10. Opcional: clique no ícone de grade ou de lista para mudar como os resultados são mostrados na visualização.

  11. Opcional: se você selecionou atributos para aparecer ao lado dos resultados, selecione um ou mais valores de atributo na lista para filtrar os resultados por esses valores. Os resultados são atualizados automaticamente após a seleção.

    Quando você seleciona vários valores do mesmo atributo, eles são aplicados como um operador OR, e os valores em diferentes atributos são aplicados como um operador AND seria. Por exemplo, depois de selecionar os atributos "cor" e "material", filtre os resultados da pesquisa selecionando os valores de cor "azul" e "ouro" e os valores de material "algodão" e "poliéster". Seus resultados precisam ter "azul" ou "ouro" como atributo, além de "algodão" ou "poliéster" como atributo.

Para ver a página Detalhes da configuração de veiculação que você está visualizando, clique em Visualizar configuração de veiculação no campo Selecionar configuração de veiculação.