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 y nunca muestren resultados personalizados a un usuario final diferente.

Acerca de la búsqueda de texto y la búsqueda de exploración con la búsqueda

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

En el caso de uso de búsqueda de búsqueda de texto, un comprador podría ingresar una consulta de 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 ingresos.

En el caso de uso de navegación, un comprador podría 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 mediante el aprendizaje del comportamiento y las tendencias de los usuarios. Los controles que configuraste pueden definirse mejor los resultados de la navegación.

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

Búsquedas de consultas de texto

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

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

Cuando subas un evento de usuario, envía eventos de búsqueda de consulta 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

Por lo general, cuando exploras productos mediante la navegación del sitio, se generan resultados que tienen la misma relevancia o que están ordenados por los artículos más vendidos. La Búsqueda usa la IA para optimizar cómo se ordenan los resultados según la popularidad, compra y personalización.

Cuando el método servingConfigs.search envía una solicitud, la búsqueda la considera una solicitud 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án disponibles.

Cuando subas eventos de usuario, asegúrate de enviar los eventos de búsqueda de navegación generados por la búsqueda como eventos de usuario search. La búsqueda considera un evento del 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íos.

Para obtener resultados correctos de la búsqueda de navegación, los valores pageCategories y filter en tus solicitudes de búsqueda deben coincidir exactamente con los valores pageCategories y filter en los eventos de usuario que subiste. Si no coinciden exactamente, es posible que los datos en las solicitudes de búsqueda no se reconozcan, lo que puede tener un impacto negativo en la calidad de los resultados.

Usa las solicitudes de búsqueda para obtener resultados para las 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 los controles asociados afectan los resultados de la 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 que no esté 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 una cantidad razonable de resultados ordenados por relevancia.

Para obtener los atributos de producto que se muestran con 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 venta minorista 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 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 pasar 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
}

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 de la siguiente manera:

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 resultados con la máxima relevancia, puedes ir directamente a una posición en particular 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 que mejoran cada vez más tus resultados. Por ejemplo, para los casos de uso de las búsquedas de texto, los resultados se pueden basar ú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álogos y eventos de usuarios que cumplen con los requisitos mínimos de cada nivel.

En la página Calidad de los datos de la consola de Search for Retail, se proporciona una evaluación de los requisitos que cumpliste para cada nivel. Si quieres obtener más información sobre el uso de esta página para ver la calidad de los datos y los niveles de rendimiento de las búsquedas, consulta Cómo desbloquear los niveles de rendimiento de la búsqueda.

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

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

Para obtener más información sobre los parámetros de configuración de entrega, consulta Acerca de los parámetros de configuración de entrega.

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

Para obtener una vista previa de los resultados que muestra tu configuración de entrega, haz lo siguiente:

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

    Ir a la página Evaluar

  2. Haz clic en la pestaña Buscar.

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

  4. Selecciona la rama de 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án en el momento especificado.

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

  8. Opcional: Selecciona las facetas que quieres mostrar junto con los resultados de la búsqueda y haz clic en OK 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 realizar la búsqueda inicial. Estos filtros de facetas pueden incluir facetas distintas de las que selecciones en este paso, como las dinámicas.

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

  10. Haz clic en Search preview 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 la búsqueda activa un control de redireccionamiento, aparecerá un aviso que muestra 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 a fin de filtrar los resultados por esos valores. Los resultados se actualizan automáticamente luego de la selección.

    Cuando seleccionas varios valores de la misma faceta, se aplican del mismo modo que un operador OR, y los valores en diferentes facetas se aplican del mismo modo que un operador AND. Por ejemplo, después de seleccionar las facetas “color” y los valores “azul” y “oro”, y los valores de 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".

Explorar

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

    Ir a la página Evaluar

  2. Haz clic en la pestaña Explorar.

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

  2. Selecciona la rama de 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. Opcional: 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 una hora 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 el Black Friday, puedes ver los resultados tal como aparecerían ese día.

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

  8. Opcional: Selecciona las facetas que quieres que se muestren junto con los resultados y haz clic en OK 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 realizar la búsqueda inicial. Estos filtros de facetas pueden incluir facetas distintas de las que selecciones en este paso, como las 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 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 a fin de filtrar los resultados por esos valores. Los resultados se actualizan automáticamente luego de la selección.

    Cuando seleccionas varios valores de la misma faceta, se aplican del mismo modo que un operador OR, y los valores en diferentes facetas se aplican del mismo modo que 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”.

Para ver la página Detalles de la configuración de entrega de la que estás obteniendo una vista previa, haz clic en Ver configuración de entrega en el campo Seleccionar configuración de entrega.