Receber resultados da pesquisa

Nesta página, descrevemos as consultas básicas com pesquisa, incluindo pesquisas de consulta de texto, pesquisas 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 outro usuário final.

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

A Pesquisa fornece 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 com produtos que se encaixam nos parâmetros dos controles que você configurou, classificados por relevância e por maximização da receita.

No caso de uso de navegação, um comprador pode acessar o menu do seu site e navegar até uma categoria específica de produtos. A Pesquisa escolhe automaticamente a ordem de classificação que maximizar 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 que você configurou.

Tanto as solicitações de pesquisa de texto quanto de 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, capacidade de compra e personalização.

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

Ao fazer upload do 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.

Procurar pesquisas

Normalmente, procurar produtos usando a navegação no site produz resultados que têm a mesma relevância ou são classificados pelos itens mais vendidos. A Pesquisa usa a IA para otimizar como os resultados da navegação são classificados considerando popularidade, capacidade de compra e personalização.

Quando o método servingConfigs.search envia uma solicitação, a pesquisa considera isso 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 um evento baseado em navegação se ele tiver um campo userEvent.searchQuery vazio e um campo userEvent.pageCategories não vazio.

Para ter resultados corretos da pesquisa de navegação, os valores pageCategories e filter nas suas solicitações de pesquisa precisam corresponder exatamente aos valores pageCategories e filter nos eventos de usuário enviados. Se não corresponderem exatamente, os dados nas solicitações de pesquisa poderão não ser reconhecidos, o que pode afetar negativamente a qualidade do resultado.

Use as solicitações de pesquisa para receber 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 exibiçã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 ao serviço da Vertex AI para Pesquisa para varejo 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 de 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 nos resultados da pesquisa. Por exemplo, eles podem limitar o número de itens na resposta da pesquisa usando o recurso de tamanho da página ou ir 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


Paginação

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
}

Pesquisar níveis de desempenho

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

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

A página Qualidade de dados no console da Search for Retail oferece uma avaliação de quais requisitos você atendeu a cada nível. Para saber mais sobre como usar essa página para conferir a qualidade de dados e os níveis de desempenho da pesquisa, consulte Desbloquear níveis de desempenho de pesquisa.

Avalie a pesquisa de texto e navegue pelos resultados

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

Para mais informações sobre as configurações de exibição, consulte Sobre as 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 a página Avaliar.

Para visualizar os resultados retornados pela configuração de exibição, faça o seguinte:

  1. Acesse a página Avaliar no console da Pesquisa 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 do usuário em questão.

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

  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 durante a Black Friday, pode ver os resultados como eles seriam exibidos nesse dia.

  8. Opcional: selecione os atributos que serão mostrados 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 que aparece em Adicionar atributos depois da pesquisa inicial. Esses filtros podem incluir outros atributos além daqueles selecionados nesta etapa, como atributos dinâmicos.

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

  10. Clique em Pesquisar visualização ou pressione Enter em qualquer campo de entrada para ver os resultados.

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

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

  11. Opcional: clique no ícone de Grade ou Lista para alternar como os resultados da pesquisa são exibidos na visualização.

  12. Opcional: se você tiver selecionado atributos para aparecer ao lado dos resultados, selecione um ou mais valores 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 atributos diferentes são aplicados como um operador AND. Por exemplo, depois de selecionar as facetas "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 um atributo e também "algodão" ou "poliéster" como um atributo.

Procurar

  1. Acesse a página Avaliar no console da Pesquisa 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 conferir os resultados do usuário.

  4. Opcional: insira um ID de usuário para conferir os resultados dele.

  5. Opcional: para visualizar como ficariam os resultados com um filtro específico adicionado, insira uma string de filtro. Use a sintaxe da expressão de filtro especificada na documentação do 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 durante a Black Friday, pode ver os resultados como eles seriam exibidos nesse dia.

  7. Insira a categoria da página com os resultados da navegação que você está testando.

  8. Opcional: selecione os atributos que serão mostrados ao lado dos resultados e clique em OK para aplicá-los.

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

  9. Clique em Procurar prévia ou pressione Enter em qualquer campo de entrada para ver os resultados.

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

  10. Opcional: clique no ícone de Grade ou Lista para alternar a forma como os resultados são exibidos na visualização.

  11. Opcional: se você tiver selecionado atributos para aparecer ao lado dos resultados, selecione um ou mais valores 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 atributos diferentes são aplicados como um operador AND. Por exemplo, depois de selecionar as facetas "cor" e "material", você pode filtrar os resultados da pesquisa selecionando os valores de cor "azul" e "ouro" e os valores de material "algodão" e "poliéster". Os resultados precisam ter "azul" ou "ouro" como um atributo e também "algodão" ou "poliéster" como um atributo.

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