Cómo obtener resultados de búsqueda

En esta página, se describen las consultas básicas con 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 mostrarás resultados personalizados a un usuario final diferente.

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

Ofrece la búsqueda de consultas de texto y las capacidades de búsqueda por exploración.

En el caso de uso de búsqueda de búsqueda de texto, un comprador puede 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 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 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 definir mejor los resultados de la exploración.

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

Búsquedas de texto

Cuando un usuario ingresa una consulta de texto para realizar una búsqueda 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 de servingConfigs.search como una solicitud de búsqueda basada en texto si tiene un campo query que no está vacío.

Cuando subas eventos del 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

Por lo general, navegar por los productos con la navegación del sitio genera resultados que son todos de la misma relevancia o que están ordenados por elementos más vendidos. La Búsqueda usa la IA para optimizar la forma en que se ordenan los resultados de las exploraciones según la popularidad, la capacidad de compra y la personalización.

Cuando el método servingConfigs.search envía una solicitud, la búsqueda la considera una solicitud de exploración si el campo query está vacío. Cuando ese es el caso, los resultados se basan en los campos filter y pageCategories, además de mayor optimización y personalización (si están disponibles).

Cuando subas eventos del usuario, asegúrate de enviar los eventos de búsqueda de exploración generados por la búsqueda como eventos de usuario de search. La búsqueda considera un evento de usuario search como un evento basado en la exploración si tiene un campo userEvent.searchQuery vacío y un campo userEvent.pageCategories no vacío.

Para obtener los resultados de la búsqueda correctos, los valores pageCategories y filter de las 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 de las solicitudes de búsqueda no se reconozcan, lo que puede afectar negativamente la calidad del resultado. La búsqueda por exploración solo reconoce el primer valor de la categoría en pageCategories.

Utiliza las solicitudes de búsqueda para obtener resultados para las búsquedas de texto y las búsquedas 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é configuración y controles asociados afectan a los resultados de la búsqueda.

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

Las solicitudes de búsqueda de exploració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 muestra una cantidad razonable de resultados ordenados por relevancia.

Para que los atributos de productos se muestren con la respuesta de búsqueda, asegúrate de proporcionar valores de atributos cuando importes los datos de tu catálogo. Product tiene atributos de 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 for 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 reducir 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


Paginación

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 mayor relevancia, puedes saltar 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
}

Buscar niveles de rendimiento

La Búsqueda ofrece varios niveles de rendimiento de búsqueda que mejoran cada vez más tus resultados. Por ejemplo, para los casos de uso de búsqueda de 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á mostrar 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 subes datos del catálogo y de eventos del usuario 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 en 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 la Búsqueda, consulta Cómo desbloquear 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 entrega funciona 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 desde la página Evaluar o si te diriges a la página Detalles de una configuración de entrega en la consola y haces 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, 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 deseas 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 para ese usuario.

  6. Opcional: Ingresa un ID de usuario para obtener una vista previa de los resultados de la búsqueda para 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, podrás ver los resultados tal como aparecerían ese día.

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

    Las facetas que seleccionas se usan para generar una lista de filtros de faceta que aparecen en Agregar facetas después de realizar la búsqueda inicial. Estos filtros de facetas pueden incluir facetas distintas de las que seleccionaste en este paso, como las facetas dinámicas.

  9. Ingresa una búsqueda de texto para obtener una vista previa de los resultados de esa 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 í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 faceta de la lista de facetas para 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, estos se aplican como un operador OR, y los valores en diferentes facetas se aplican como 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 los atributos “azul” o “oro”, y también “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 deseas 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 para ese usuario.

  4. Opcional: Ingresa un ID de usuario para obtener una vista previa de los resultados para 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 que se especifica en la documentación de Filter.

  6. Opcional: Ingresa una hora de navegación para obtener una vista previa de los resultados que aparecerán en el momento especificado.

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

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

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

    Las facetas que seleccionas se usan para generar una lista de filtros de faceta que aparecen en Agregar facetas después de realizar la búsqueda inicial. Estos filtros de facetas pueden incluir facetas distintas de las que seleccionaste 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 sus 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 tus resultados en la vista previa.

  11. Opcional: Si seleccionaste facetas para que aparezcan junto a los resultados, selecciona uno o más valores de faceta de la lista de facetas para 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, estos se aplican como un operador OR, y los valores en diferentes facetas se aplican como un operador AND. Por ejemplo, después de seleccionar las facetas "color" y "material", puedes filtrar los resultados de la búsqueda si seleccionas los valores de color "azul" y "oro", y los valores de material "algodón" y "poliéster". Los resultados deben tener como atributo “azul” o “oro”, y también “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.