Method: projects.locations.collections.engines.servingConfigs.searchLite

Effectue une recherche. Semblable à la méthode SearchService.Search, mais il s'agit d'une version Lite qui permet d'utiliser une clé API pour l'authentification, sans nécessiter de vérifications OAuth ni IAM.

Cette méthode n'est compatible qu'avec la recherche sur des sites Web publics. Si des datastores et des moteurs non associés à la recherche sur le site Web public sont spécifiés, une erreur FAILED_PRECONDITION est renvoyée.

Cette méthode peut être utilisée pour un onboarding facile sans avoir à implémenter de backend d'authentification. Toutefois, il est fortement recommandé d'utiliser SearchService.Search avec les vérifications OAuth et IAM requises pour une meilleure sécurité des données.

Requête HTTP

POST https://discoveryengine.googleapis.com/v1beta/{servingConfig=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:searchLite

L'URL utilise la syntaxe de transcodage gRPC.

Paramètres de chemin d'accès

Paramètres
servingConfig

string

Obligatoire. Nom de ressource de la configuration de diffusion servingConfigs.search, par exemple projects/*/locations/global/collections/default_collection/engines/*/servingConfigs/default_serving_config ou projects/*/locations/global/collections/default_collection/dataStores/default_data_store/servingConfigs/default_serving_config. Ce champ permet d'identifier le nom de la configuration de diffusion, c'est-à-dire l'ensemble des modèles utilisés pour effectuer la recherche.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation JSON
{
  "branch": string,
  "query": string,
  "imageQuery": {
    object (ImageQuery)
  },
  "pageSize": integer,
  "pageToken": string,
  "offset": integer,
  "oneBoxPageSize": integer,
  "dataStoreSpecs": [
    {
      object (DataStoreSpec)
    }
  ],
  "filter": string,
  "canonicalFilter": string,
  "orderBy": string,
  "userInfo": {
    object (UserInfo)
  },
  "languageCode": string,
  "regionCode": string,
  "facetSpecs": [
    {
      object (FacetSpec)
    }
  ],
  "boostSpec": {
    object (BoostSpec)
  },
  "params": {
    string: value,
    ...
  },
  "queryExpansionSpec": {
    object (QueryExpansionSpec)
  },
  "spellCorrectionSpec": {
    object (SpellCorrectionSpec)
  },
  "userPseudoId": string,
  "contentSearchSpec": {
    object (ContentSearchSpec)
  },
  "embeddingSpec": {
    object (EmbeddingSpec)
  },
  "rankingExpression": string,
  "rankingExpressionBackend": enum (RankingExpressionBackend),
  "safeSearch": boolean,
  "userLabels": {
    string: string,
    ...
  },
  "naturalLanguageQueryUnderstandingSpec": {
    object (NaturalLanguageQueryUnderstandingSpec)
  },
  "searchAsYouTypeSpec": {
    object (SearchAsYouTypeSpec)
  },
  "displaySpec": {
    object (DisplaySpec)
  },
  "session": string,
  "sessionSpec": {
    object (SessionSpec)
  },
  "relevanceThreshold": enum (RelevanceThreshold),
  "personalizationSpec": {
    object (PersonalizationSpec)
  },
  "relevanceScoreSpec": {
    object (RelevanceScoreSpec)
  },
  "searchAddonSpec": {
    object (SearchAddonSpec)
  }
}
Champs
branch

string

Nom de ressource de la branche, par exemple projects/*/locations/global/collections/default_collection/dataStores/default_data_store/branches/0.

Utilisez default_branch comme ID de branche ou laissez ce champ vide pour rechercher des documents dans la branche par défaut.

query

string

Requête de recherche brute.

imageQuery

object (ImageQuery)

Requête d'image brute.

pageSize

integer

Nombre maximal de Document à renvoyer. La valeur maximale autorisée dépend du type de données. Les valeurs supérieures à la valeur maximale sont ramenées à la valeur maximale.

  • Sites Web avec indexation de base : 10 par défaut, 25 maximum.
  • Sites Web avec indexation avancée : 25 par défaut, 50 maximum.
  • Autre : valeur par défaut 50, valeur maximale 100.

Si ce champ est négatif, une erreur INVALID_ARGUMENT est renvoyée.

pageToken

string

Jeton de page reçu d'un appel SearchService.Search précédent. Fournissez-le pour récupérer la page suivante.

Lors de la pagination, tous les autres paramètres fournis à SearchService.Search doivent correspondre à l'appel ayant fourni le jeton de page. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée.

offset

integer

Entier à index zéro spécifiant le décalage actuel (c'est-à-dire l'emplacement du résultat de départ parmi les Document jugés pertinents par l'API) dans les résultats de recherche. Ce champ n'est pris en compte que si pageToken n'est pas spécifié.

Si ce champ est négatif, une erreur INVALID_ARGUMENT est renvoyée.

Un décalage important peut être plafonné à un seuil raisonnable.

oneBoxPageSize

integer

Nombre maximal de résultats à renvoyer pour OneBox. Cela s'applique à chaque type de OneBox individuellement. Le nombre par défaut est 10.

dataStoreSpecs[]

object (DataStoreSpec)

Spécifications qui définissent les DataStore spécifiques à rechercher, ainsi que les configurations de ces data stores. Cela n'est pris en compte que pour les Engine comportant plusieurs data stores. Pour les moteurs avec un seul data store, les spécifications directement sous SearchRequest doivent être utilisées.

filter

string

La syntaxe des filtres consiste en un langage d'expression permettant de construire un prédicat à partir d'un ou de plusieurs champs des documents filtrés. L'expression de filtre est sensible à la casse.

Si ce champ n'est pas reconnaissable, un INVALID_ARGUMENT est renvoyé.

Le filtrage dans Vertex AI servingConfigs.search s'effectue en mappant la clé de filtre LHS à une propriété de clé définie dans le backend Vertex AI servingConfigs.search. Ce mappage est défini par le client dans son schéma. Par exemple, un client média peut avoir un champ "name" (nom) dans son schéma. Dans ce cas, le filtre se présenterait comme suit : filter --> name:'ANY("king kong")`

Pour en savoir plus sur le filtrage, y compris sur la syntaxe et les opérateurs de filtre, consultez Filtrer.

canonicalFilter

string

Filtre par défaut appliqué lorsqu'un utilisateur effectue une recherche sans cocher de filtres sur la page de recherche.

Filtre appliqué à chaque requête de recherche lorsque l'amélioration de la qualité, telle que l'expansion de la requête, est nécessaire. Si une requête ne génère pas suffisamment de résultats, ce filtre sera utilisé pour déterminer s'il faut activer ou non le flux d'expansion de la requête. Le filtre d'origine sera toujours utilisé pour la recherche élargie de la requête. Ce champ est fortement recommandé pour obtenir une qualité de recherche élevée.

Pour en savoir plus sur la syntaxe des filtres, consultez SearchRequest.filter.

orderBy

string

Ordre dans lequel les documents sont renvoyés. Les documents peuvent être triés par champ dans un objet Document. Laissez ce champ vide si les résultats sont triés par pertinence. L'expression orderBy est sensible à la casse.

Pour en savoir plus sur l'ordre des résultats de recherche sur le Web, consultez Ordre des résultats de recherche sur le Web. Pour en savoir plus sur l'ordre des résultats de recherche liés à la santé, consultez Ordre des résultats de recherche liés à la santé. Si ce champ n'est pas reconnaissable, un INVALID_ARGUMENT est renvoyé.

userInfo

object (UserInfo)

Informations sur l'utilisateur final. Fortement recommandé pour l'analyse et la personnalisation. UserInfo.user_agent est utilisé pour déduire deviceType à des fins d'analyse.

languageCode

string

Le code de langue BCP-47 ("en-US" ou "sr-Latn", par exemple). Pour en savoir plus, consultez Champs standards. Ce champ permet de mieux interpréter la requête. Si aucune valeur n'est spécifiée, le code de langue de la requête est détecté automatiquement, ce qui peut ne pas être exact.

regionCode

string

Le code de pays/région Unicode (CLDR) d'un emplacement, tel que "US" et "419". Pour en savoir plus, consultez Champs standards. Si cette valeur est définie, les résultats seront mis en avant en fonction du code régional fourni.

facetSpecs[]

object (FacetSpec)

Spécifications des facettes pour la recherche par facettes. Si ce paramètre est vide, aucun facette n'est renvoyé.

Vous ne pouvez pas saisir plus de 100 valeurs. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée.

boostSpec

object (BoostSpec)

Spécifiez un boost pour certains documents. Pour en savoir plus sur l'amplification, consultez Amplification.

params

map (key: string, value: value (Value format))

Paramètres de recherche supplémentaires.

Pour la recherche sur les sites Web publics uniquement, les valeurs acceptées sont les suivantes :

  • user_country_code : chaîne. La valeur par défaut est vide. Si cette valeur n'est pas vide, les résultats sont limités ou mis en avant en fonction de l'emplacement fourni. Par exemple, user_country_code: "au".

Pour connaître les codes disponibles, consultez Codes pays.

  • searchType : double. La valeur par défaut est vide. Permet la recherche de contenu autre que des pages Web en fonction de la valeur. La seule valeur non définie par défaut valide est 1, qui permet la recherche d'images. Par exemple, searchType: 1.
queryExpansionSpec

object (QueryExpansionSpec)

Spécification de l'extension des requêtes qui indique les conditions dans lesquelles l'extension des requêtes se produit.

spellCorrectionSpec

object (SpellCorrectionSpec)

Spécification de la correction orthographique qui indique le mode d'application de la correction orthographique.

userPseudoId

string

Identifiant unique permettant d'effectuer le suivi des visiteurs. Par exemple, cela peut être implémenté avec un cookie HTTP, qui doit pouvoir identifier de manière unique un visiteur sur un seul appareil. Cet identifiant unique ne doit pas changer si le visiteur se connecte ou se déconnecte du site Web.

Ce champ ne doit PAS avoir de valeur fixe telle que unknown_visitor.

Cet identifiant doit être identique à celui de UserEvent.user_pseudo_id et CompleteQueryRequest.user_pseudo_id.

Le champ doit être une chaîne encodée au format UTF-8 et ne doit pas dépasser 128 caractères. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée.

contentSearchSpec

object (ContentSearchSpec)

Spécification permettant de configurer le comportement de la recherche de contenu.

embeddingSpec

object (EmbeddingSpec)

Utilise l'embedding fourni pour effectuer une récupération sémantique supplémentaire des documents. La récupération est basée sur le produit scalaire de SearchRequest.EmbeddingSpec.EmbeddingVector.vector et de l'embedding de document fourni dans SearchRequest.EmbeddingSpec.EmbeddingVector.field_path.

Si SearchRequest.EmbeddingSpec.EmbeddingVector.field_path n'est pas fourni, ServingConfig.EmbeddingConfig.field_path sera utilisé.

rankingExpression

string

Facultatif. L'expression de classement contrôle le classement personnalisé des documents récupérés. Cela remplace ServingConfig.ranking_expression. La syntaxe et les fonctionnalités acceptées dépendent de la valeur rankingExpressionBackend. Si rankingExpressionBackend n'est pas fourni, la valeur par défaut est RANK_BY_EMBEDDING.

Si rankingExpressionBackend n'est pas fourni ou est défini sur RANK_BY_EMBEDDING, il doit s'agir d'une ou de plusieurs fonctions jointes par "+".

  • rankingExpression = function, { " + ", function };

Fonctions compatibles :

  • double * relevanceScore
  • double * dotProduct(embedding_field_path)

Variables de fonction :

  • relevanceScore : mots clés prédéfinis, utilisés pour mesurer la pertinence entre la requête et le document.
  • embedding_field_path : champ d'embedding de document utilisé avec le vecteur d'embedding de requête.
  • dotProduct : fonction d'embedding entre embedding_field_path et le vecteur d'embedding de la requête.

Exemple d'expression de classement :

Si le document comporte un champ d'intégration doc_embedding, l'expression de classement peut être 0.5 * relevanceScore + 0.3 * dotProduct(doc_embedding).

Si rankingExpressionBackend est défini sur RANK_BY_FORMULA, les types d'expression suivants (et les combinaisons de ceux-ci enchaînés à l'aide des opérateurs + ou *) sont acceptés :

  • double
  • signal
  • log(signal)
  • exp(signal)
  • rr(signal, double > 0) : transformation du rang réciproque, le deuxième argument étant une constante de dénominateur.
  • isNan(signal) : renvoie 0 si le signal est NaN, 1 sinon.
  • fillNan(signal1, signal2 | double) : renvoie signal2 | double si signal1 est NaN, sinon renvoie signal1.

Voici quelques exemples de formules de classement qui utilisent les types d'expressions de classement acceptés :

  • 0.2 * semanticSimilarityScore + 0.8 * log(keywordSimilarityScore) : classement principalement basé sur le logarithme de keywordSimilarityScore avec un léger ajustement semantic_smilarity_score.
  • 0.2 * exp(fillNan(semanticSimilarityScore, 0)) + 0.3 * isNan(keywordSimilarityScore) : classe par l'exposant de semanticSimilarityScore en remplissant la valeur par 0 si elle est NaN.Ajoute également un ajustement constant de 0, 3 au score final si semanticSimilarityScore est NaN.
  • 0.2 * rr(semanticSimilarityScore, 16) + 0.8 * rr(keywordSimilarityScore, 16) : classement principalement basé sur le rang réciproque de keywordSimilarityScore, avec un léger ajustement du rang réciproque de semantic_smilarity_score.

Les signaux suivants sont acceptés :

  • semanticSimilarityScore : ajustement de la similarité sémantique calculé à l'aide des embeddings générés par un modèle Google propriétaire. Ce score détermine la similarité sémantique entre une requête de recherche et un document.
  • keywordSimilarityScore : l'ajustement de la correspondance des mots clés utilise la fonction de classement Best Match 25 (BM25). Ce score est calculé à l'aide d'un modèle probabiliste permettant d'estimer la probabilité qu'un document soit pertinent pour une requête donnée.
  • relevanceScore : ajustement de la pertinence sémantique qui utilise un modèle Google propriétaire pour déterminer la signification et l'intention d'une requête utilisateur dans le contexte du contenu des documents.
  • pctrRank : ajustement du taux de conversion prévu en tant que classement. Le taux de clics prévu (pCTR) est utilisé pour évaluer la pertinence et l'attractivité d'un résultat de recherche du point de vue de l'utilisateur. Un CTR prédictif élevé suggère que le résultat est plus susceptible de répondre à la requête et à l'intention de l'utilisateur, ce qui en fait un signal précieux pour le classement.
  • freshnessRank : ajustement de la fraîcheur sous forme de classement
  • documentAge : temps écoulé en heures depuis la dernière mise à jour du document, un nombre à virgule flottante (par exemple, 0,25 correspond à 15 minutes).
  • topicalityRank : ajustement de la pertinence thématique sous forme de classement. Utilise un modèle Google propriétaire pour déterminer le chevauchement basé sur les mots clés entre la requête et le document.
  • baseRank : rang par défaut du résultat
rankingExpressionBackend

enum (RankingExpressionBackend)

Facultatif. Backend à utiliser pour l'évaluation de l'expression de classement.

userLabels

map (key: string, value: string)

Les libellés utilisateur appliqués à une ressource doivent répondre aux exigences suivantes :

  • Chaque ressource peut posséder plusieurs libellés, jusqu'à un maximum de 64.
  • Chaque étiquette doit correspondre à une paire clé/valeur.
  • Les clés doivent comporter un (1) caractère au minimum et 63 au maximum, et ne peuvent pas être vides. Les valeurs peuvent être vides et comporter 63 caractères au maximum.
  • Les clés et les valeurs ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Tous les caractères doivent être au format d'encodage UTF-8. Les caractères internationaux sont autorisés.
  • La partie clé d'un libellé doit être unique. Cependant, vous pouvez utiliser la même clé avec plusieurs ressources.
  • Les clés doivent commencer par une lettre minuscule ou un caractère international.

Pour en savoir plus, consultez la documentation Google Cloud.

naturalLanguageQueryUnderstandingSpec

object (NaturalLanguageQueryUnderstandingSpec)

Facultatif. Configuration des fonctionnalités de compréhension des requêtes en langage naturel, comme l'extraction des filtres de champs structurés à partir de la requête. Pour en savoir plus, consultez cette documentation. Si naturalLanguageQueryUnderstandingSpec n'est pas spécifié, aucune compréhension supplémentaire des requêtes en langage naturel ne sera effectuée.

searchAsYouTypeSpec

object (SearchAsYouTypeSpec)

Configuration de la recherche instantanée servingConfigs. Compatible uniquement avec le secteur IndustryVertical.MEDIA.

displaySpec

object (DisplaySpec)

Facultatif. Configuration de la fonctionnalité d'affichage, comme la mise en surbrillance des correspondances dans les résultats de recherche.

session

string

Nom de la ressource de session. Facultatif.

La session permet aux utilisateurs d'effectuer des appels d'API /search multitours ou de coordonner les appels d'API /search et /answer.

Exemple 1 (appels d'API /search multitours) : appelez l'API /search avec l'ID de session généré lors du premier appel. Ici, la requête de recherche précédente est prise en compte dans la pertinence de la requête. Par exemple, si la première requête est "Quels ont été les résultats d'Alphabet en 2022 ?" et que la requête actuelle est "Et en 2023 ?", elle sera interprétée comme "Quels ont été les résultats d'Alphabet en 2023 ?".

Exemple 2 (coordination entre les appels d'API /search et /answer) : appelez l'API /answer avec l'ID de session généré lors du premier appel. Ici, la génération de la réponse se fait dans le contexte des résultats de recherche du premier appel à la recherche.

La fonctionnalité Multi-turn servingConfigs.search est actuellement en disponibilité générale privée. Veuillez utiliser la version v1alpha ou v1beta en attendant que nous lancions cette fonctionnalité en disponibilité générale publique. Vous pouvez également demander à être ajouté à la liste d'autorisation auprès de l'équipe d'assistance Google.

sessionSpec

object (SessionSpec)

Spécification de la session.

Ne peut être utilisé que lorsque session est défini.

relevanceThreshold

enum (RelevanceThreshold)

Seuil de pertinence des résultats de recherche.

Utilisez le seuil défini par Google par défaut, en trouvant un équilibre entre précision et rappel pour fournir des résultats très précis et une couverture complète des informations pertinentes.

Cette fonctionnalité n'est pas disponible pour la recherche dans le secteur de la santé.

personalizationSpec

object (PersonalizationSpec)

Spécification pour la personnalisation.

Notez que si ServingConfig.personalization_spec et SearchRequest.personalization_spec sont définis, SearchRequest.personalization_spec remplace ServingConfig.personalization_spec.

relevanceScoreSpec

object (RelevanceScoreSpec)

Facultatif. Spécification pour renvoyer le score de pertinence.

searchAddonSpec

object (SearchAddonSpec)

Facultatif. SearchAddonSpec permet de désactiver les modules complémentaires pour la recherche conformément au nouveau modèle de revalorisation. Ce champ n'est compatible qu'avec les demandes de recherche.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de SearchResponse.

Niveaux d'accès des autorisations

Nécessite l'un des champs d'application OAuth suivants :

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.assist.readwrite

Pour plus d'informations, consultez la Authentication Overview.