Configurer le classement sémantique et retourner des légendes dans les résultats de la recherche

Dans cet article, vous découvrez comment appeler un classement sémantique sur un jeu de résultats, en promouvant les résultats les plus pertinents sur le plan sémantique en haut de la pile. Vous pouvez également obtenir des légendes sémantiques, avec des mises en surbrillance sur les termes et expressions les plus pertinents, ainsi que des réponses sémantiques.

Prérequis

  • Un service de recherche sur le niveau De base ou Standard (S1, S2, S3), ou le niveau Stockage optimisé (L1, L2), sous réserve de disponibilité dans la région.

  • Classeur sémantique activé sur votre service de recherche.

  • Un index de recherche existant avec du contenu texte varié. Le classement sémantique s’applique à des champs texte (non vectoriels), et fonctionne le mieux sur du contenu qui est d’ordre informationnel ou descriptif.

Choisissez un client

Choisissez un client de recherche qui prend en charge le classement sémantique. Voici quelques options possibles :

Ajouter une configuration sémantique

Une configuration sémantique est une section de votre index qui spécifie les entrées des champs pour le classement sémantique. Vous pouvez ajouter ou mettre à jour une configuration sémantique à tout moment, sans devoir reconstruire votre index. Si vous créez plusieurs configurations, vous pouvez spécifier une configuration par défaut. À l’exécution de la requête, spécifiez une configuration sémantique sur une demande de requête ou laissez-la vide pour utiliser la configuration par défaut.

Une configuration sémantique a un nom et les propriétés suivantes :

Propriété Caractéristiques
Champ Titre Une chaîne courte, idéalement de moins de 25 mots. Ce champ peut être le titre d’un document, le nom d’un produit ou un identificateur unique. Si vous n’avez pas de champ approprié, laissez-le vide.
Champs de contenu Des blocs de texte plus longs en langage naturel, soumis à des limites maximales d’entrées de jeton sur les modèles Machine Learning. Le corps d’un document, la description d’un produit ou tout autre texte libre en sont des exemples courants.
Champs de mot clé Une liste de mots clés, tels que les étiquettes d’un document, ou un terme descriptif, comme la catégorie d’un élément.

Vous pouvez spécifier seulement un champ de titre, mais vous pouvez avoir autant de champs de contenu et de mot clé que vous le souhaitez. Pour les champs de contenu et de mot clé, listez les champs par ordre de priorité, car les champs de moindre priorité peuvent être tronqués.

Pour toutes les propriétés de configuration sémantique, les champs que vous affectez doivent être :

  • Avec les attributs searchable et retrievable
  • Chaînes de type Edm.String, Collection(Edm.String), sous-champs de chaîne de Collection(Edm.ComplexType)
  1. Connectez-vous au portail Azure, puis accédez à un service de recherche pour lequel le classement sémantique est activé.

  2. Dans le volet de navigation de gauche, à partir d’Index, ouvrez un index.

  3. Sélectionnez Configurations sémantiques, puis Ajouter une configuration sémantique.

    La page Nouvelle configuration sémantique s’ouvre avec des options permettant de sélectionner un champ de titre, des champs de contenu et des champs de mot clé. Seuls les champs de type chaîne pouvant faire l’objet d’une recherche et récupérables sont autorisés. Veillez à répertorier les champs de contenu et les champs de mot clé par ordre de priorité.

    Screenshot that shows how to create a semantic configuration in the Azure portal.

    Sélectionnez OK pour enregistrer les modifications.

Migrer depuis des versions antérieures

Si votre code de classement sémantique utilise les API en préversion, cette section explique comment migrer vers des versions stables. Vous pouvez consulter les journaux des modifications pour vérifier la disponibilité générale :

Changements du comportement :

  • Depuis le 14 juillet 2023, le classeur sémantique est indépendant de la langue. Il peut reclasser des résultats composés de contenu multilingue, sans biais en faveur d’une langue spécifique. Dans les préversions, le classement sémantique diminuait la priorité des résultats qui différaient de la langue spécifiée par l’analyseur de champs.

  • Dans la version 2021-04-30-Preview et toutes les versions ultérieures, pour l’API REST et tous les packages SDK ciblant la même version : semanticConfiguration (dans une définition d’index) définit les champs de recherche utilisés dans le classement sémantique. Auparavant, dans l’API REST 2020-06-30-Preview, searchFields (dans une demande de requête) était utilisé pour la spécification et la priorité des champs. Cette approche fonctionnait seulement dans la version 2020-06-30-Preview et est obsolète dans toutes les autres versions.

Étape 1 : Supprimer queryLanguage

Le moteur de classement sémantique est désormais indépendant de la langue. Si queryLanguage est spécifié dans la logique de votre requête, il n’est plus utilisé pour le classement sémantique, mais s’applique toujours à la correction orthographique.

Conservez queryLanguage si vous utilisez un vérificateur d’orthographe et si la valeur de langue est prise en charge par le vérificateur d’orthographe. La vérification orthographique a une disponibilité limitée entre les langues.

Sinon, supprimez queryLanguage.

Étape 2 : Remplacer searchFields par semanticConfiguration

Si votre code appelle l’API REST 2020-06-30-Preview ou les packages du SDK bêta ciblant cette version de l’API REST, vous utilisez peut-être searchFields dans une demande de requête pour spécifier des champs sémantiques et des priorités. Dans les versions bêta initiales, searchFields avait un double objectif : limiter la requête initiale aux champs répertoriés dans searchFields et définir la priorité des champs si le classement sémantique était utilisé. Dans les versions ultérieures, searchFields conserve son objectif d’origine, mais n’est plus utilisé pour le classement sémantique.

Conservez searchFields dans les demandes de requête si vous l’utilisez pour limiter la recherche en texte intégral à la liste de champs nommés.

Ajoutez semanticConfiguration à un schéma d’index pour spécifier la hiérarchisation des champs, en suivant les instructions fournies dans cet article.

Étapes suivantes

Testez votre configuration sémantique en exécutant une requête sémantique.