Cette page explique comment filtrer les requêtes de recherche pour une application de recherche avec des données de site Web.
Avant de commencer
Assurez-vous d'avoir créé une application et data store, et d'avoir ingéré les données de votre site Web dans votre data store. Pour en savoir plus, consultez Créer une application de recherche.
À propos des expressions de filtre
Utilisez des expressions de filtre pour créer les filtres de recherche de votre site Web. La façon dont vous créez vos filtres varie selon que vous avez activé l'indexation avancée des sites Web. Consultez l'une des sections suivantes, selon que vous disposez de la recherche basique sur le site Web ou de l'indexation avancée de site Web :
Expressions de filtre pour la recherche de base sur un site Web
Expressions de filtre pour l'indexation avancée de sites Web
Expressions de filtrage pour la recherche de base sur un site Web
Cette section explique le comportement des expressions de filtre avec la recherche de base sur site Web (l'indexation avancée de site Web est désactivée).
Syntaxe pour la recherche de base sur un site Web
Le formulaire Backus–Naur étendu suivant résume la syntaxe des expressions de filtre pour créer un filtre de recherche sur un site Web lorsque vous disposez d'une recherche de base sur un site Web. Les guillemets doubles après le deux-points d'un filtre sont obligatoires.
# A single expression or multiple expressions that are joined by "AND". filter = expression, { "AND", expression }; expression = # A simple expression applying to a text url string. | filter_key, ":", \"text_value\" filter_key = (cr | highRange | lowRange | fileType | lr | rights | siteSearch); text_value = string value to filter on;
Champs disponibles pour la recherche basique sur un site Web
Voici les champs disponibles pour filtrer la recherche sur votre site Web lorsque vous disposez de la recherche basique sur site :
cr
(chaîne) : limite les résultats de recherche aux documents provenant d'un pays spécifique. Pour obtenir la liste des valeurs acceptées, consultez Valeurs de la collection de pays.highRange
(chaîne) : spécifie la limite supérieure de la plage de recherche. Si un document contient un nombre, celui-ci doit être inférieur ou égal à la valeur dehighRange
pour que le document soit inclus dans la réponse. SpécifiezhighRange
etlowRange
pour créer une requête de recherche dans la plage de ces paramètres.lowRange
(chaîne) Spécifie la limite inférieure de la plage de recherche. Si un document contient un nombre, celui-ci doit être supérieur ou égal à la valeur delowRange
pour que le document soit inclus dans la réponse. SpécifiezlowRange
ethighRange
pour créer une requête de recherche dans la plage de ces paramètres.fileType
(chaîne) : limite les résultats de recherche aux documents ayant une extension spécifique. Pour obtenir la liste des types de fichiers acceptés, consultez Types de fichiers indexables par Google.lr
(chaîne) : limite les résultats de recherche aux documents rédigés dans une langue spécifique. Pour obtenir la liste des langues disponibles, consultez Paramètres de requête (lr).rights
(chaîne) Filtre les résultats de recherche en fonction des licences. Pour connaître les valeurs acceptées, consultez Paramètres de requête (droits).siteSearch
(chaîne) : spécifie un format d'URL pour les pages Web dans lesquelles votre requête doit effectuer une recherche.
Exemples de recherche de base sur un site Web
Voici quelques exemples de filtres pour la recherche de base sur un site Web :
{"filter": "cr:\"countryUS\" AND siteSearch:\"https://example.com/example_domain\""}
Filtres pour les documents qui (1) proviennent des États-Unis et (2) se trouvent dans le domaine
https://example.com/example_domain
.{"filter": "fileType:\".pdf\" AND lr:\"lang_en\""}
Filtres pour les documents qui sont (1) des fichiers PDF et (2) en anglais.
{"filter": "rights:\"cc_publicdomain\""}
Filtres pour les documents appartenant au domaine public
Expressions de filtrage avec l'indexation avancée de site Web
Cette section explique le comportement des expressions de filtre avec l'indexation avancée de site Web (lorsque l'indexation avancée de site Web est activée).
Champs disponibles pour l'indexation avancée de site Web
Lorsque vous disposez de l'indexation avancée de site Web, vous pouvez filtrer la recherche sur votre site Web à l'aide des champs suivants :
siteSearch
(chaîne) : format d'URL pour les pages Web dans lesquelles votre requête doit effectuer une recherche.- Noms de balises
meta
et noms d'attributs PageMap : données structurées de vos pages Web qui peuvent être ajoutées au schéma de votre data store pour rendre les champs consultables, récupérables et indexables. Pour en savoir plus, consultez Utiliser des données structurées pour l'indexation avancée de sites Web.
Syntaxe pour l'indexation avancée de site Web
Le formulaire Backus–Naur étendu suivant récapitule la syntaxe des expressions de filtre pour créer un filtre de recherche de site Web lorsque vous disposez de l'indexation avancée de site Web. Les guillemets doubles après le deux-points d'un filtre sont obligatoires.
Lorsque vous filtrez sur siteSearch
, la syntaxe EBNF est la suivante :
# A single expression or multiple expressions that are joined by "OR". filter = expression, { "OR", expression }; # Expressions can be prefixed with "-" or "NOT" to express a negation. expression = [ "-" | "NOT " ], # A simple expression applying to a text url string. | filter_key, ":", \"url_string\" filter_key = siteSearch; url_string = double quoted string representing a URL;
Lorsque vous filtrez les noms de balises meta
et les noms d'attributs PageMap, la syntaxe EBNF est la suivante :
# A single expression or multiple expressions that are joined by "OR". filter = expression, { "OR", expression }; # Expressions can be prefixed with "-" or "NOT" to express a negation. expression = [ "-" | "NOT " ], # Function "ANY" returns true if the field exactly matches any of the literals. | text_field, ":", "ANY", "(", literal, { ",", literal }, ")" literal = double quoted string; # text_field corresponds to the meta tag or PageMap Attribute name, for example, category text_field = text field;
Exemples d'indexation avancée de site Web
Voici quelques exemples de filtres pour l'indexation avancée de sites Web avec siteSearch
:
{"filter": "siteSearch:\"https://example.com/example_domain\""}
Filtres pour les documents qui se trouvent dans le domaine
https://example.com/example_domain
. Exemple :https://example.com/example_domain/index.html
{"filter": "siteSearch:\"https://example.com/subdomains/*\""}
Filtre les documents qui se trouvent dans des domaines correspondant à
https://example.com/subdomains/*
. Exemple :https://example.com/subdomains/example_subdomain_page
.{"filter": "siteSearch:\"https://altostrat.com/subdomain/pages/*\" OR siteSearch:\"http://cymbalgroup.com/pages/*\""}
Filtres pour les documents qui se trouvent dans des domaines correspondant au premier ou au deuxième modèle d'URL. Par exemple,
https://altostrat.com/subdomain/pages/title_page
,https://cymbalgroup.com/subdomain/pages/title_page
ouhttps://altostrat.com/subdomain/pages/INFO
.
Voici quelques exemples de filtrage par nom d'attribut meta
ou PageMap :
{"filter": "product: ANY(\"networking\",\"compute\")"}
Filtre les documents qui contiennent le tag
meta
ou l'attribut PageMap nomméproduct
, dont la valeur estnetworking
oucompute
.{"filter": "NOT product: ANY(\"storage\")"}
Filtres pour les documents qui ne contiennent pas le tag
meta
ni le nom d'attribut PageMapproduct
avec sa valeurstorage
.
Pour en savoir plus sur les noms de balises meta
et les noms d'attributs PageMap utilisés pour l'indexation, consultez Exemple de cas d'utilisation des balises meta
et Exemple de cas d'utilisation des PageMaps.
Filtrer la recherche sur un site Web
Pour filtrer une recherche sur un site Web, procédez comme suit :
Trouvez l'ID de votre application. Si vous avez déjà votre ID d'application, passez à l'étape suivante.
Dans la console Google Cloud , accédez à la page AI Applications.
Sur la page Applications, recherchez le nom de votre application et récupérez son ID dans la colonne ID.
Pour filtrer une recherche sur un site Web, utilisez le champ
filter
avec la méthodeengines.servingConfigs.search
.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", "filter": "FILTER" }'
Remplacez les éléments suivants :
PROJECT_ID
: par l'ID du projet.APP_ID
: ID de votre application.QUERY
: texte de la requête à rechercher.FILTER
: champ de texte permettant de filtrer votre recherche à l'aide d'une expression de filtre. La valeur par défaut de cet attribut est une chaîne vide.Pour savoir comment créer un filtre pour la recherche de base sur un site Web, consultez Expressions de filtre avec la recherche de base sur un site Web.
Pour savoir comment créer un filtre pour l'indexation avancée de sites Web, consultez Expressions de filtre avec l'indexation avancée de sites Web.