Améliorer les résultats de recherche

Vous pouvez spécifier des conditions de boost dans votre requête de recherche pour mettre en avant ou en arrière certains documents dans vos résultats de recherche. Lorsqu'un document répond aux conditions spécifiées, des valeurs de boost lui sont appliquées et les résultats sont triés en conséquence. Vous pouvez également spécifier des valeurs numériques et des valeurs de code temporel personnalisées qui vous permettent de classer les résultats en fonction de paramètres tels que la popularité et la fraîcheur.

La spécification de boost dans une requête de recherche est différente d'un contrôle de boost associé à une configuration de diffusion. La spécification de boost dans le champ boostSpec remplace le contrôle de boost défini dans le champ boostAction d'une configuration de diffusion. Pour en savoir plus sur les commandes de boost, consultez la section À propos des commandes de boost.

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

Vous pouvez appliquer ces spécifications de boost pour interroger des applications de recherche multimédia et des applications de recherche génériques contenant des données structurées, non structurées et de site Web. Ces spécifications ne s'appliquent pas aux applications de recherche de services de santé.

Boost avec une condition fixe

Pour augmenter 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 champ boostSpec lorsque vous envoyez une requête servingConfigs.search.

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

    La spécification contient les paramètres suivants:

    • BOOST_CONDITION : expression de filtre de texte pour sélectionner les documents auxquels l'amélioration est appliquée. Le filtre doit renvoyer une valeur booléenne.
    • BOOST_VALUE : nombre à virgule flottante compris dans la plage [-1,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 mis en avant (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 mettre en avant les hôtels dont la note est égale ou supérieure à trois étoiles. La note est disponible dans le champ numérique star_rating. Vous pouvez spécifier condition dans 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'une même valeur.

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

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

Vous pouvez améliorer les résultats en fonction d'attributs numériques personnalisés de manière linéaire par segments en spécifiant des points de contrôle et leurs valeurs d'amélioration 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 champ boostSpec lorsque vous envoyez une requête servingConfigs.search.

    {
      "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 pour sélectionner les documents auxquels l'amélioration est appliquée. Le filtre doit renvoyer une valeur booléenne.
    • 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 dans la plage [-1,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 mis en avant (ils apparaissent plus haut dans les résultats). Indique le montant de l'amélioration mappé sur l'attribut personnalisé pour un point de contrôle donné.

Lorsqu'un document des résultats de recherche répond à la condition spécifiée, un montant de boost est appliqué comme suit:

Valeur d'attribut Montant du boost
Moins que le premier point de contrôle Est égale à l'intensité du premier point de contrôle
Égal au point de contrôle Est égal au montant de la promotion mappée
Entre les points de contrôle est calculée par interpolation linéaire ;
Supérieure à celle du dernier point de contrôle Est égale au montant de l'accentuation du dernier point de contrôle

Exemple d'utilisation

Supposons que votre data store contienne des données sur des hôtels et leurs notes. Vous souhaitez améliorer les résultats de recherche d'hôtels en fonction de leur nombre d'étoiles. 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 mis en avant 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é à l'aide de l'interpolation linéaire
égal à 4,0 0,30
entre 4,0 et 4,5 entre 0,30 et 0,32, calculé à l'aide de l'interpolation linéaire
supérieur ou égal à 4,5 0,32

Boost en fonction de la fraîcheur

Vous pouvez améliorer les résultats en fonction des attributs de date et d'heure de manière linéaire par segments en spécifiant des points de contrôle et leurs valeurs d'amélioration 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 champ boostSpec lorsque vous envoyez une requête servingConfigs.search.

    {
      "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 pour sélectionner les documents auxquels l'amélioration est appliquée. Le filtre doit renvoyer une valeur booléenne.
    • DATETIME_FIELD_NAME: nom du champ d'un attribut DATETIME personnalisé, tel que la date de publication ou la date de la dernière mise à jour, ou d'un attribut prédéfini inféré par Google, tel que datePublished.
    • DURATION_VALUE: valeur de durée dans le type de données dayTimeDuration qui détermine la fraîcheur d'un document. Il s'agit de la durée entre la date et l'heure de la recherche et la date et l'heure de l'attribut de date et d'heure personnalisé d'un document. La valeur de la durée doit être spécifiée selon le format ISO 8601 dans le format [nD][T[nH][nM][nS]]. Par exemple, la durée entre le 1er janvier 2024 et le 1er mars 2024 peut être exprimée sous la forme 59D. De même, la durée de deux jours et demi peut être exprimée sous la forme 2DT12H. Pour en savoir plus, consultez la section ControlPoint.
    • BOOST_AMOUNT : nombre à virgule flottante compris dans la plage [-1,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 mis en avant (ils apparaissent plus haut dans les résultats). Indique le montant de l'amélioration mappé sur l'attribut de date et heure personnalisée pour un point de contrôle donné.

Lorsqu'un document des résultats de recherche répond à la condition spécifiée, un montant de boost est appliqué comme suit:

Valeur de durée Montant du boost
Moins que le premier point de contrôle Est égal au niveau d'accentuation du premier point de contrôle
Égal à un point de contrôle donné Est égal au montant de la promotion mappée
Entre les points de contrôle est calculée par interpolation linéaire ;
Supérieure à celle du dernier point de contrôle Est égale au montant du boost du dernier point de contrôle

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

Supposons que votre data store contient des données structurées où chaque document possède une date de publication. Vous souhaitez améliorer les résultats de recherche en fonction de leur fraîcheur. 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 mis en avant comme suit:

Actualisation Montant du boost
moins de sept jours 0,40
entre sept et 30 jours entre 0,40 et 0,37, calculé à l'aide d'une interpolation linéaire
égal à 30 jours 0,37
entre 30 et 60 jours entre 0,37 et 0,32, calculé à l'aide de l'interpolation linéaire
égal à 60 jours 0,32
entre 60 et 90 jours entre 0,32 et 0,0, calculé à l'aide d'une interpolation linéaire
supérieure ou égale à 90 jours 0,0

Exemple de cas d'utilisation utilisant une date de page inférée par Google

Lorsque Google explore les pages Web de votre data store de site Web, il infère les données de page à l'aide des propriétés qui s'appliquent à votre contenu. Vertex AI Search ajoute ces propriétés de données de page inférées à votre schéma. Ces données inférées 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 améliorer 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 infère ces dates dans la mesure du possible. Les dates inférées 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 nullables.

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 votre magasin de données de site Web Vertex AI Search après la mise à jour. Pour en savoir plus, consultez l'article de blog Aidez la recherche Google à connaître la date la plus pertinente pour votre page Web et découvrez comment fonctionnent les données structurées dans la recherche Google.

Pour ajouter des attributs pour les données structurées personnalisés afin d'enrichir votre index, consultez la page Ajouter des attributs pour les données structurées personnalisés au schéma du data store données.

Ajustement du montant de l'amélioration

En plus des facteurs qui influencent le classement d'un résultat, tels que la correspondance des mots clés, la correspondance de contexte 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, par exemple 0,1 ou moins, et de l'ajuster en fonction du résultat de la recherche.

Exemple de cas d'utilisation avec le filtre de pertinence

La régulation du montant de l'amélioration est particulièrement importante lorsque vous utilisez le champ boostSpec avec le filtre de pertinence. Pour en savoir plus sur le filtre de pertinence, consultez la section Filtrer les recherches en fonction de la pertinence au niveau du document.

Supposons que vous disposiez de différents documents avec des dates de publication différentes. Pour une requête spécifique, 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 à interroger.

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 d'amélioration telle que les documents publiés au cours des 31 derniers jours soient améliorés d'une valeur de 0,7 et les documents datant de plus d'une semaine, mais de moins de 60 jours, soient améliorés d'une valeur de 0,6.

Dans la sortie 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 le moins pertinent est filtré par le filtre de pertinence. Les documents les moins pertinents pour une requête sont classés en haut de la page, car ils sont mis en avant par un boost important. Les résultats les plus pertinents sont moins bien classés.

Par conséquent, Google vous recommande de commencer par une valeur faible et précise, puis de l'ajuster en fonction des résultats de recherche. Dans cet exemple, commencer avec un montant de boost de 0,1 ou moins peut générer des résultats plus pertinents en haut de la page.

Étape suivante