Expansión de la búsqueda

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 búsqueda expandida muestra documentos menos relevantes para garantizar que no se muestren cero resultados de la búsqueda.

A diferencia de la creación de facetas dinámicas o los controles de publicación, por ejemplo, la búsqueda expandida no se puede configurar directamente en la consola de Google Cloud . En cambio, deberás configurar la búsqueda expandida de forma programática para cada solicitud de búsqueda. Sigue leyendo para descubrir cómo configurar la búsqueda expandida en la API.

Instructivo de búsqueda expandida

En este instructivo, se muestra cómo habilitar la función de expansión de la búsqueda. 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


Descripción general de la búsqueda expandida

La expansión de la búsqueda es una función potente diseñada para mejorar la recuperación de la búsqueda y evitar situaciones de cero resultados, en especial para las búsquedas de usuarios complejas o de cola larga.

En lugar de no devolver resultados cuando no se encuentra una coincidencia exacta en el catálogo de productos, la búsqueda expandida identifica y muestra productos relacionados o alternativos. Esto mejora la experiencia del usuario y puede aumentar los porcentajes de conversiones.

Estos son los casos de uso clave de la búsqueda expandida:

  • Búsquedas de cola larga: Para las búsquedas muy específicas, como leche orgánica con alto contenido de proteínas y bajo contenido de grasa para diabéticos,es posible que el catálogo no tenga una coincidencia perfecta. La expansión de la búsqueda puede devolver productos que coincidan con partes de la intención, como productos etiquetados con atributos o valores de atributos de leche apta para diabéticos o leche con alto contenido de proteínas.
  • Productos alternativos: Si los usuarios buscan una marca o un producto que no se encuentra en el catálogo, como Café Starbucks de 100 ml, la búsqueda expandida puede sugerir marcas de café alternativas disponibles para la compra, lo que evita una búsqueda sin resultados.

En las siguientes secciones, se describen las funciones, el mecanismo de activación y los detalles de configuración de la función de expansión de consultas en Vertex AI Search for Commerce, con un enfoque específico en el rol fundamental del filtro canónico.

Mecanismo de activación de la expansión de la búsqueda

La decisión de activar la búsqueda expandida o una búsqueda determinada se automatiza y se basa en una regla de filtro canónica que se puede configurar rápidamente.

  • Condición de activación: La expansión de la búsqueda solo se activa si la búsqueda inicial con la consulta de filtro canónica arroja menos de 3 resultados de productos.
  • Umbral: Este umbral de 3 predeterminado se puede cambiar. Funciona bien para la mayoría de los casos de uso de comercio electrónico, ya que garantiza que la búsqueda expandida se active solo si el conjunto de resultados inicial es realmente disperso.

Configura la búsqueda expandida en la API

La expansión de la búsqueda se configura de forma programática por solicitud a través de la API de la siguiente manera:

  • Configuración de la API: Controlas la búsqueda expandida incluyendo el objeto queryExpansionSpec en tu SearchRequest.

  • Configuración: Dentro de queryExpansionSpec, configura el campo condition en AUTO para habilitar la función o en DISABLED para desactivarla, que es el valor predeterminado si no se especifica.

  • Fijación: De manera opcional, puedes establecer pinUnexpandedResults en true en la solicitud para garantizar que las coincidencias exactas de la búsqueda original aparezcan en la parte superior de los resultados de la búsqueda, seguidas de los resultados expandidos. Para obtener más información, consulta la página sobre fijar.

Configura filtros canónicos

Para que la búsqueda expandida se active de manera eficaz, debes configurar correctamente el parámetro canonical_filter en tu solicitud de búsqueda.

Para implementar correctamente la búsqueda expandida, es fundamental comprender los dos parámetros de filtro principales en una solicitud de búsqueda: los filtros de nivel superior y los filtros canónicos.

  • Filtro de nivel superior (filter): Es el filtro principal que se aplica a los resultados de la búsqueda antes de que se muestren al usuario. Es una combinación de dos capas potenciales:

    • Filtro comercial o básico: Son reglas predefinidas que se aplican a todas las búsquedas, a menudo sin la entrada directa del usuario, como inStock=TRUE, category="groceries", storeId="XYZ".

    • Filtros de facetas seleccionados por el usuario: Son los filtros que el usuario aplica de forma dinámica mientras interactúa con la interfaz de búsqueda, por ejemplo, cuando selecciona filtros de facetas para brand="Adidas", size="L".

  • Filtros canónicos (canonical_filter): Es un filtro de propósito especial que usa exclusivamente el módulo de decisión de expansión de la búsqueda. Su único trabajo es definir la vista del catálogo con la que se evalúa la condición de activación de la búsqueda expandida (menos de cinco resultados).

Funciones de filtro canónico principal

El filtro canónico está diseñado para distinguir entre un resultado de búsqueda orgánicamente deficiente y un conjunto de resultados que el usuario redujo intencionalmente.

Situación 1

  • Recorrido del usuario: El usuario busca camiseta y obtiene miles de resultados. Hay un business_filter predeterminado, de modo que, por ejemplo, filtra solo los productos en stock y los productos que coinciden con un atributo personalizado a nivel de la tienda. Luego, el usuario aplica filtros de facetas para brand="Adidas" y size="L", lo que reduce el recuento de resultados a dos.
  • Si canonical_filter es igual a filter: El sistema de decisión de expansión de la búsqueda solo vería 2 resultados y activaría incorrectamente la búsqueda expandida, lo que mostraría productos relacionados, pero irrelevantes, como camisetas de Nike, lo que no respetaría el filtrado explícito del usuario.
  • El parámetro de configuración correcto es canonical_filter = business filter: La decisión de expansión de la búsqueda debe tomarse en función de la búsqueda inicial, sin incluir las facetas seleccionadas por el usuario.

Situación 2

  • Recorrido del usuario: El usuario busca camiseta de Adidas con estampados gráficos negros y solo se muestran uno o dos resultados, si es que hay alguno. Hay un business_filter predeterminado que, por ejemplo, filtra solo los productos en stock y los productos que coinciden con un atributo personalizado a nivel de la tienda.
  • Si canonical_filter no está configurado o no se configuró correctamente, la búsqueda con el filtro canónico podría encontrar productos que coincidan con la búsqueda, pero que estén agotados o que sean de una tienda diferente, lo que significa que tienen un valor diferente del atributo personalizado a nivel de la tienda. En este caso, no se activa la búsqueda expandida.
  • El parámetro de configuración correcto es canonical_filter = business filter. La decisión de expansión de la búsqueda encontraría menos de tres productos para la búsqueda larga determinada y, luego, activaría una búsqueda expandida y mostraría productos relacionados con la búsqueda original, es decir, productos que están en stock y coinciden con el atributo a nivel de la tienda. Por lo tanto, los resultados de la búsqueda se expandirían para incluir camisetas gráficas estampadas de color negro de una marca diferente, camisetas gráficas estampadas de otros colores o productos de camisetas de la marca en la consulta.

Prácticas recomendadas para la expansión de consultas

El filtro canónico casi siempre debe configurarse para que sea idéntico a tu filtro comercial o básico. Esto garantiza que el módulo de expansión de la búsqueda evalúe el potencial de la búsqueda en función de la misma vista amplia del catálogo que ven inicialmente los usuarios antes de comenzar a aplicar facetas.

Flujo del proceso de expansión de consultas y búsqueda de extremo a extremo

Cuando se realiza una solicitud de búsqueda, se producen varios procesos paralelos:

  • Se recibió la solicitud: La API recibe la solicitud de búsqueda que contiene la búsqueda, el filter principal y el canonical_filter.

  • Búsqueda de decisiones de expansión de la búsqueda: En paralelo, el módulo de decisiones de expansión de la búsqueda realiza su propia búsqueda interna con la búsqueda combinada con el filtro canónico.

  • Verificación del recuento de resultados: El módulo verifica la cantidad de productos que se muestran en su búsqueda interna.

    • Si hay cinco o más resultados: No se activa la expansión de la búsqueda. Los resultados de la búsqueda estándar pasan al paso de filtrado final.
    • Si hay menos de cinco resultados: Se activa la expansión de la búsqueda . El modelo relaja la búsqueda de forma sistemática para encontrar productos relacionados. Por ejemplo, el modelo podría encontrar teléfonos Pixel 5, teléfonos Pixel 4, auriculares Pixel o incluso teléfonos Samsung.
  1. Filtrado final: El conjunto de productos (el conjunto original o el conjunto expandido a partir de la búsqueda expandida) se pasa a la etapa final. En este caso, se aplica estrictamente el filtro de nivel superior, que contiene reglas de negocio y las facetas seleccionadas por el usuario.
  • Respuesta enviada: La lista final filtrada de productos se devuelve en la respuesta de la API.

Caso de uso avanzado de la activación selectiva de la expansión de la búsqueda

Puedes configurar los filtros de forma estratégica para habilitar o inhabilitar la búsqueda expandida en partes específicas de tu catálogo.

Considera el caso de un catálogo grande que contiene comestibles, productos electrónicos y ropa de moda. En este caso, debes tener en cuenta los siguientes aspectos.

Objetivo

Habilita la búsqueda expandida para las búsquedas de comestibles difíciles de encontrar o escasos, pero muestra cero resultados para los artículos electrónicos o de moda. La necesidad comercial aquí es habilitar la búsqueda expandida de forma selectiva solo en la parte de comestibles.

Configuración

Para este caso de uso, la búsqueda expandida selectiva se puede configurar de la siguiente manera:

  • canonical_filter: Configúralo como amplio. Debe incluir todas las categorías: comestibles, electrónica y moda, además de cualquier regla básica, como la disponibilidad de stock, que defina el filtro canónico con category="groceries" OR category="electronics" OR category="fashion") AND inStock=TRUE.
  • filter: Configúralo como estrecho, según el contexto del usuario. Para un usuario en la sección de supermercado, el filtro sería category="groceries" AND inStock=TRUE.

Cómo funciona

Búsqueda expandida selectiva funciona de la siguiente manera en este caso:

  • El usuario busca "iPhone 20": El módulo de búsqueda expandida usa el filtro canonical_filter amplio, encuentra modelos de iPhone existentes (menos de 5 resultados) y decide no activar la búsqueda expandida. Luego, los resultados de la búsqueda estándar (iPhone existentes) se pasan al filtro principal, que los bloquea porque category="electronics" no coincide con category="groceries". El usuario ve correctamente cero resultados.
  • El usuario busca *leche para diabéticos con alto contenido de proteínas: El módulo de expansión de la búsqueda usa la concordancia amplia canonical_filter y encuentra menos de 5 resultados, lo que activa la búsqueda expandida para encontrar productos lácteos relacionados. Estos productos se pasan al filtro principal. Dado que coinciden con category="groceries", estos productos se devuelven correctamente al usuario.

Si manipulas el alcance de canonical_filter (la vista de toma de decisiones) y el filter principal (la vista de salida final), obtendrás un control preciso sobre la experiencia de búsqueda.

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 muestra de la descripción del producto.

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.