Búsqueda expandida

La expansión de la búsqueda es la relajación incremental de las restricciones de la búsqueda para incluir más resultados cuando inicialmente no se encuentran resultados o se encuentran muy pocos. Esto lleva a un ajuste del tamaño del resultado por búsqueda.

Cuando no hay documentos relevantes para una búsqueda, la expansión de la búsqueda devolverá documentos menos relevantes para garantizar que la búsqueda no devuelva cero resultados.

Instructivo de búsqueda expandida

En este instructivo, se muestra cómo habilitar la función de búsqueda expandida. Cuando un comprador usa una frase de búsqueda ambigua o de varias palabras, puede recibir una respuesta vacía. Después de activar la búsqueda expandida, se analiza la solicitud y se devuelve la lista expandida de productos según la búsqueda analizada.


Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:

GUIARME


Conjunto de datos de ejemplo

En esta página, se usa el siguiente conjunto de datos como ejemplo. Expándelo para ver los campos dentro del conjunto de datos de la descripción del producto de muestra.

Ejemplo de conjunto de datos de productos

ID título marcas categorías price_info.price
“nest_mini_2nd_gen” “Nest Mini (segunda generación)” [“Google”, “Nest”] ["Nest > bocinas y pantallas"] 49.00
“nest_audio” “Nest Audio” [“Google”, “Nest”] ["Nest > bocinas y pantallas"] 99.99
“nest_hub_max” “Nest Hub Max” [“Google”, “Nest”] ["Nest > bocinas y pantallas"] 229.00
“nest_hub” “Nest Hub” [“Google”, “Nest”] ["Nest > bocinas y pantallas"] 88.99
"google_home_max" "Google Home Max" [“Google”, “Nest”] ["Nest > bocinas y pantallas"] 299.00
"google_home_mini" "Google Home Mini" [“Google”, “Nest”] ["Nest > bocinas y pantallas"] 49.00
“google_pixel_5” “Google Pixel 5” [“Google”, “Pixel”] ["Pixel > teléfonos"] 699.00
“google_pixel_4a_with_5g” “Google Pixel 4a con 5G” [“Google”, “Pixel”] ["Pixel > teléfonos"] 499.00
“google_pixel_4a” “Teléfonos Google Pixel 4a” [“Google”, “Pixel”] ["Pixel > teléfonos"] 349.00
“google_pixel_stand” “Google Pixel Stand” [“Google”, “Pixel”] [“Pixel > accesorios destacados”] 79.00
“google_pixel_buds” “Google Pixel Buds” [“Google”, “Pixel”] [“Pixel > accesorios destacados”] 179.00
“google_pixel_5_case” “Funda de Google Pixel 5” [“Google”, “Pixel”] [“Pixel > accesorios destacados”] 40.00
“google_pixel_4a_5g_case” “Funda Google Pixel 4a (5G)” [“Google”, “Pixel”] [“Pixel > accesorios destacados”] 40.00
“google_pixel_4a_case” “Funda de Google Pixel 4a” [“Google”, “Pixel”] [“Pixel > accesorios destacados”] 40.00

Expansión de la búsqueda

La expansión de la búsqueda aumenta la recuperación de los términos de búsqueda con pocos resultados, en especial las búsquedas de cola larga.

Esta función de búsqueda se basa en una especificación que determina las condiciones de expansión de la búsqueda. Incluye una opción pinUnexpandedResults que está desactivada de forma predeterminada. Cuando se establece en true, muestra los productos que no son parte de la búsqueda expandida en la parte superior de los resultados de la búsqueda. A continuación, se muestran los 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 ejemplo, si buscas Google Pixel 5 sin búsqueda expandida, el resultado se restringirá a los IDs de google_pixel_5. Sin embargo, con la expansión de la búsqueda, también puedes obtener los IDs google_pixel_4a_with_5g, google_pixel_4a y google_pixel_5_case en el conjunto de datos de ejemplo de descripción del producto.