Ampliación de consultas

La ampliación de consultas es la relajación gradual de las restricciones de las consultas para incluir más resultados cuando inicialmente no se encuentran resultados o se encuentran muy pocos. Esto provoca un ajuste del tamaño de los resultados por consulta.

Cuando no haya ningún documento relevante para una consulta, la expansión de consultas devolverá documentos menos relevantes para asegurarse de que la consulta no devuelva cero resultados de búsqueda.

Tutorial sobre la ampliación de consultas

En este tutorial se explica cómo habilitar la función de ampliación de consultas. Cuando un comprador usa una frase de búsqueda ambigua o de varias palabras, puede que no obtenga ningún resultado. Una vez que se activa la ampliación de consultas, se analiza la solicitud y se devuelve la lista ampliada de productos basada en la consulta de búsqueda analizada.


Para seguir las instrucciones paso a paso de esta tarea directamente en el editor de Cloud Shell, haz clic en Ayúdame:

Guíame


Conjunto de datos de ejemplo

En esta página se usa el siguiente conjunto de datos como ejemplo. Amplíelo para ver los campos del conjunto de datos de descripción de producto de muestra.

Conjunto de datos de producto de ejemplo

ID title marcas categorías price_info.price
"nest_mini_2nd_gen" "Nest Mini (2.ª gen.)" ["Google", "Nest"] ["Nest > altavoces y pantallas"] 49 ILS
"nest_audio" "Nest Audio" ["Google", "Nest"] ["Nest > altavoces y pantallas"] 99,99
"nest_hub_max" "Nest Hub Max" ["Google", "Nest"] ["Nest > altavoces y pantallas"] 229,00
"nest_hub" "Nest Hub" ["Google", "Nest"] ["Nest > altavoces y pantallas"] 88,99
"google_home_max" "Google Home Max" ["Google", "Nest"] ["Nest > altavoces y pantallas"] 299,00
"google_home_mini" "Google Home Mini" ["Google", "Nest"] ["Nest > altavoces y pantallas"] 49 ILS
"google_pixel_5" "Google Pixel 5" ["Google", "Pixel"] ["Pixel > phones"] 699,00
"google_pixel_4a_with_5g" "Google Pixel 4a con 5G" ["Google", "Pixel"] ["Pixel > phones"] 499,00
"google_pixel_4a" "Teléfonos Google Pixel 4a" ["Google", "Pixel"] ["Pixel > phones"] 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 de 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

Ampliación de consultas

La expansión de consultas aumenta la cobertura de los términos de consulta con pocos resultados, especialmente en las consultas de cola larga.

Esta función de búsqueda se basa en una especificación que determina las condiciones de ampliación de las consultas. Incluye una opción pinUnexpandedResults que está desactivada de forma predeterminada. Si se selecciona true, se muestran los productos sin expandir en la parte superior de los resultados de búsqueda. A continuación, se muestran los resultados ampliados.

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 expansión de consulta, el resultado se limitará a los IDs de google_pixel_5. Sin embargo, con la ampliación de consultas, también puede obtener los IDs google_pixel_4a_with_5g, google_pixel_4a y google_pixel_5_case en el conjunto de datos de descripción de producto de ejemplo.