Cómo obtener resultados de búsqueda

En esta página, se describen las consultas básicas con la búsqueda, incluidas las búsquedas de texto, las búsquedas de exploración, la paginación, la optimización y los resultados personalizados.

Nunca almacenes en caché los resultados personalizados de un usuario final ni muestres resultados personalizados a un usuario final diferente.

La relevancia es diferente de la coincidencia. La coincidencia consiste en encontrar productos candidatos en el índice que correspondan a la consulta de búsqueda del usuario. La relevancia, por otro lado, es un grado de coincidencia. Implica clasificar esos productos de una manera que satisfaga mejor la intención y las necesidades del usuario. Vertex AI Search para venta minorista usa técnicas para mejorar la coincidencia y la relevancia para brindar una mejor experiencia de búsqueda general a los usuarios que satisface las necesidades de los minoristas.

Vertex AI Search for Retail utiliza la relevancia como valor predeterminado en la búsqueda. Sin embargo, la búsqueda también está optimizada para mostrar elementos marginalmente relevantes más arriba en los resultados de la búsqueda para proporcionar a los minoristas resultados de la búsqueda más segmentados y aumentar el potencial de conversión de los eventos del usuario.

Estas funciones de búsqueda agregadas optimizan el algoritmo de relevancia predeterminado y proporcionan funciones no predeterminadas ajustadas al perfil de uso de cada minorista, incluidas las siguientes:

  • Opciones para ordenar los resultados, como por precio, artículos mejor calificados o más vendidos. La búsqueda no predeterminada se personaliza para mostrar resultados de búsqueda específicos con las variantes de productos correctas. Por ejemplo, para mostrar la variante más económica o más costosa cuando se ordene por precio.

  • Aplicación automática de un filtro de relevancia más estricto para los eventos de usuario que no son predeterminados

  • Habilitación de controles de aumento o ocultación de la intensidad ajustable para ajustar los resultados de la búsqueda

La búsqueda proporciona capacidades de búsqueda de consultas de texto y de exploración.

En el caso de uso de búsqueda de consultas de texto, un comprador podría ingresar una consulta basada en texto en tu sitio. La Búsqueda muestra una respuesta de búsqueda que contiene productos que se ajustan a los parámetros de los controles que configuraste, ordenados por relevancia y maximización de los ingresos.

En el caso de uso de navegación, un comprador puede ir al menú de tu sitio y navegar a una categoría de producto específica. La Búsqueda elige automáticamente el orden de clasificación que maximiza los ingresos a partir del aprendizaje del comportamiento y las tendencias de los usuarios. Los controles que configuraste te permiten definir mejor los resultados de la búsqueda.

Tanto las solicitudes de búsqueda de texto como las de búsqueda de navegación usan el método servingConfigs.search.

Búsquedas de consultas de texto

Cuando un usuario ingresa una búsqueda de texto para buscar en tu sitio, la búsqueda ordena los posibles resultados de la búsqueda en función de la relevancia, la popularidad, la capacidad de compra y la personalización.

La Búsqueda considera una solicitud servingConfigs.search como una solicitud de búsqueda basada en texto si tiene un campo query no vacío.

Cuando subas eventos de usuario, envía los eventos de búsqueda de consultas de texto que genera la búsqueda como eventos de usuario search. Si el evento tiene un campo userEvent.searchQuery no vacío y un campo userEvent.pageCategories vacío, la búsqueda lo considera un evento de búsqueda basado en texto.

Explorar búsquedas

La función Explorar usa la navegación del sitio para generar resultados de la búsqueda de igual relevancia, ordenados por los artículos más vendidos. La Búsqueda aprovecha la IA para optimizar la forma en que se ordenan los resultados de la exploración teniendo en cuenta la popularidad, la capacidad de compra y la personalización.

La publicación de solicitudes y eventos con un campo de consulta vacío y campos page_categories no vacíos se considera solicitudes de navegación y eventos de usuario. El campo page_categories especifica la página de navegación en sí. Cuando el método servingConfigs.search envía una solicitud, la búsqueda la considera una solicitud de búsqueda de navegación si el campo query está vacío. Cuando ese es el caso, los resultados se basan en los campos filter y pageCategories, así como en una mayor optimización y personalización si está disponible.

Para obtener resultados de búsqueda de navegación correctos, ten en cuenta lo siguiente:

  • Los valores de pageCategories y filter de tus solicitudes de búsqueda deben coincidir exactamente con los valores de pageCategories y filter de los eventos de usuario que subiste. Valores de filter en tus eventos del usuario subidos Si los parámetros de las solicitudes no coinciden con los parámetros de los eventos, el modelo de reclasificación basado en clics que se aprendió de los eventos no tendrá un buen rendimiento para esta consulta específica y afectará de forma negativa la calidad de los resultados.

  • Vertex AI Search para la venta minorista clasifica un evento de usuario search como un evento basado en la navegación si tiene un campo userEvent.searchQuery vacío y un campo userEvent.pageCategories no vacío. Por este motivo, debes asegurarte de enviar los eventos de navegación que genera Vertex AI Search for Retail como eventos de usuario search cuando los subas.

  • Un filtro de navegación debe ser válido y, para cada consulta de navegación, indicar qué productos pertenecen a la categoría de producto en la que el usuario está navegando. Para lograr esta configuración, el ID de categoría debe definirse en los campos filter y page_category. Por ejemplo, si deseas que los resultados de la búsqueda se segmenten para Casa y jardín. En primer lugar, tener solo un valor de filter de "in-stock" no define la búsqueda lo suficiente como para proporcionar resultados de navegación óptimos. Para proporcionar resultados de la búsqueda restringidos a Casa y jardín, no solo debes configurar "Home \& Garden" en la categoría de la página, sino también en el filtro con categories: ANY("Home & Garden"). Si no defines la categoría en la parte del filtro, es probable que los resultados de la navegación sean demasiado amplios y que incluyan muchos artículos que no pertenecen a la categoría Hogar y jardín.

Puedes configurar la categoría en ambos, como en este ejemplo:

JSON

page_category: "Home & Garden"
filter: "(availability: ANY("IN_STOCK")) AND (categories: ANY("Home & Garden"))"

De lo contrario, como la función de exploración funciona con consultas de cadenas vacías, los productos de una categoría determinada no se mostrarán automáticamente en los resultados de una categoría de página determinada. En otras palabras, si el usuario final navega sin especificar nada con una búsqueda de texto, es posible que los resultados que se muestran no sean relevantes, incluso si el usuario navega a una página de categoría.

Usa las solicitudes de búsqueda para obtener resultados de búsquedas de texto y de navegación. Para realizar una solicitud de búsqueda, usa el método servingConfigs.search.

Todas las solicitudes de búsqueda requieren placement, que identifica el nombre completo del recurso de la configuración de entrega que se usará. La configuración de entrega determina qué parámetros de configuración y controles asociados afectan los resultados de la búsqueda.

Las solicitudes de búsqueda de consultas de texto requieren un campo query no vacío.

Las solicitudes de búsqueda de exploración requieren un campo pageCategories no vacío.

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);
  }
}

De forma predeterminada, se muestra una cantidad razonable de resultados ordenados por relevancia.

Para que los atributos de producto se muestren con la respuesta de la búsqueda, asegúrate de proporcionar valores de atributos cuando importes tus datos de catálogo. Product tiene atributos del sistema predefinidos, como la marca, el color y el tamaño, para los que puedes proporcionar valores. También puedes incluir atributos personalizados que definas con Product.attributes.

Instructivo de búsqueda

En este instructivo, se muestra cómo enviar una búsqueda basada en texto al servicio de Vertex AI Search para Retail y analizar la respuesta.


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

GUIARME


Paginación

Usa la paginación para disminuir el tiempo de búsqueda y el tamaño de las respuestas que se envían.

Instructivo de paginación

En este instructivo, se muestra cómo controlar la paginación en una solicitud de búsqueda basada en texto. Cuando un comprador busca productos en una tienda, puede mejorar su navegación a través de los resultados de la búsqueda. Por ejemplo, pueden limitar la cantidad de elementos en la respuesta de la búsqueda con la función de tamaño de página o saltar a su página preferida con la función de desplazamiento.


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

GUIARME


Paginar

Para pasar de una página a otra, usa page_token o offset, según tu caso de uso.

Para ir a la siguiente página, puedes usar page_token. Por ejemplo, supongamos que envías el siguiente SearchRequest.

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
}

Desde SearchResponse, puedes obtener los productos resultantes con las 5 relevancias principales, junto con un next_page_token.

JSON

{
  results: [
    products{...}, products{...}, products{...}, products{...}, products{...}
  ]
  next_page_token: "wY4ETNkBDOlVjZ0YWLzUmM40SMhVjMtADMwATL5UGN5MGZlVDJaIQ5LaYsQUw9fC6lIwgE1EgC"
  total_size: 100
  search_token: "NtQKDAiXt4_3BRDCg_jnARABGiQ1ZWRjOTRlOC0wMDAwLTI1YTEtODJlMy1mNGY1ZTgwZDUxOGM"
}

Para obtener los productos del resultado con las 5 relevancias siguientes (de la 6 a la 10), debes configurarpage_token usando los mismos placement, visitor_id y query como next_page_token de SearchResponse anterior.

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);
  }
}

En este ejemplo, SearchRequest se ve así:

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"
}

En otros casos, en lugar de navegar de una página a la otra o de obtener los resultados más relevantes, puedes ir directamente a una posición determinada con 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 ejemplo, si quieres la décima página de los resultados, cuando el tamaño de la página es 5, entonces puedes establecer que offset sea 45, que se calcula mediante (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
}

Niveles de rendimiento de la Búsqueda

La Búsqueda ofrece varios niveles de rendimiento de la búsqueda que mejoran cada vez más tus resultados. Por ejemplo, en el caso de los casos de uso de búsqueda de consultas de texto, los resultados pueden basarse únicamente en la relevancia. A medida que desbloqueas niveles de rendimiento más avanzados, la búsqueda puede mostrar resultados basados en la relevancia, la popularidad, la optimización de ingresos y la personalización.

La Búsqueda desbloquea automáticamente niveles de rendimiento más altos cuando subes datos de catálogo y eventos del usuario que cumplen con los requisitos mínimos de cada nivel.

La página Calidad de los datos de la consola de Búsqueda para venta minorista proporciona una evaluación de los requisitos que cumpliste para cada nivel. Para obtener más información sobre el uso de esta página para ver los niveles de calidad de los datos y el rendimiento de la búsqueda, consulta Desbloquea los niveles de rendimiento de la búsqueda.

Evalúa la búsqueda de texto y explora los resultados

Antes de actualizar el código de tu sitio web para solicitar una búsqueda de texto o explorar los resultados de la búsqueda, puedes obtener una vista previa de los resultados para confirmar que tu configuración de publicación funcione como esperas.

Para obtener más información sobre las configuraciones de publicación, consulta Acerca de las configuraciones de publicación.

Puedes obtener una vista previa de los resultados de la configuración de entrega desde la página Evaluar o ir a la página Detalles de una configuración de entrega en la consola y hacer clic en la pestaña Evaluar. En los siguientes pasos, se muestra cómo obtener una vista previa desde la página Evaluar.

Para obtener una vista previa de los resultados que muestra tu configuración de entrega, sigue estos pasos:

  1. Ve a la página Evaluar en la consola de Search for Retail.

    Ir a la página Evaluación

  2. Haz clic en la pestaña Búsqueda.

  3. Selecciona la configuración de publicación de la que deseas obtener una vista previa.

  4. Selecciona la rama del catálogo que contiene el catálogo que deseas obtener una vista previa.

  5. Opcional: Ingresa un ID de visitante para obtener una vista previa de los resultados de la búsqueda de ese usuario.

  6. Opcional: Ingresa un ID de usuario para obtener una vista previa de los resultados de la búsqueda de ese usuario.

  7. Opcional: Ingresa una hora de búsqueda para obtener una vista previa de los resultados que aparecerían a la hora especificada.

    Por ejemplo, si promocionaste ciertos productos para el Black Friday, podrás ver los resultados como aparecerían ese día.

  8. Opcional: Selecciona las facetas que se mostrarán junto con los resultados de la búsqueda y haz clic en Aceptar para aplicarlas.

    Las facetas que selecciones se usarán para generar una lista de filtros de facetas que aparecerán en Agregar facetas después de que realices la búsqueda inicial. Estos filtros de facetas pueden incluir facetas distintas de las que seleccionas en este paso, como las facetas dinámicas.

  9. Ingresa una búsqueda basada en texto para obtener una vista previa de los resultados de la búsqueda.

  10. Haz clic en Vista previa de la búsqueda o presiona Intro en cualquier campo de entrada para ver los resultados.

    Los resultados de la búsqueda se muestran con sus imágenes en miniatura disponibles.

    Si tu búsqueda activa un control de redireccionamiento, aparecerá un aviso que mostrará el URI de redireccionamiento.

  11. Opcional: Haz clic en el ícono de Cuadrícula o en el de Lista para cambiar la forma en que se muestran los resultados de la búsqueda en la vista previa.

  12. Opcional: Si seleccionaste facetas para que aparezcan junto con tus resultados, selecciona uno o más valores de facetas de la lista de facetas para filtrar los resultados por esos valores. Los resultados se actualizan automáticamente cuando se seleccionan.

    Cuando seleccionas varios valores de la misma faceta, se aplican como lo haría un operador OR, y los valores de diferentes facetas se aplican como lo haría un operador AND. Por ejemplo, después de seleccionar las facetas color y los valores “azul” y “oro”, y los valores material “algodón” y “poliéster”. Los resultados de la búsqueda deben tener "azul" o "oro" como atributo, y también deben tener "algodón" o "poliéster" como atributo.

Explorar

  1. Ve a la página Evaluar en la consola de Search for Retail.

    Ir a la página Evaluación

  2. Haz clic en la pestaña Explorar.

  1. Selecciona la configuración de publicación de la que deseas obtener una vista previa.

  2. Selecciona la rama del catálogo que contiene el catálogo que deseas obtener una vista previa.

  3. Opcional: Ingresa un ID de visitante para obtener una vista previa de los resultados de ese usuario.

  4. Opcional: Ingresa un ID de usuario para obtener una vista previa de los resultados de ese usuario.

  5. Para obtener una vista previa de cómo se verían los resultados con un filtro específico agregado, ingresa una cadena de filtro. Usa la sintaxis de expresión de filtro especificada en la documentación de Filtro.

  6. Opcional: Ingresa un horario de navegación para obtener una vista previa de los resultados que aparecerían en el horario especificado.

    Por ejemplo, si promocionaste ciertos productos para un evento de venta máxima, podrás ver los resultados como aparecerían ese día.

  7. Ingresa la categoría de página para la que estás probando los resultados de navegación.

  8. Opcional: Selecciona las facetas que deseas mostrar junto con los resultados y haz clic en Aceptar para aplicarlas.

    Las facetas que selecciones se usarán para generar una lista de filtros de facetas que aparecerán en Agregar facetas después de que realices la búsqueda inicial. Estos filtros de facetas pueden incluir facetas distintas de las que seleccionas en este paso, como las facetas dinámicas.

  9. Haz clic en Explorar vista previa o presiona Intro en cualquier campo de entrada para ver los resultados.

    Los resultados se muestran con sus imágenes de miniatura disponibles.

  10. Opcional: Haz clic en el ícono de Cuadrícula o en el de Lista para cambiar la forma en que se muestran los resultados en la vista previa.

  11. Opcional: Si seleccionaste facetas para que aparezcan junto con tus resultados, selecciona uno o más valores de facetas de la lista de facetas para filtrar los resultados por esos valores. Los resultados se actualizan automáticamente cuando realizas la selección.

    Cuando seleccionas varios valores de la misma faceta, se aplican como lo haría un operador OR, y los valores de diferentes facetas se aplican como lo haría un operador AND. Por ejemplo, después de seleccionar las facetas color y material, puedes filtrar los resultados de la búsqueda seleccionando los valores de color “azul” y “oro”, y los valores de material “algodón” y “poliéster”. Tus resultados deben tener "azul" o "oro" como atributo, y también deben tener "algodón" o "poliéster" como atributo.

Para ver la página Detalles de la configuración de publicación que estás visualizando, haz clic en Ver configuración de publicación en el campo Seleccionar configuración de publicación.