Cómo obtener resultados de búsqueda

En esta página, se muestra cómo obtener una vista previa de los resultados de la búsqueda con la consola y cómo obtener resultados de la búsqueda con la API. Google Cloud

Además, en lugar de usar la IU de la app web, puedes hacer llamadas a la API y, luego, integrarlas en tu servidor o aplicación. En esta página, se incluyen muestras de código para realizar búsquedas con las bibliotecas cliente de gRPC y una cuenta de servicio.

Cómo obtener resultados de búsqueda

Puedes obtener una vista previa de los resultados de la búsqueda desde la consola de Google Cloud o con la API.

Console

Para usar la Google Cloud consola y obtener una vista previa de los resultados de la búsqueda de una app con datos estructurados o no estructurados, sigue estos pasos:

  1. Abre la página Preview en la consola.
  2. Escribe una búsqueda.
    1. Si habilitaste el autocompletado en el paso 1, verás una lista de sugerencias de autocompletado debajo de la barra de búsqueda a medida que escribas.
  3. (Opcional) Si conectaste varios almacenes de datos a tu app, pero solo quieres obtener resultados de un almacén de datos específico, selecciónalo.
  4. Haz clic en Intro para enviar la búsqueda.
    1. Debajo de la barra de búsqueda, aparece una lista de resultados.
    2. Si no se define ninguna asignación de atributos en la página Configurations, cada resultado de la búsqueda aparecerá como una lista de nombres y valores de atributos sin procesar.
    3. Si se guardó alguna asignación de atributos en la página Configuraciones, los resultados de la búsqueda mostrarán las mismas imágenes que ves en la vista previa de la página Configuraciones.
  5. Si se especificó alguna faceta en la página Configuración, se mostrará de la misma manera.
  6. Haz clic en la flecha que se encuentra debajo de la lista de resultados para cargar la siguiente página.

REST

Para usar la API y obtener resultados de la búsqueda para una app con datos estructurados o no estructurados, usa el método engines.servingConfigs.search:

  1. Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.

    1. En la consola de Google Cloud , ve a la página Gemini Enterprise.

      Ve a Apps.

    2. En la página Apps, busca el nombre de tu app y obtén su ID en la columna ID.

  2. Obtener una vista previa de los resultados de la búsqueda

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
    "query": "QUERY",
    "userPseudoId": "USER_PSEUDO_ID",
    "pageSize": "PAGE_SIZE",
    "offset": "OFFSET",
    "orderBy": "ORDER_BY",
    "filter": "FILTER",
    "boostSpec": "BOOST_SPEC",
    "facetSpec": "FACET_SPEC",
    "queryExpansionSpec": "QUERY_EXPANSION_SPEC",
    "spellCorrectionSpec": "SPELL_CORRECTION_SPEC",
    "contentSearchSpec": "CONTENT_SEARCH_SPEC",
    "dataStoreSpecs": [{"DATA_STORE_SPEC"}],
    }'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID de tu proyecto.
    • APP_ID: Es el ID de la app que deseas consultar.
    • QUERY: Es el texto de la búsqueda.
    • USER_PSEUDO_ID: Es una cadena codificada en UTF-8 que actúa como un identificador seudonimizado único que hace un seguimiento de los usuarios. Puede tener una longitud máxima de 128 caracteres. Google recomienda usar este campo porque mejora el rendimiento del modelo y la calidad de la personalización. Puedes usar una cookie HTTP para este campo, que identifica de forma única a un visitante en un solo dispositivo. Estas son algunas consideraciones importantes:

      • Este identificador no cambia cuando el visitante accede a un sitio web o sale de él.
      • Este campo no debe establecerse con el mismo identificador para varios usuarios. De lo contrario, usar el mismo ID de usuario para varios usuarios puede combinar los historiales de eventos de diferentes usuarios y degradar la calidad del modelo.
      • Este campo no debe incluir información de identificación personal (PII).
      • Para una solicitud de búsqueda o exploración determinada, este campo debe correlacionarse con el campo userPseudoId correspondiente en los eventos del usuario.

      Para obtener más información, consulta userPseudoId

    • PAGE_SIZE: Es la cantidad de resultados que muestra la búsqueda. El tamaño de página máximo permitido depende del tipo de datos. Los tamaños de página superiores al valor máximo se fuerzan al valor máximo.
    • OFFSET: es opcional. Es el índice inicial de los resultados. El valor predeterminado es 0.

      Por ejemplo, si el desplazamiento es 2, el tamaño de la página es 10 y hay 15 resultados para devolver, los resultados del 2 al 11 se devuelven en la primera página.

    • ORDER_BY: es opcional. Es el orden en el que se organizan los resultados.

    • FILTER: es opcional. Es un campo de texto para filtrar tu búsqueda con una expresión de filtro. El valor predeterminado es una cadena vacía, lo que significa que no se aplica ningún filtro.

      Ejemplo: color: ANY("red", "blue") AND score: IN(*, 100.0e)

      Para obtener más información, consulta Cómo filtrar la búsqueda de datos estructurados o no estructurados.

    • BOOST_SPEC: es opcional. Es una especificación para potenciar o descartar documentos. Valores:

      • BOOST: un número de punto flotante en el rango [-1,1]. Cuando el valor es negativo, los resultados se degradan (aparecen más abajo en los resultados). Cuando el valor es positivo, los resultados se promocionan (aparecen más arriba en los resultados).
      • CONDITION: Es una expresión de filtro de texto para seleccionar los documentos a los que se aplica el refuerzo. El filtro debe evaluarse como un valor booleano.

      Para obtener información sobre el refuerzo para la búsqueda estructurada, consulta Refuerza los resultados de la búsqueda.

    • FACET_SPEC: es opcional. Es una especificación de faceta para realizar una búsqueda por facetas.

    • QUERY_EXPANSION_SPEC: es opcional. Es una especificación para determinar en qué condiciones debe ocurrir la búsqueda expandida. El valor predeterminado es DISABLED.

    • SPELL_CORRECTION_SPEC: es opcional. Es una especificación para determinar en qué condiciones se debe realizar la corrección ortográfica. El valor predeterminado es AUTO.

    • CONTENT_SEARCH_SPEC: es opcional. Para obtener resúmenes, respuestas extractivas, segmentos extractivos y resúmenes de búsqueda. Solo para datos no estructurados. Para obtener más información, consulte:

    • DATA_STORE_SPEC: Filtra un almacén de datos específico en el que se realizará la búsqueda. Esto se puede usar si tu app de búsqueda está conectada a varios almacenes de datos. Para obtener más información, consulta DataStoreSpec.

    • Cómo ver los resultados de la búsqueda guiada en la respuesta de la búsqueda:

      Los resultados de la búsqueda guiada se muestran con las respuestas de búsqueda para la búsqueda estructurada y no estructurada. El resultado de la búsqueda guiada contiene una lista de pares clave-valor de atributos extraídos según los documentos de los resultados de la búsqueda. Esto permite que los usuarios definan mejor sus resultados de búsqueda usando algunas claves y valores de atributos como filtros.

      En este ejemplo de respuesta, se usó el color verde para definir mejor los resultados de la búsqueda. Para ello, se emitió una nueva solicitud de búsqueda con el campo de filtro especificado como _gs.color: ANY("green"):

      {
      "guidedSearchResult": {
        "refinementAttributes": [
          {
            "attributeKey": "_gs.color",
            "attributeValue": "green"
          },
          {
            "attributeKey": "_gs.category",
            "attributeValue": "shoe"
          }
        ]
      }
      }
      

Obtén puntuaciones de relevancia de documentos con los resultados de la búsqueda

Las puntuaciones de relevancia del documento se basan en la similitud de la búsqueda con el documento. Las puntuaciones se colocan en 11 buckets en el rango de 0, 0.1, 0.2… a 1.0. Cuanto más alta sea la puntuación, más relevante será el documento.

Considera las puntuaciones de relevancia del documento para los siguientes casos de uso:

  • Filtrado posterior a la búsqueda basado en la puntuación de relevancia para quitar los resultados irrelevantes

  • Clasificación posterior a la búsqueda o como entrada para otras aplicaciones

  • Depuración: Las puntuaciones de relevancia pueden proporcionar información sobre por qué se muestran algunos resultados de la búsqueda.

Para cada resultado de la búsqueda, se puede devolver una puntuación de relevancia:

  "results": [
    {
      "id": "DOCUMENT_ID",
      "document": {
      ...
      },
      "modelScores": {
        "relevance_score": {
          "values": [
            DOCUMENT-RELEVANCE-SCORE
          ]
        }
      }
    },
    ...

También consulta el comando de ejemplo en el siguiente procedimiento.

Antes de comenzar: Asegúrate de que la app de búsqueda esté asociada a un almacén de datos estructurados o no estructurados.

REST

Para solicitar que se muestren las puntuaciones de relevancia del documento con los resultados de la búsqueda, usa el método engines.servingConfigs.search de la siguiente manera:

  1. Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.

    1. En la consola de Google Cloud , ve a la página Gemini Enterprise.

      Ve a Apps.

    2. En la página Apps, busca el nombre de tu app y obtén su ID en la columna ID.

  2. Ejecuta el siguiente comando de curl para obtener las puntuaciones que se muestran con los resultados de la búsqueda.

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
         "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search",
         "query": "QUERY",
         "relevanceScoreSpec": {
           "returnRelevanceScore": true
         }
    }'
    
    • PROJECT_ID: el ID de tu proyecto.
    • APP_ID: Es el ID de la app que deseas consultar.
    • QUERY: Es el texto de la búsqueda.

El resumen de la búsqueda varía según el modelo

Si generas resúmenes de búsqueda para tus consultas, es posible que observes que los resúmenes difieren entre los resultados de la consola y los de la API. Si ves este mensaje, es probable que la consola esté usando un modelo de LLM diferente de la API. Los ejemplos de curl y código de esta página usan el modelo de LLM estable.