Filtrer la recherche sur le site Web

Cette page explique comment filtrer les requêtes de recherche d'une application de recherche à l'aide de données de site Web.

Avant de commencer

Assurez-vous d'avoir créé une application et un 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 manière 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 d'une recherche sur le site Web de base ou d'une indexation avancée de site Web:

Expressions de filtre pour la recherche de base sur un site Web

Cette section explique le comportement des expressions de filtre avec la recherche de base sur le site Web (l'indexation avancée du site Web est désactivée).

Syntaxe de la recherche de base sur un site Web

La forme Backus-Naur étendue suivante résume la syntaxe de l'expression de filtre pour créer un filtre de recherche sur un site Web lorsque vous disposez d'une recherche de base sur le site Web. Les guillemets doubles après le deux-points dans un filtre sont strictement appliqués.

    # 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 le site Web

Voici les champs disponibles pour filtrer la recherche sur votre site Web lorsque vous disposez d'une recherche basique sur site:

  • cr (chaîne) Limite les résultats de recherche aux documents d'un pays spécifique. Pour obtenir la liste des valeurs acceptées, consultez la section 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 de highRange pour être inclus dans la réponse. Spécifiez à la fois highRange et lowRange 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 égal ou supérieur à la valeur de lowRange pour que ce document soit inclus dans la réponse. Spécifiez à la fois lowRange et highRange 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 avec une extension spécifiée. Pour obtenir la liste des types de fichiers acceptés, consultez la section Types de fichiers indexables par Google.

  • lr (chaîne) Limite les résultats de recherche aux documents rédigés dans une langue spécifiée. Pour obtenir la liste des langues acceptées, consultez la section Paramètres de requête (lr).

  • rights (chaîne) Permet de filtrer les résultats de recherche en fonction de la licence. Pour connaître les valeurs acceptées, consultez la section Paramètres de requête (droits).

  • siteSearch (chaîne) Spécifie un format d'URL pour les pages Web que votre requête doit rechercher.

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 provenant des États-Unis et appartenant au 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 (l'indexation avancée de site Web est activée).

Champs disponibles pour l'indexation avancée de site Web

Lorsque vous disposez d'une indexation avancée de votre site Web, vous pouvez filtrer votre recherche sur le site à l'aide des champs suivants:

  • siteSearch (chaîne): format d'URL pour les pages Web que votre requête doit rechercher.
  • Noms de balises meta et noms d'attributs PageMap: données structurées provenant de vos pages Web que vous pouvez ajouter au schéma de votre data store pour rendre les champs indexables, recherchables et récupérables. 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ésume la syntaxe d'expression de filtre pour créer un filtre de recherche de site Web lorsque vous disposez d'une indexation avancée de site Web. Les guillemets doubles après le deux-points dans un filtre sont strictement appliqués.

Lorsque vous filtrez pour 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'utilisation de l'indexation avancée de site Web

Voici quelques exemples de filtres pour l'indexation avancée de site Web avec siteSearch:

  • {"filter": "siteSearch:\"https://example.com/example_domain\""}

    Filtres pour les documents du 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 situés dans des domaines correspondant au premier ou au deuxième format d'URL. Par exemple, https://altostrat.com/subdomain/pages/title_page, https://cymbalgroup.com/subdomain/pages/title_page ou https://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 contenant la balise meta ou l'attribut PageMap nommé product, dont la valeur est networking ou compute.

  • {"filter": "NOT product: ANY(\"storage\")"}

    Filtres pour les documents qui ne contiennent pas la balise meta ou le nom de l'attribut PageMap product avec la valeur storage.

Pour en savoir plus sur les noms de tags 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.

Pour filtrer une recherche sur un site Web, procédez comme suit:

  1. Recherchez votre ID d'application. Si vous disposez déjà de votre ID d'application, passez à l'étape suivante.

    1. Dans la console Google Cloud, accédez à la page Agent Builder.

      Accédez à "Applications".

    2. Sur la page Applications, recherchez le nom de votre application et obtenez son ID dans la colonne ID.

  2. Pour filtrer une recherche sur un site Web, utilisez le champ filter avec la méthode engines.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"
    }'