Filtrar búsquedas por relevancia a nivel de documento

Cuando buscas en tu aplicación Vertex AI Search, puedes especificar filtros de relevancia a nivel de documento para que solo se devuelvan como resultados los documentos que cumplan el umbral del filtro. En esta página se explican los tipos de umbral, la importancia de optimizarlo y cómo especificar filtros de relevancia y su umbral.

Acerca del filtrado por relevancia a nivel de documento

Cuando una consulta de búsqueda devuelve un resultado, asigna un nivel de relevancia a cada documento recuperado. En tu solicitud de búsqueda, puedes definir un umbral para devolver solo los documentos que cumplan el umbral del filtro. Si se define un umbral alto, se puede reducir el número de documentos que devuelve la consulta. Mientras que si se define un umbral bajo, los resultados pueden incluir documentos que no sean muy relevantes para la consulta del usuario.

Por lo tanto, si detecta que el resultado contiene demasiados documentos que no son lo suficientemente relevantes para sus usuarios, defina un umbral de relevancia alto para acotar los resultados a los pocos que sean más relevantes. Si un umbral alto es demasiado restrictivo, puedes reducirlo a un valor más óptimo.

Tipos de búsquedas

Puedes aplicar filtros de relevancia a los siguientes tipos de búsquedas:

  • Búsqueda por palabras clave: recupera documentos en función de la búsqueda por palabras clave.
  • Búsqueda por similitud semántica: recupera documentos basados en incrustaciones.

En la definición del filtro de relevancia, puede especificar el tipo de umbral de cada una de estas búsquedas. La búsqueda recupera los documentos de la búsqueda dada y, a continuación, aplica el umbral especificado.

Tipos de umbral

Puede especificar uno de los siguientes tipos de umbral para la búsqueda de palabras clave y de similitud semántica al enviar su solicitud de búsqueda.

  • Umbral de relevancia: cuando se define este umbral, la búsqueda usa un modelo propietario para determinar la relevancia de un documento. En este caso, la búsqueda puede usar cualquier señal pertinente, como la puntuación de similitud de palabras clave, la puntuación de topicalidad y la puntuación de similitud semántica.

    El umbral de relevancia es un ajuste general que permite los siguientes valores: HIGH, MEDIUM, LOW y LOWEST. Un umbral de HIGH puede devolver menos documentos con una puntuación de relevancia alta, mientras que un umbral de LOWEST puede devolver más documentos que no sean relevantes para la consulta de búsqueda.

  • Umbral de relevancia semántica: cuando se define este umbral, el filtro solo se basa en la puntuación de similitud semántica para determinar la relevancia de un documento.

    El umbral de relevancia semántica es un ajuste preciso y es un valor de punto flotante comprendido entre 0 y 1. Si se define el umbral en cero, se devuelven todos los documentos, mientras que si se define en uno, se devuelven los documentos más relevantes.

Definición y ejemplo de filtro de relevancia

Para definir filtros de relevancia en tu solicitud de búsqueda, especifica solo un tipo de umbral (umbral de relevancia y umbral de relevancia semántica) para cada tipo de búsqueda (búsqueda por palabras clave y búsqueda semántica). Puedes especificar uno o ambos tipos de búsqueda en la especificación del filtro de relevancia. Sin embargo, solo puede haber un tipo de umbral definido en cada tipo de búsqueda. Por ejemplo, plantéate lo siguiente:

{
  "relevanceFilterSpec": {
    "keywordSearchThreshold":  {
      "relevanceThreshold": "LOW"
    },
    "semanticSearchThreshold":  {
      "semanticRelevanceThreshold": 0.871
    }
  }
}

En esta solicitud de búsqueda, los resultados se devuelven en dos fases: recuperación y filtrado.

  • La búsqueda recupera los documentos según la concordancia de palabras clave y, a continuación, filtra los documentos con un umbral de relevancia bajo. De esta forma, se devuelve un gran número de documentos recuperados.
  • Al mismo tiempo, la búsqueda recupera los documentos según la similitud semántica y, a continuación, los filtra con un umbral de relevancia semántica alto de 0.871. De esta forma, se devuelven menos documentos.

La búsqueda se centra más en la coincidencia de palabras clave que en la similitud semántica. Los filtros permiten que se recuperen más documentos debido a la concordancia de palabras clave.

Del mismo modo, puedes definir el filtro de relevancia de la siguiente manera para devolver menos documentos con palabras clave coincidentes y más documentos con similitud semántica.

"relevanceFilterSpec": {
    "keywordSearchThreshold":  {
        "semanticRelevanceThreshold": 0.871
    },
    "semanticSearchThreshold":  {
        "relevanceThreshold": "LOW"
    }
}

Tipos de datos y aplicaciones admitidos para el filtro de relevancia a nivel de documento

El filtro de relevancia a nivel de documento se puede aplicar a almacenes de datos con los siguientes tipos de datos:

  • Datos de sitios web con indexación avanzada de sitios web
  • Datos no estructurados personalizados
  • Datos estructurados personalizados

El filtro de relevancia a nivel de documento no funciona con almacenes de datos que tengan indexación básica de sitios web, datos multimedia o datos sanitarios.

Además, el filtro de relevancia a nivel de documento no se puede usar con aplicaciones de búsqueda combinada. Las aplicaciones de búsqueda combinada son aplicaciones conectadas a varios almacenes de datos.

Otros tipos de filtros

El filtro de relevancia a nivel de documento no es la única forma de filtrar los datos devueltos por las consultas. También puedes usar expresiones de filtro para filtrar los resultados en función de los metadatos (en la indexación avanzada de sitios web y en los almacenes de datos no estructurados con metadatos) y los valores de los campos (en los almacenes de datos estructurados).

Para obtener información, consulta:

Si usas tanto una expresión de filtro como el filtro de relevancia a nivel de documento, la expresión de filtro se aplica primero a los resultados y, después, se aplica el filtro de relevancia a nivel de documento.

Antes de empezar

Asegúrate de haber creado una aplicación y un almacén de datos, y de haber insertado datos en el almacén. Para obtener más información, consulta Crear una aplicación de búsqueda. Consulta también Tipos de datos y aplicaciones admitidos para el filtro de relevancia a nivel de documento.

Para filtrar por relevancia, sigue estos pasos:

  1. Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.

    1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

      Ir a Aplicaciones

    2. En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.

  2. Para filtrar la búsqueda por relevancia a nivel de documento, especifica el campo relevanceFilterSpec que define solo un tipo de umbral para cada tipo de búsqueda mediante el método engines.servingConfigs.search. Es decir, puedes especificar relevanceThreshold o semanticRelevanceThreshold para un tipo de búsqueda concreto.

    curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1alpha/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",
    "relevanceFilterSpec": {
      "keywordSearchThreshold":  {
          "relevanceThreshold": "RELEVANCE_THRESHOLD"
      },
      "semanticSearchThreshold":  {
          "semanticRelevanceThreshold": SEMANTIC_RELEVANCE_THRESHOLD
      }
    }
    }'
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de tu proyecto de Google Cloud .
    • APP_ID: el ID de la aplicación de Vertex AI Search que quieres consultar.
    • QUERY: el texto de la consulta que se va a buscar.
    • RELEVANCE_THRESHOLD: uno de los siguientes: HIGH, MEDIUM, LOW, LOWEST.
    • SEMANTIC_RELEVANCE_THRESHOLD: valor de punto flotante en el intervalo [0,1].
  3. Prueba varias consultas con umbrales diferentes para determinar la mejor configuración de umbral para tus datos y tu aplicación.