Cómo obtener resultados de la búsqueda

En esta página, se describe la consulta básica con la Búsqueda, incluidas las búsquedas de consultas 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 devuelvas resultados personalizados a otro usuario final.

La relevancia es diferente de la coincidencia. La correlación consiste en encontrar productos candidatos en el índice que correspondan a la búsqueda del usuario. Por otro lado, la relevancia 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 for Retail utiliza técnicas para mejorar la correlación y la relevancia, y así brindar una mejor experiencia de búsqueda general a los usuarios que satisfaga las necesidades de los minoristas.

De forma predeterminada, Vertex AI Search for Commerce prioriza la relevancia en la búsqueda. Sin embargo, la búsqueda también se ajusta para mostrar los elementos marginalmente relevantes en la parte superior de los resultados de la búsqueda y, así, proporcionar a los minoristas resultados de la búsqueda más segmentados para aumentar el potencial de conversión de los eventos del usuario.

Estas funciones de búsqueda adicionales optimizan el algoritmo de relevancia predeterminado y proporcionan funciones no predeterminadas ajustadas al perfil de utilización de cada comercio, 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 producto correctas. Por ejemplo, para mostrar la variante más económica o más costosa cuando se ordena por precio.

  • Se aplica automáticamente un filtro de relevancia más estricto para los eventos de usuario no predeterminados.

  • Se habilitaron los controles de refuerzo o ocultamiento ajustables para optimizar los resultados de la búsqueda.

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

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

En el caso de uso de exploración, un comprador puede ir al menú de tu sitio y navegar a una categoría de productos específica. La Búsqueda elige automáticamente el orden de clasificación que maximiza los ingresos, ya que aprende del comportamiento y las tendencias de los usuarios. Los resultados de la exploración se pueden refinar aún más con los controles que configuraste.

Las solicitudes de búsqueda por texto y de búsqueda por exploración usan el método servingConfigs.search.

Búsquedas con consultas de texto

Cuando un usuario ingresa una búsqueda de texto en tu sitio, la búsqueda ordena los posibles resultados según 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 un evento de usuario, envía los eventos de búsqueda de consultas de texto generados por 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

Browse utiliza la navegación del sitio para generar resultados de búsqueda de igual relevancia ordenados por los artículos más vendidos. La Búsqueda aprovecha la IA para optimizar el orden de los resultados de exploración teniendo en cuenta la popularidad, la capacidad de compra y la personalización.

Para obtener los resultados de la búsqueda por exploración correctos, ten en cuenta lo siguiente:

  • Los valores de pageCategories y filter en tus solicitudes de búsqueda deben coincidir exactamente con los valores de pageCategories y filter en los eventos de usuario que subiste. Si los parámetros de las solicitudes no coinciden con los parámetros de los eventos, el modelo de reordenamiento basado en clics que se entrenó a partir de los eventos no tendrá un buen rendimiento para esta búsqueda específica y afectará negativamente la calidad de los resultados.

  • Vertex AI Search para comercio categoriza 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 eso, debes asegurarte de enviar los eventos de exploración generados por Vertex AI Search for Commerce como eventos de usuario search cuando los subas.

  • Un filtro de exploración debe ser válido y debe indicar para cada búsqueda de exploración qué productos pertenecen a la categoría de productos que el usuario está explorando. 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 refina 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 establecer "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 exploración sean demasiado amplios y que incluyan muchos artículos que no sean de la categoría Home & Garden.

Las solicitudes de publicación y los eventos con un campo de búsqueda vacío y campos page_categories completados se consideran solicitudes de exploración y eventos de usuario. El campo page_categories especifica la página de exploración en sí. Cuando el método servingConfigs.search envía una solicitud, la Búsqueda la considera una solicitud de búsqueda por exploración si el campo query está vacío. En ese caso, los resultados se basan en los campos filter y pageCategories y, si están disponibles, en más optimización y personalización.

Puedes establecer 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, dado que la navegación funciona con búsquedas 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 la búsqueda no genere resultados segmentados de manera eficaz, incluso si el usuario navega a una página de categoría.

Cómo usar solicitudes de búsqueda

Usa solicitudes de búsqueda para obtener resultados de búsquedas de texto y de exploració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 por 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 se muestren los atributos de producto en la respuesta de búsqueda, asegúrate de proporcionar valores de atributos cuando importes los datos de tu catálogo. Product tiene atributos predefinidos del sistema, 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 comercio 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 por los resultados de la búsqueda. Por ejemplo, pueden limitar la cantidad de elementos en la respuesta de búsqueda con la función de tamaño de página o saltar a la página que prefieran 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


Paginación

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

Para ir a la página siguiente, puedes usar page_token. Por ejemplo, supongamos que envías el siguiente objeto 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 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 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 devolver resultados basados en la relevancia, la popularidad, la optimización de los ingresos y la personalización.

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

Para obtener más información sobre cómo usar esta página para ver los niveles de calidad de los datos y de rendimiento de la búsqueda, consulta Cómo desbloquear los niveles de rendimiento de la búsqueda. La página Calidad de los datos de la consola de Search for commerce proporciona una evaluación de los requisitos que cumpliste para cada nivel.

Evalúa los resultados de la búsqueda y la exploración de texto

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

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

Puedes obtener una vista previa de los resultados de la configuración de entrega desde la página Evaluación o yendo a la página Detalles de una configuración de entrega en la consola y haciendo clic en su pestaña Evaluación. 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 la configuración de entrega, sigue estos pasos:

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

    Ir a la página Evaluación

  2. Haz clic en la pestaña Buscar.

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

  4. Selecciona la rama del catálogo que contiene el catálogo del 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 de la búsqueda que aparecerían en la hora especificada.

    Por ejemplo, si promocionaste ciertos productos para una oferta especial, puedes ver los resultados tal como aparecerían ese día.

  8. Opcional: Selecciona las facetas que se mostrarán junto a 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 que no sean las que seleccionas en este paso, como las facetas dinámicas.

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

  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 las 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 ícono 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 a los 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 los valores "azul" y "dorado", y los valores de material "algodón" y "poliéster". Tus resultados de la búsqueda deben tener "azul" o "dorado" 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 commerce.

    Ir a la página Evaluación

  2. Haz clic en la pestaña Explorar.

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

  2. Selecciona la rama del catálogo que contiene el catálogo del 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 Filter.

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

    Por ejemplo, si promocionaste ciertos productos para un evento de ventas pico, puedes ver los resultados tal como aparecerían ese día.

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

  8. Opcional: Selecciona las facetas que se mostrarán 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 que no sean las que seleccionas en este paso, como las facetas dinámicas.

  9. Haz clic en Browse preview o presiona Intro en cualquier campo de entrada para ver los resultados.

    Los resultados se muestran con las imágenes en miniatura disponibles.

  10. Opcional: Haz clic en el ícono de cuadrícula o en el ícono 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 a los 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 “dorado”, y los valores de material “algodón” y “poliéster”. Tus resultados deben tener "azul" o "dorado" 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 entrega que estás viendo en la vista previa, haz clic en Ver configuración de entrega en el campo Seleccionar configuración de entrega.