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 :
- Portail Azure, avec le concepteur d’index pour ajouter une configuration sémantique
- Visual Studio Code avec le client REST
- Kit de développement logiciel (SDK) Azure pour .NET
- Kit de développement logiciel (SDK) Azure pour Python
- Kit de développement logiciel (SDK) Azure pour Java
- Kit de développement logiciel (SDK) pour JavaScript
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
etretrievable
- Chaînes de type
Edm.String
,Collection(Edm.String)
, sous-champs de chaîne deCollection(Edm.ComplexType)
Connectez-vous au portail Azure, puis accédez à un service de recherche pour lequel le classement sémantique est activé.
Dans le volet de navigation de gauche, à partir d’Index, ouvrez un index.
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é.
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 :
- 2023-11-01 (REST)
- Journal des modifications pour le kit de développement logiciel Azure SDK pour .NET (11.5)
- Journal des modifications pour le kit de développement logiciel Azure SDK pour Python (11.4)
- Journal des modifications pour le kit de développement logiciel Azure SDK pour Java (11.6)
- Journal des modifications pour le kit de développement logiciel Azure SDK pour JavaScript (12.0)
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.