Lorsque vous effectuez une recherche dans votre application Agent Search, vous pouvez spécifier des filtres de pertinence au niveau du document afin que seuls les documents qui répondent au seuil de filtre soient renvoyés comme résultats. Cette page explique les types de seuils, l'importance de les optimiser, et comment spécifier des filtres de pertinence et leur seuil.
À propos du filtrage par pertinence au niveau du document
Lorsqu'une requête de recherche renvoie un résultat, elle attribue un niveau de pertinence à chaque document récupéré. Dans votre requête de recherche, vous pouvez définir un seuil pour ne renvoyer que les documents qui répondent au seuil de filtre. La définition d'un seuil élevé peut réduire le nombre de documents renvoyés par la requête. En revanche, la définition d'un seuil bas peut diluer les résultats avec des documents peu pertinents pour la requête de l'utilisateur.
Par conséquent, si vous constatez que le résultat contient trop de documents dont la pertinence est insuffisante pour vos utilisateurs, définissez un seuil de pertinence élevé pour limiter les résultats aux quelques documents les plus pertinents. Si un seuil élevé est trop restrictif, vous pouvez le réduire à une valeur plus optimale.
Types de recherches
Vous pouvez appliquer des filtres de pertinence aux types de recherches suivants :
- Recherche par mot clé : récupère des documents en fonction de la recherche par mot clé.
- Recherche par similarité sémantique : récupère des documents en fonction des embeddings.
Dans la définition de votre filtre de pertinence, vous pouvez spécifier le type de seuil pour chacune de ces recherches. La recherche récupère les documents pour la recherche donnée, puis applique le seuil spécifié.
Types de seuils
Vous pouvez spécifier l'un des types de seuils suivants pour la recherche par mot clé et par similarité sémantique lorsque vous envoyez votre requête de recherche.
Seuil de pertinence : lorsque vous définissez ce seuil, la recherche utilise un modèle propriétaire pour déterminer la pertinence d'un document. Dans ce cas, la recherche peut utiliser n'importe quel signal pertinent, tel que le score de similarité des mots clés, le score de thématique et le score de similarité sémantique.
Le seuil de pertinence est un paramètre à granularité grossière qui autorise les valeurs suivantes :
HIGH,MEDIUM,LOWetLOWEST. Un seuilHIGHpeut renvoyer moins de documents avec un score de pertinence élevé, tandis que le seuilLOWESTpeut renvoyer plus de documents qui ne sont pas pertinents pour la requête de recherche.Seuil de pertinence sémantique : lorsque vous définissez ce seuil, le filtre s'appuie uniquement sur le score de similarité sémantique pour déterminer la pertinence d'un document.
Le seuil de pertinence sémantique est un paramètre à granularité fine et une valeur à virgule flottante comprise entre 0 et 1. Si vous définissez le seuil sur zéro, tous les documents sont renvoyés, tandis que si vous le définissez sur un, seuls les documents les plus pertinents sont renvoyés.
Définition et exemple de filtre de pertinence
Pour définir des filtres de pertinence dans votre requête de recherche, spécifiez un seul type de seuil (seuil de pertinence et seuil de pertinence sémantique) pour chaque type de recherche (recherche par mot clé et recherche sémantique). Vous pouvez spécifier l'un des types de recherche ou les deux dans la spécification du filtre de pertinence. Toutefois, un seul type de seuil doit être défini dans chaque type de recherche. Nous vous conseillons, par exemple, de suivre les recommandations suivantes :
{
"relevanceFilterSpec": {
"keywordSearchThreshold": {
"relevanceThreshold": "LOW"
},
"semanticSearchThreshold": {
"semanticRelevanceThreshold": 0.871
}
}
}
Dans cette requête de recherche, les résultats sont renvoyés en deux étapes : la récupération et le filtrage.
- La recherche récupère les documents en fonction de la correspondance des mots clés, puis les filtre avec un seuil de pertinence faible. Cela renvoie un grand nombre de documents récupérés.
- Simultanément, la recherche récupère les documents en fonction de la similarité sémantique, puis les filtre avec un seuil de pertinence sémantique élevé de
0.871. Cela renvoie moins de documents récupérés.
La recherche met davantage l'accent sur la correspondance des mots clés que sur la similarité sémantique. Les filtres autorisent davantage de documents récupérés en raison de la correspondance des mots clés.
De même, vous pouvez définir le filtre de pertinence de la manière suivante pour renvoyer moins de documents avec des mots clés correspondants et plus de documents avec une similarité sémantique.
"relevanceFilterSpec": {
"keywordSearchThreshold": {
"semanticRelevanceThreshold": 0.871
},
"semanticSearchThreshold": {
"relevanceThreshold": "LOW"
}
}
Types de données et applications compatibles avec le filtre de pertinence au niveau du document
Le filtre de pertinence au niveau du document peut être appliqué aux datastores contenant les types de données suivants :
- Données de sites Web avec indexation avancée de sites Web
- Données non structurées personnalisées
- Données structurées personnalisées
Le filtre de pertinence au niveau du document ne fonctionne pas pour les datastores avec indexation de base de sites Web, les données multimédias ni les données de santé.
De plus, le filtre de pertinence au niveau du document ne peut pas être utilisé avec les applications de recherche combinée. Les applications de recherche combinée sont des applications connectées à plusieurs datastores.
Autres types de filtres
Le filtre de pertinence au niveau du document n'est pas le seul moyen de filtrer les données renvoyées par les requêtes. Vous pouvez également utiliser des expressions de filtre pour filtrer les résultats en fonction des métadonnées (dans l'indexation avancée de sites Web et les datastores de données non structurées avec métadonnées) et des valeurs de champ (dans les datastores de données structurées).
Pour en savoir plus, consultez les sections suivantes :
Si vous utilisez à la fois une expression de filtre et le filtre de pertinence au niveau du document, l'expression de filtre est appliquée en premier aux résultats, puis le filtre de pertinence au niveau du document.
Avant de commencer
Assurez-vous d'avoir créé une application et data store, et d'avoir ingéré des données dans votre data store. Pour en savoir plus, consultez Créer une application de recherche. Consultez également Types de données et applications compatibles avec le filtre de pertinence au niveau du document.
Rechercher et filtrer les résultats par pertinence au niveau du document
Pour filtrer par pertinence, procédez comme suit :
Recherchez l'ID de votre application. Si vous disposez déjà de l'ID de votre application, passez à l'étape suivante.
Dans la Google Cloud console, accédez à la page Applications d'IA.
Sur la page Applications, recherchez le nom de votre application et retrouvez son ID dans la colonne ID.
Pour filtrer la recherche par pertinence au niveau du document, spécifiez le
relevanceFilterSpecchamp qui ne définit qu'un seul type de seuil pour chaque type de recherche à l'aide de laengines.servingConfigs.searchméthode. Autrement dit, vous pouvez spécifierrelevanceThresholdousemanticRelevanceThresholdpour un type de recherche donné.curl -X POST -H "Authorization: Bearer $(gcloud auth application-default 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", "relevanceFilterSpec": { "keywordSearchThreshold": { "relevanceThreshold": "RELEVANCE_THRESHOLD" }, "semanticSearchThreshold": { "semanticRelevanceThreshold": SEMANTIC_RELEVANCE_THRESHOLD } } }'Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.APP_ID: ID de l'application Agent Search que vous souhaitez interroger.QUERY: texte de la requête à rechercher.RELEVANCE_THRESHOLD: l'une des valeurs suivantes :HIGH,MEDIUM,LOW,LOWEST.SEMANTIC_RELEVANCE_THRESHOLD: valeur à virgule flottante comprise entre 0 et 1.
Testez plusieurs requêtes avec différents seuils pour déterminer les meilleurs paramètres de seuil pour vos données et votre application.