Expansão de consultas

A expansão de consultas é o afrouxamento incremental das restrições de consultas para incluir mais resultados quando não são encontrados resultados ou são encontrados poucos inicialmente. Isto leva a um ajuste do tamanho do resultado por consulta.

Quando não existem documentos relevantes para uma consulta, a expansão de consultas devolve documentos menos relevantes para garantir que a consulta não devolve zero resultados da pesquisa.

Tutorial de expansão de consultas

Este tutorial mostra como ativar a funcionalidade de expansão de consultas. Quando um comprador usa uma expressão de pesquisa ambígua ou com várias palavras, pode receber uma resposta vazia. Depois de ativar a expansão de consultas, o pedido é analisado e é devolvida a lista expandida de produtos com base na consulta de pesquisa analisada.


Para seguir orientações passo a passo para esta tarefa diretamente no editor do Cloud Shell, clique em Orientar-me:

Visita guiada


Exemplo de conjunto de dados

Esta página usa o seguinte conjunto de dados como exemplo. Expanda-o para ver os campos no conjunto de dados de descrição do produto de exemplo.

Exemplo de conjunto de dados de produtos

ID título marcas categorias price_info.price
"nest_mini_2nd_gen" "Nest Mini (2.ª geração)" ["Google", "Nest"] ["Nest > altifalantes e ecrãs"] 49,00
"nest_audio" "Nest Audio" ["Google", "Nest"] ["Nest > altifalantes e ecrãs"] 99,99
"nest_hub_max" "Nest Hub Max" ["Google", "Nest"] ["Nest > altifalantes e ecrãs"] 229,00
"nest_hub" "Nest Hub" ["Google", "Nest"] ["Nest > altifalantes e ecrãs"] 88,99
"google_home_max" "Google Home Max" ["Google", "Nest"] ["Nest > altifalantes e ecrãs"] 299,00
"google_home_mini" "Google Home Mini" ["Google", "Nest"] ["Nest > altifalantes e ecrãs"] 49,00
"google_pixel_5" "Google Pixel 5" ["Google", "Pixel"] ["Pixel > phones"] 699,00
"google_pixel_4a_with_5g" "Google Pixel 4a com 5G" ["Google", "Pixel"] ["Pixel > phones"] 499,00
"google_pixel_4a" "Telemóveis Google Pixel 4a" ["Google", "Pixel"] ["Pixel > phones"] 349,00
"google_pixel_stand" "Google Pixel Stand" ["Google", "Pixel"] ["Pixel > featured accessories"] 79,00
"google_pixel_buds" "Google Pixel Buds" ["Google", "Pixel"] ["Pixel > featured accessories"] 179,00
"google_pixel_5_case" "Capa para Google Pixel 5" ["Google", "Pixel"] ["Pixel > featured accessories"] 40,00
"google_pixel_4a_5g_case" "Capa para Google Pixel 4a (5G)" ["Google", "Pixel"] ["Pixel > featured accessories"] 40,00
"google_pixel_4a_case" "Capa para Google Pixel 4a" ["Google", "Pixel"] ["Pixel > featured accessories"] 40,00

Expansão de consultas

A expansão de consultas aumenta a capacidade de resposta para termos de consulta com poucos resultados, especialmente consultas de cauda longa.

Esta funcionalidade de pesquisa é gerada por uma especificação que determina as condições de expansão de consultas. Inclui uma opção pinUnexpandedResults que está desativada por predefinição. Quando definida como true, apresenta produtos não expandidos na parte superior dos resultados da pesquisa. A parte superior é seguida dos resultados expandidos.

Java

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

public static void searchProductsWithQueryExpansion(String query, int pageSize,
    Condition condition) throws IOException, InterruptedException {
  QueryExpansionSpec queryExpansionSpec = QueryExpansionSpec.newBuilder()
      .setCondition(condition)
      .build();

  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .setPageSize(pageSize)
      .setQueryExpansionSpec(queryExpansionSpec)
      .build();

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

Por exemplo, se pesquisar Google Pixel 5 sem expansão de consultas, o resultado é restrito a IDs google_pixel_5. No entanto, com a expansão de consultas, também pode receber IDs google_pixel_4a_with_5g, google_pixel_4a e google_pixel_5_case no conjunto de dados de descrição do produto de exemplo.