Obtener resultados de búsqueda

En esta página se describe cómo hacer consultas básicas con la búsqueda, incluidas las búsquedas de consultas de texto, las búsquedas por categorías, la paginación, la optimización y los resultados personalizados.

No almacenes en caché los resultados personalizados de un usuario final y no devuelvas resultados personalizados a otro usuario final.

La relevancia es diferente de la coincidencia. La coincidencia consiste en encontrar productos candidatos en el índice que se correspondan con la consulta de búsqueda del usuario. La relevancia, por otro lado, es un grado de coincidencia. Consiste en ordenar esos productos de forma que se satisfagan mejor la intención y las necesidades del usuario. Vertex AI Search para tiendas usa técnicas para mejorar la coincidencia y la relevancia, lo que ofrece una mejor experiencia de búsqueda general a los usuarios y satisface las necesidades de las tiendas.

Vertex AI Search para el sector del comercio usa la relevancia como valor predeterminado en las búsquedas. Sin embargo, la búsqueda también se ha optimizado para mostrar los elementos marginalmente relevantes en la parte superior de los resultados de búsqueda, de modo que los comerciantes puedan obtener resultados de búsqueda más específicos y aumentar el potencial de conversión de los eventos de usuario.

Estas funciones de búsqueda añadidas optimizan el algoritmo de relevancia predeterminado y proporcionan funciones no predeterminadas adaptadas al perfil de utilización de cada comercio, como las siguientes:

  • Opciones para ordenar los resultados por precio, por los artículos mejor valorados o por los más vendidos. La búsqueda no predeterminada se personaliza para devolver resultados de búsqueda específicos con las variantes de producto correctas. Por ejemplo, para mostrar la variante más barata o más cara al ordenar por precio.

  • Aplicación automática de un filtro de relevancia más estricto a los eventos de usuario no predeterminados.

  • Habilitar controles de refuerzo o ocultación ajustables para optimizar los resultados de búsqueda.

La búsqueda ofrece tanto la búsqueda de consultas de texto como la búsqueda por exploración.

En el caso práctico de búsqueda con consultas de texto, un comprador puede introducir una consulta de texto en su sitio. La búsqueda devuelve una respuesta que contiene productos que se ajustan a los parámetros de los controles que has configurado, ordenados por relevancia y maximización de ingresos.

En el caso de uso de navegación, un comprador puede ir al menú de su sitio y desplazarse a una categoría de producto específica. La búsqueda elige automáticamente el orden que maximiza los ingresos aprendiendo del comportamiento y las tendencias de los usuarios. Los resultados de la navegación se pueden acotar aún más con los controles que hayas configurado.

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

Búsquedas con consultas de texto

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

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

Al subir eventos de usuario, envíe 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.

Consultar búsquedas

Navegar usa 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 la forma en que se ordenan los resultados de navegación teniendo en cuenta la popularidad, la capacidad de compra y la personalización.

Para obtener los resultados de búsqueda correctos, ten en cuenta lo siguiente:

  • Los valores pageCategories y filter de sus solicitudes de búsqueda deben coincidir exactamente con los valores pageCategories y filter de los eventos de usuario que haya subido. Si los parámetros de las solicitudes no coinciden con los de los eventos, el modelo de reordenación basado en clics que se ha entrenado con los eventos no funcionará muy bien para esa consulta específica y afectará negativamente a la calidad de los resultados.

  • Vertex AI Search para el sector del comercio categoriza un evento de usuario search como evento basado en la navegación si tiene un campo userEvent.searchQuery vacío y un campo userEvent.pageCategories no vacío. Por eso, debe asegurarse de enviar los eventos de navegación generados por Vertex AI Search para el comercio como search eventos de usuario al subirlos.

  • Un filtro de navegación debe ser válido e indicar en cada consulta de navegación qué productos pertenecen a la categoría de producto en la que está navegando el usuario. Para conseguir esta configuración, el ID de categoría debe definirse en los campos filter y page_category. Por ejemplo, si quiere que los resultados de búsqueda se orienten a la categoría Casa y jardín. En primer lugar, si solo tiene un valor de filter de "in-stock", la búsqueda no se acotará lo suficiente para ofrecer resultados óptimos. Para ofrecer resultados de búsqueda restringidos a la categoría Casa y jardín, no solo debe definir "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 búsqueda sean demasiado amplios e incluyan muchos artículos que no sean de la categoría Casa y jardín.

Las solicitudes y los eventos de servicio con un campo de consulta vacío y campos page_categories rellenados se consideran solicitudes de navegación y eventos de usuario. El campo page_categories especifica la propia página de navegación. 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 definir 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 búsqueda funciona con consultas de cadena vacía, los productos de una categoría determinada no se mostrarán automáticamente en los resultados de una categoría de página concreta. Es decir, si el usuario final navega sin especificar nada mediante una consulta de texto, es posible que la búsqueda no devuelva resultados orientados de forma eficaz, aunque el usuario vaya a una página de categoría.

Usar solicitudes de búsqueda

Usa solicitudes de búsqueda para obtener resultados de búsquedas de texto y de búsquedas por exploración. Para hacer una solicitud de búsqueda, utiliza el método servingConfigs.search.

Todas las solicitudes de búsqueda requieren placement, que identifica el nombre de recurso completo de la configuración de servicio que se va a usar. La configuración de servicio determina qué ajustes y controles asociados afectan a los resultados de búsqueda.

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

Las solicitudes de búsqueda de navegació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 devuelve un número razonable de resultados ordenados por relevancia.

Para que los atributos de producto se devuelvan con la respuesta de búsqueda, asegúrese de proporcionar valores de atributo al importar los datos de su catálogo. Product tiene atributos de sistema predefinidos, como marca, color y talla, a los que puede asignar valores. También puede incluir atributos personalizados que defina con Product.attributes.

Tutorial de consultas

En este tutorial se explica cómo enviar una consulta de búsqueda basada en texto al servicio Vertex AI Search para el sector del comercio y cómo analizar la respuesta.


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

Guíame


Paginación

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

Tutorial de paginación

En este tutorial se muestra cómo controlar la paginación en una solicitud de búsqueda basada en texto. Cuando un cliente busca productos en una tienda, puede mejorar su navegación a través de los resultados de búsqueda. Por ejemplo, pueden limitar el número de elementos de la respuesta de búsqueda mediante la función de tamaño de página o ir a la página que prefieran mediante la función de desplazamiento.


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

Guíame


Paginación

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

Para ir a la página siguiente, 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
}

En SearchResponse, puede obtener los productos resultantes con las 5 primeras coincidencias, 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 resultantes con los cinco siguientes niveles de relevancia (del sexto al décimo), debe definir page_token con los mismos valores de placement, visitor_id y query que next_page_token del 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 tiene este aspecto:

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 ir de una página a otra o de obtener resultados con la máxima relevancia, puedes ir directamente a una posición concreta 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 obtener la décima página de los resultados cuando el tamaño de la página es 5, puedes definir offset como 45, que se calcula como (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 búsqueda

La Búsqueda ofrece varios niveles de rendimiento de búsqueda que mejoran cada vez más tus resultados. Por ejemplo, en los casos prácticos de búsqueda con consultas de texto, los resultados pueden basarse únicamente en la relevancia. A medida que desbloquees niveles de rendimiento más avanzados, la búsqueda podrá devolver resultados basados en la relevancia, la popularidad, la optimización de ingresos y la personalización.

La Búsqueda desbloquea automáticamente los niveles de rendimiento más altos cuando sube datos de catálogo y de eventos de usuario que cumplen 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 el artículo Desbloquear niveles de rendimiento de la búsqueda. La página Calidad de los datos de la consola de búsqueda de comercio ofrece una evaluación de los requisitos que ha cumplido en cada nivel.

Evaluar los resultados de búsqueda de texto y de navegación

Antes de actualizar el código de su sitio web para solicitar una búsqueda de texto o una búsqueda por navegación, puede previsualizar los resultados para confirmar que su configuración de publicación funciona como espera.

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

Puede previsualizar los resultados de la configuración de servicio desde la página Evaluar o desde la página Detalles de la configuración de servicio en la consola. Para ello, haga clic en la pestaña Evaluar. Sigue estos pasos para obtener una vista previa desde la página Evaluar.

Para obtener una vista previa de los resultados devueltos por tu configuración de servicio, sigue estos pasos:

  1. Ve a la página Evaluar de la consola de búsqueda para comercio.

    Ve a la página Evaluar.

  2. Haz clic en la pestaña Buscar.

  3. Selecciona la configuración de publicación que quieras previsualizar.

  4. Selecciona la rama del catálogo que contenga el catálogo que quieras previsualizar.

  5. Opcional: Introduce un ID de visitante para previsualizar los resultados de búsqueda de ese usuario.

  6. Opcional: Introduce un ID de usuario para previsualizar los resultados de búsqueda de ese usuario.

  7. Opcional: Introduce una hora de búsqueda para previsualizar los resultados que aparecerían a la hora especificada.

    Por ejemplo, si ha promocionado determinados productos para una oferta especial, puede ver los resultados tal como aparecerían ese día.

  8. Opcional: Selecciona las facetas que quieras que se muestren junto a los resultados de 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á en Añadir facetas después de realizar la búsqueda inicial. Estos filtros de faceta pueden incluir facetas distintas de las que selecciones en este paso, como las facetas dinámicas.

  9. Introduce una consulta de búsqueda basada en texto para previsualizar los resultados de esa consulta.

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

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

    Si tu búsqueda activa un control de redirección, aparecerá un aviso que muestra el URI de redirección.

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

  12. Opcional: Si has seleccionado facetas para que aparezcan junto a los resultados, selecciona uno o varios valores de faceta de la lista de facetas para filtrar los resultados por esos valores. Los resultados se actualizan automáticamente al hacer la selección.

    Cuando selecciona varios valores de la misma faceta, se aplican como si se tratara de un operador OR, y los valores de diferentes facetas se aplican como si se tratara de 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". Los resultados de búsqueda deben tener el atributo "azul" o "dorado", así como el atributo "algodón" o "poliéster".

Explorar

  1. Ve a la página Evaluar de la consola de búsqueda para comercio.

    Ve a la página Evaluar.

  2. Haz clic en la pestaña Explorar.

  1. Selecciona la configuración de publicación que quieras previsualizar.

  2. Selecciona la rama del catálogo que contenga el catálogo que quieras previsualizar.

  3. Opcional: Introduce un ID de visitante para previsualizar los resultados de ese usuario.

  4. Opcional: Introduzca un ID de usuario para previsualizar los resultados de ese usuario.

  5. Para ver cómo se mostrarían los resultados con un filtro específico, introduce una cadena de filtro. Utilice la sintaxis de expresiones de filtro especificada en la documentación de Filtro.

  6. Opcional: Introduce un tiempo de navegación para previsualizar los resultados que aparecerían a la hora especificada.

    Por ejemplo, si ha promocionado determinados productos para un evento de rebajas en temporada alta, puede ver los resultados tal como aparecerían ese día.

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

  8. Opcional: Selecciona las facetas que quieras que se muestren junto a 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á en Añadir facetas después de realizar la búsqueda inicial. Estos filtros de faceta pueden incluir facetas distintas de las que selecciones en este paso, como las facetas dinámicas.

  9. Haz clic en Ver vista previa o pulsa 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 icono Cuadrícula o en el icono Lista para cambiar la forma en que se muestran los resultados en la vista previa.

  11. Opcional: Si has seleccionado facetas para que aparezcan junto a los resultados, selecciona uno o varios valores de faceta de la lista de facetas para filtrar los resultados por esos valores. Los resultados se actualizan automáticamente al hacer la selección.

    Cuando selecciona varios valores de la misma faceta, se aplican como si se tratara de un operador OR, y los valores de diferentes facetas se aplican como si se tratara de un operador AND. Por ejemplo, después de seleccionar las facetas color y material, puede filtrar los resultados de búsqueda seleccionando los valores de color "azul" y "dorado", y los valores de material "algodón" y "poliéster". Los resultados deben tener el atributo "blue" o "gold", así como el atributo "cotton" o "polyester".

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