Améliorer les résultats de recherche

Vous pouvez spécifier des conditions de boost dans votre requête de recherche pour promouvoir ou rétrograder certains documents dans vos résultats de recherche. Lorsqu'un document remplit les conditions spécifiées, des valeurs de boost lui sont appliquées et les résultats sont classés en conséquence. Vous pouvez également spécifier des valeurs numériques personnalisées et des valeurs d'horodatage qui vous permettent de classer les résultats en fonction de paramètres tels que la popularité et l'actualisation.

La spécification de boost dans une requête de recherche est différente d'une commande de boost associée à une configuration de diffusion. Pour en savoir plus sur les commandes de boost, consultez À propos des commandes de boost.

Cette page décrit les types suivants de spécifications de boost :

Vous pouvez appliquer ces spécifications de boost aux applications de recherche de contenu multimédia et aux applications de recherche personnalisées contenant des données structurées, non structurées et de site Web. Ces spécifications ne s'appliquent pas aux applications de recherche dans le secteur de la santé.

Boost avec une condition fixe

Pour booster les résultats d'un montant fixe en fonction de leur conformité à une condition, procédez comme suit :

  1. Spécifiez la spécification de boost dans le boostSpec champ lorsque vous envoyez une servingConfigs.search requête.

    {
      "boostSpec": {
        "conditionBoostSpecs": {
          "condition": "BOOST_CONDITION",
          "boost": BOOST_VALUE
        }
      }
    }
    

    La spécification contient les paramètres suivants :

    • BOOST_CONDITION : expression de filtre de texte permettant de sélectionner les documents auxquels le boost est appliqué. Le filtre doit renvoyer une valeur booléenne. Pour obtenir des exemples d'expressions de filtre, consultez Syntaxe des expressions de filtre et Syntaxe pour l'indexation avancée.
    • BOOST_VALUE : nombre à virgule flottante compris entre -1 et 1. Lorsque la valeur est négative, les résultats sont rétrogradés (ils apparaissent plus bas dans les résultats). Lorsque la valeur est positive, les résultats sont promus (ils apparaissent plus haut dans les résultats).

Exemple d'utilisation

Supposons que votre data store contienne des données sur les hôtels et leurs notes. Vous souhaitez booster les hôtels dont la note est supérieure ou égale à trois. La note est disponible dans le champ numérique star_rating. Vous pouvez spécifier le condition dans le boostSpec comme star_rating >= 3.0 et une valeur de boost de 0,7 pour booster tous les hôtels dont le star_rating est égal ou supérieur à 3,0 d'un montant égal.

{
  "boostSpec": {
    "conditionBoostSpecs": {
      "condition": "star_rating>=3.0",
      "boost": 0.7
    }
  }
}

Boost à l'aide d'attributs numériques personnalisés

Vous pouvez booster les résultats en fonction d'attributs numériques personnalisés de manière linéaire par morceaux en spécifiant des points de contrôle et leurs valeurs de boost correspondantes.

Pour spécifier une spécification de boost à l'aide d'attributs numériques personnalisés, procédez comme suit :

  1. Spécifiez la spécification de boost dans le boostSpec champ lorsque vous envoyez une servingConfigs.search requête.

    {
      "boostSpec": {
        "conditionBoostSpecs": {
            "condition": "BOOST_CONDITION",
            "boostControlSpec": {
              "attributeType": "NUMERICAL",
              "interpolationType": "LINEAR",
              "fieldName": "CUSTOM_ATTRIBUTE_FIELD_NAME",
              "controlPoints": [
                {
                  "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_1",
                  "boostAmount": BOOST_AMOUNT_1
                },
                {
                  "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_2",
                  "boostAmount": BOOST_AMOUNT_2
                }
              ]
            }
        }
      }
    }
    

    La spécification contient les paramètres suivants :

    • BOOST_CONDITION : expression de filtre de texte permettant de sélectionner les documents auxquels le boost est appliqué. Le filtre doit renvoyer une valeur booléenne. Pour obtenir des exemples d'expressions de filtre, consultez Syntaxe des expressions de filtre et Syntaxe pour l'indexation avancée.
    • CUSTOM_ATTRIBUTE_FIELD_NAME: nom du champ de l'attribut numérique personnalisé dont la valeur détermine le montant du boost.
    • CUSTOM_ATTRIBUTE_VALUE: valeur numérique de l'attribut personnalisé pour un point de contrôle donné avec un type de données de chaîne. Par exemple, "3.3" ou "12". Pour en savoir plus, consultez ControlPoint.
    • BOOST_AMOUNT: nombre à virgule flottante compris entre -1 et 1. Lorsque la valeur est négative, les résultats sont rétrogradés (ils apparaissent plus bas dans les résultats). Lorsque la valeur est positive, les résultats sont promus (ils apparaissent plus haut dans les résultats). Indique le montant du boost mappé à l'attribut personnalisé pour un point de contrôle donné.

Lorsqu'un document dans le résultat de recherche remplit la condition spécifiée, un montant de boost est appliqué comme suit :

Valeur d'attribut Montant du boost
Inférieur au premier point de contrôle Égal au montant du boost du premier point de contrôle
Égal au point de contrôle Égal au montant du boost mappé
Entre les points de contrôle Calculé par interpolation linéaire
Supérieur au dernier point de contrôle Égal au montant du boost du dernier point de contrôle

Exemple d'utilisation

Supposons que votre data store contienne des données sur les hôtels et leurs notes. Vous souhaitez booster les résultats de recherche d'hôtels en proportion de leur note. Vous pouvez définir la spécification de boost comme suit :

{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": "star_rating >= 3.0",
        "boostControlSpec": {
          "attributeType": "NUMERICAL",
          "interpolationType": "LINEAR",
          "fieldName": "star_rating",
          "controlPoints": [
            {
              "attributeValue": "3.5",
              "boostAmount": 0.25
            },
            {
              "attributeValue": "4.0",
              "boostAmount": 0.30
            },
            {
              "attributeValue": "4.5",
              "boostAmount": 0.32
            }
          ]
        }
    }
  }
}

Dans ce scénario, les résultats de recherche sont boostés comme suit :

Étoiles Montant du boost
inférieur ou égal à 3,5 0,25
entre 3,5 et 4,0 entre 0,25 et 0,30, calculé par interpolation linéaire
égal à 4,0 0,30
entre 4,0 et 4,5 entre 0,30 et 0,32, calculé par interpolation linéaire
supérieur ou égal à 4,5 0,32

Boost en fonction de l'actualisation

Vous pouvez booster les résultats en fonction d'attributs de date et d'heure de manière linéaire par morceaux en spécifiant des points de contrôle et leurs valeurs de boost correspondantes.

Pour spécifier une spécification de boost à l'aide d'attributs de date et d'heure personnalisés, procédez comme suit :

  1. Spécifiez la spécification de boost dans le boostSpec champ lorsque vous envoyez une servingConfigs.search requête.

    {
      "boostSpec": {
        "conditionBoostSpecs": {
            "condition": "BOOST_CONDITION",
            "boostControlSpec": {
              "fieldName": "DATETIME_FIELD_NAME",
              "attributeType": "FRESHNESS",
              "interpolationType": "LINEAR",
              "controlPoints": [
                {
                  "attributeValue": "DURATION_VALUE_1",
                  "boostAmount": BOOST_AMOUNT_1
                },
                {
                  "attributeValue": "DURATION_VALUE_2",
                  "boostAmount": BOOST_AMOUNT_2
                }
              ]
            }
        }
      }
    }
    

    La spécification contient les paramètres suivants :

    • BOOST_CONDITION : expression de filtre de texte permettant de sélectionner les documents auxquels le boost est appliqué. Le filtre doit renvoyer une valeur booléenne. Pour obtenir des exemples d'expressions de filtre, consultez Syntaxe des expressions de filtre et Syntaxe pour l'indexation avancée.
    • DATETIME_FIELD_NAME : nom du champ d'un attribut personnaliséDATETIME, tel que la date de publication ou la date de la dernière mise à jour, ou d'un attribut prédéfini déduit par Google, tel que datePublished.
    • DURATION_VALUE : valeur de durée dans le type de données dayTimeDuration qui détermine l'actualisation d'un document. Elle est calculée comme la durée entre la date et l'heure d'exécution de la recherche et la date et l'heure de l'attribut de date et d'heure personnalisé d'un document. La valeur de durée doit être spécifiée au format ISO 8601 selon le modèle [nD][T[nH][nM][nS]]. Par exemple, la durée entre le 1er janvier 2024 et le 1er mars 2024 peut être exprimée par 59D. De même, la durée de deux jours et demi peut être exprimée par 2DT12H. Pour en savoir plus, consultez ControlPoint.
    • BOOST_AMOUNT: nombre à virgule flottante compris entre -1 et 1. Lorsque la valeur est négative, les résultats sont rétrogradés (ils apparaissent plus bas dans les résultats). Lorsque la valeur est positive, les résultats sont promus (ils apparaissent plus haut dans les résultats). Indique le montant du boost mappé à l'attribut de date et d'heure personnalisé pour un point de contrôle donné.

Lorsqu'un document dans le résultat de recherche remplit la condition spécifiée, un montant de boost est appliqué comme suit :

Valeur de durée Montant du boost
Inférieur au premier point de contrôle Égal au montant du boost du premier point de contrôle
Égal à un point de contrôle donné Égal au montant du boost mappé
Entre les points de contrôle Calculé par interpolation linéaire
Supérieur au dernier point de contrôle Égal au montant du boost du dernier point de contrôle

Exemple d'utilisation avec un attribut de date et d'heure personnalisé

Supposons que votre data store contienne des données structurées où chaque document comporte une date de publication. Vous souhaitez booster les résultats de recherche en proportion de leur actualisation. Vous pouvez définir la spécification de boost comme suit :

{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": true,
        "boostControlSpec": {
          "fieldName": "publication_date",
          "attributeType": "FRESHNESS",
          "interpolationType": "LINEAR",
          "controlPoints": [
            {
              "attributeValue": "7D",
              "boostAmount": 0.40
            },
            {
              "attributeValue": "30D",
              "boostAmount": 0.37
            },
            {
              "attributeValue": "60D",
              "boostAmount": 0.32
            },
            {
              "attributeValue": "90D",
              "boostAmount": 0
            }
          ]
        }
    }
  }
}

Dans ce scénario, les résultats de recherche sont boostés comme suit :

Actualisation Montant du boost
inférieur ou égal à 7 jours 0,40
entre 7 et 30 jours entre 0,40 et 0,37, calculé par interpolation linéaire
égal à 30 jours 0,37
entre 30 et 60 jours entre 0,37 et 0,32, calculé par interpolation linéaire
égal à 60 jours 0,32
entre 60 et 90 jours entre 0,32 et 0,0, calculé par interpolation linéaire
supérieur ou égal à 90 jours 0,0

Exemple d'utilisation avec une date de page déduite par Google

Lors de l'exploration des pages Web dans le data store de votre site Web, Google déduit les données de la page à l'aide des propriétés qui s'appliquent à votre contenu. Agent Search ajoute ces propriétés de données de page déduites à votre schéma. Ces données déduites incluent les propriétés de date prédéfinies suivantes :

  • datePublished : date et heure de la première publication de la page
  • dateModified : date et heure de la dernière modification de la page

Ces propriétés sont indexées automatiquement. Vous pouvez utiliser directement ces propriétés de date pour enrichir votre recherche sans les ajouter à votre schéma. Vous pouvez utiliser ces propriétés prédéfinies pour booster votre page. Par exemple, vous pouvez définir la spécification de boost en définissant le champ fieldName sur pageModified comme suit :

{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": true,
        "boostControlSpec": {
          "fieldName": "dateModified",
          "attributeType": "FRESHNESS",
          "interpolationType": "LINEAR",
          "controlPoints": [
            {
              "attributeValue": "7D",
              "boostAmount": 0.35
            },
            {
              "attributeValue": "30D",
              "boostAmount": 0.30
            }
          ]
        }
    }
  }
}

Google déduit ces dates dans la mesure du possible, et les dates déduites peuvent ne pas correspondre aux dates réelles. Ces champs ne sont renseignés que lorsque Google est très confiant. Lorsque ces valeurs de date sont manquantes, ces champs deviennent acceptant les valeurs nulles.

Par mesure de précaution, Google recommande au propriétaire de votre domaine ou à l'administrateur de votre site Web de mettre à jour ces propriétés pour vos pages Web et de mettre à jour manuellement le datastore de votre site Web Agent Search après la mise à jour. Pour en savoir plus, consultez Aidez la recherche Google à connaître la meilleure date pour votre article de blog sur une page Web et découvrez comment les données structurées fonctionnent dans la recherche Google.

Pour ajouter des attributs de données structurées personnalisés afin d'enrichir votre index, consultez Ajouter des attributs de données structurées personnalisés au data store datastore

Ajustement du montant du boost

Outre les facteurs qui influencent le classement d'un résultat, tels que la correspondance des mots clés, la correspondance contextuelle et la pertinence, la condition de boost a un impact significatif sur le classement d'un résultat. Vous devez donc calibrer soigneusement le montant du boost. Google vous recommande de commencer par un montant de boost faible et précis, tel que 0,1 ou moins, et de l'ajuster en fonction du résultat de la recherche.

Exemple d'utilisation avec un filtre de pertinence

La régulation du montant du boost est particulièrement importante lorsque vous utilisez le champ boostSpec avec un filtre de pertinence. Pour en savoir plus sur le filtre de pertinence, consultez Filtrer les recherches par pertinence au niveau du document.

Supposons que vous ayez différents documents avec différentes dates de publication. Pour une requête particulière, le tableau suivant représente le classement absolu sans implémenter de condition de boost ni de filtre de pertinence, et indique la pertinence des documents par rapport à la requête.

Document Date de publication Pertinence Classement
A 1er février 2024 Élevée #1
B 1er mars 2024 Élevée #2
C 1er avril 2024 Le plus faible #3
D 1er mai 2024 Moyenne #4
E 1er juin 2024 Faible #5

Le 6 juin 2024, vous ajoutez les conditions de recherche suivantes dans votre requête de recherche :

  • Filtre de pertinence défini sur LOW.
  • Valeur de boost telle que les documents publiés au cours des 31 derniers jours sont boostés d'une valeur de 0,7, et les documents datant de plus d'une semaine, mais de moins de 60 jours, sont boostés d'une valeur de 0,6.

Dans le résultat de recherche, les résultats sont d'abord filtrés par pertinence, puis le montant du boost est appliqué. Par conséquent, les conditions appliquées modifient le classement des pages dans les résultats de la manière suivante :

Document Date de publication Pertinence Classement
E 1er juin 2024 Faible #1
D 1er mai 2024 Moyenne #2
A 1er février 2024 Élevée #3
B 1er mars 2024 Élevée #4

Le résultat avec la pertinence la plus faible est filtré en raison du filtre de pertinence. Les documents moins pertinents pour une requête sont classés en tant que meilleurs résultats, car ils sont boostés par un montant de boost élevé. Les résultats les plus pertinents sont classés plus bas.

Par conséquent, Google vous recommande de commencer le montant du boost à partir d'une valeur faible et précise, et d'ajuster la valeur en fonction du résultat de la recherche. Dans cet exemple, commencer par des montants de boost de 0,1 ou moins peut générer des résultats plus pertinents en haut.

Étape suivante