Édition

Questions fréquentes (FAQ) sur Recherche Azure AI

Trouvez des réponses aux Questions fréquentes (FAQ) sur le service Recherche Azure AI.

Général

Qu’est-ce que Recherche Azure AI ?

Recherche Azure AI fournit un moteur de recherche dédié et un stockage persistant de votre contenu pouvant faire l’objet d’une recherche pour les scénarios de recherche en texte intégral et de recherche vectorielle. Il comprend également une IA intégrée facultative utilisée pour extraire davantage de texte et de structure à partir de contenu brut et pout segmenter et vectoriser du contenu pour la recherche vectorielle.

Comment utiliser Recherche Azure AI ?

Le workflow principal est la création, le chargement et l’interrogation d’un index. Même si vous pouvez utiliser le portail pour la plupart des tâches, le service Recherche Azure AI est destiné à être utilisé par programmation, en gérant les demandes à partir du code client. La prise en charge par programmation est assurée par le biais d’API REST et de bibliothèques de client dans les SDK .NET, Python, Java et JavaScript pour Azure.

Est-ce que « Recherche Azure », « Recherche cognitive Azure » et « Recherche Azure AI » correspondent au même service ?

Recherche Azure a été renommé Recherche cognitive Azure en octobre 2019 pour refléter l’utilisation étendue (mais facultative) de compétences cognitives et du traitement par IA dans les opérations du service. Recherche cognitive Azure a été renommé Recherche Azure AI en octobre 2023 pour s’aligner sur les services Azure AI.

Quelles langues sont prises en charge ?

L’analyseur par défaut utilisé pour la tokenisation est standard Lucene et il est indépendant du langage. Sinon, la prise en charge linguistique est exprimée via des analyseurs de langue qui appliquent des règles linguistiques au contenu entrant (indexation) et sortant (requêtes). Certaines fonctionnalités, telles que orthographe, sont limitées à un sous-ensemble de langues.

Comment intégrer la recherche dans ma solution ?

Le code client doit appeler les bibliothèques de client SDK Azure ou les API REST pour se connecter à un index de recherche, formuler des requêtes et traiter les réponses. Vous pouvez également écrire du code qui génère et actualise un index, ou qui exécute des indexeurs programmatiquement ou avec un script.

Existe-t-il une parité fonctionnelle entre les différentes API ?

Pas toujours. L’API REST est toujours la première à implémenter de nouvelles fonctionnalités dans les versions d’API en préversion. Les bibliothèques de client dans les SDK Azure récupèrent les nouvelles fonctionnalités au fil du temps, mais sont publiées suivant leur propre calendrier.

Bien que les API REST soient les premières à utiliser les dernières fonctionnalités, les Kits de développement logiciel (SDK) Azure prennent mieux en charge le codage et sont recommandés par rapport à REST, sauf si une fonctionnalité obligatoire n’est pas disponible.

Puis-je mettre en pause le service et arrêter la facturation ?

Vous ne pouvez pas mettre en pause un service de recherche. Dans la Recherche Azure AI, des ressources de calcul sont allouées à la création du service. Il n’est pas possible de libérer des ressources à la demande.

Puis-je mettre à niveau (ou passer à une version antérieure), renommer ou déplacer le service ?

Le niveau de service, le nom et la région sont fixes pour la durée de vie du service.

Si je migre mon service de recherche vers un autre abonnement ou groupe de ressources, dois-je m’attendre à un temps d’arrêt ?

Tant que vous suivez la liste de vérification avant de déplacer des ressources et veillez à ce que chaque étape soit terminée, il ne devrait y avoir aucun temps d’arrêt.

Indexation

Que signifie « indexation » dans Recherche Azure AI ?

Ce terme fait référence à l’ingestion, à l’analyse et au stockage du contenu textuel et des jetons qui remplissent un index de recherche. L’indexation crée des index inversés et d’autres structures de données physiques qui prennent en charge la récupération d’informations.

Il crée des index vectoriels si le schéma inclut des champs vectoriels.

Puis-je déplacer, sauvegarder et restaurer des index ?

Il n’existe aucune prise en charge native pour le portage d’index. Les index de recherche sont considérés comme des structures de données en aval, acceptant du contenu d’autres sources de données qui collectent des données opérationnelles. Par conséquent, il n’y a pas de support intégré de la sauvegarde et de la restauration des index, car vous pouvez regénérer un index à partir de données sources si vous l’avez supprimé ou voulez le déplacer.

Toutefois, si vous voulez déplacer un index entre des services de recherche, vous pouvez essayer l’exemple de code index-backup-restore dans cet exemple de référentiel .NET de la Recherche Azure AI. Il existe également une version Python de la sauvegarde et de la restauration.

Puis-je restaurer mon index ou mon service une fois qu’il a été supprimé ?

Non, si vous supprimez un index ou un service Recherche Azure AI, il ne peut pas être récupéré. Quand vous supprimez un service de recherche, tous les index dans le service sont supprimés définitivement.

Puis-je indexer à partir de réplicas SQL Database ?

Si vous utilisez l’indexeur de recherche pour Azure SQL Database, il n’y a pas de restrictions d’utilisation des réplicas principaux ou secondaires comme source de données quand vous créez un index à partir de zéro. Toutefois, pour que l’index soit actualisé avec des mises à jour incrémentielles (basées sur les enregistrements modifiés), le réplica principal est nécessaire. Cela vient du fait que SQL Database assure uniquement le suivi des modifications sur les réplicas principaux. Si vous essayez d’utiliser des réplicas secondaires pour une charge de travail d’actualisation d’index, il n’est pas garanti que vous obteniez toutes les données.

Vecteurs

Qu’est-ce que la recherche vectorielle ?

La recherche vectorielle est une technique qui recherche les documents les plus similaires en comparant leurs représentations vectorielles. Étant donné que l’objectif d’une représentation vectorielle est de capturer les caractéristiques essentielles d’un élément dans un format numérique, les requêtes vectorielles peuvent identifier du contenu similaire même s’il n’existe aucune correspondance explicite basée sur des mots clés ou des balises. Lorsqu’un utilisateur effectue une recherche, la requête est résumée dans une représentation vectorielle et le moteur de recherche vectorielle identifie les documents les plus similaires. Pour améliorer l’efficacité sur les bases de données volumineuses, la recherche vectorielle fournit souvent les voisins les plus proches d’un vecteur de requête. Consultez vue d’ensemble de la recherche vectorielle pour connaître les spécificités de l’offre vectorielle de Recherche IA Azure.

Recherche Azure AI prend-il en charge la recherche vectorielle ?

Recherche Azure AI prend en charge l’indexation et la récupération de vecteurs. Il peut vectoriser des chaînes de requête et du contenu si vous utilisez les bibliothèques d’aperçu et bêta.

Comment fonctionne la recherche vectorielle dans Recherche Azure AI ?

Avec la recherche vectorielle autonome, vous utilisez d’abord un modèle d’incorporation pour transformer le contenu en une représentation vectorielle dans un espace d’incorporation. Vous pouvez ensuite fournir ces vecteurs dans une charge utile de document à l’index de recherche pour l’indexation. Pour traiter les requêtes de recherche, vous utilisez le même DNN à partir de l’indexation pour transformer la requête de recherche en une représentation vectorielle, et la recherche vectorielle recherche les vecteurs les plus similaires et retourne les documents correspondants.

Dans Recherche Azure AI, vous pouvez indexer les données vectorielles sous forme de champs dans des documents, ainsi que des types de contenu textuels et d’autres types de contenu. Le type de données d’un champ vectoriel est Collection(Edm.Single).

Les requêtes vectorielles peuvent être émises de manière autonomes ou en combinaison avec d’autres types de requêtes, y compris les requêtes de termes et les filtres dans la même requête de recherche.

Recherche Azure AI peut-il vectoriser mon contenu ou mes requêtes ?

La vectorisation intégrée est désormais en préversion publique.

Mon service de recherche prend-il en charge la recherche vectorielle ?

La plupart des services existants prennent en charge la recherche vectorielle. Si vous utilisez un package ou une API qui prend en charge la recherche vectorielle et que la création d’index échoue, le service de recherche sous-jacent ne prend pas en charge la recherche vectorielle et un nouveau service doit être créé. Cela peut se produire pour un petit sous-ensemble de services créés avant le 1er janvier 2019.

Puis-je ajouter une recherche vectorielle à un index existant ?

Si votre service de recherche prend en charge la recherche vectorielle, les index existants et les nouveaux index peuvent prendre en charge les champs vectoriels.

Pourquoi puis-je voir différentes limites de taille d’index vectoriel entre mes nouveaux services de recherche et les services de recherche existants ?

Nous déployons des limites de taille d’index vectoriel améliorées dans le monde entier pour les nouveaux services de recherche, mais nous créons toujours une capacité d’infrastructure dans certaines régions. Les nouveaux services de recherche créés dans les régions prises en charge verront les limites de taille de l’index vectoriel augmentées. Malheureusement, nous ne pouvons pas migrer les services existants vers les nouvelles limites.

Comment activer la recherche vectorielle sur un index de recherche ?

Pour activer la recherche vectorielle dans un index, vous devez :

  • Ajoutez un ou plusieurs champs vectoriels à une collection de champs.

  • Ajoutez une section « vectorSearch » au schéma d’index spécifiant la configuration utilisée par les champs de recherche vectorielle, y compris les paramètres de l’algorithme Voisin le plus proche approximatif utilisé, comme HNSW.

  • Utilisez 2023-11-01 ou un Kit de développement logiciel (SDK) Azure pour créer ou mettre à jour l’index, charger des documents et émettre des requêtes.

Requêtes

Où se produit l’exécution des requêtes ?

Les requêtes s’exécutent sur un seul index de recherche hébergé sur votre service de recherche. Vous ne pouvez pas joindre plusieurs index pour rechercher du contenu dans ces derniers. Toutefois, vous pouvez interroger des index portant le même nom dans plusieurs services de recherche.

Pourquoi n’ai-je aucun résultat pour des termes dont je sais qu’ils sont valides ?

Dans la plupart des cas, l’utilisateur ne sait pas que chaque type de requête prend en charge des comportements de recherche et des niveaux d’analyse linguistique différents. La recherche en texte intégral, qui représente la principale charge de travail, comprend une phase d’analyse linguistique qui ne conserve que la racine des termes entrés. Cet aspect de l’analyse de requête permet d’élargir le nombre de correspondances possibles, car le terme peut ainsi correspondre à un plus grand nombre de variantes.

Toutefois, les requêtes de caractère générique, les requêtes partielles et les requêtes d’expression régulière ne sont pas analysées comme les requêtes de terme ou d’expression normales et peuvent entraîner un rappel médiocre si la requête ne correspond pas à la forme analysée du mot dans l’index de recherche. Pour plus d’informations sur l’analyse des requêtes et l’analyse lexicale, consultez l’architecture de requêtes.

Pourquoi mes recherches par caractères génériques sont-elles lentes ?

La plupart des requêtes de recherche de caractère générique, comme les requêtes de préfixe, partielle et d’expression régulière, sont réécrites en interne avec des termes correspondants dans l’index de recherche. Ce traitement supplémentaire ajoute à la latence. Par ailleurs, les requêtes de recherche large, comme a*, susceptibles d’être réécrites avec de nombreux termes, peuvent être lentes. Pour des recherches performantes avec caractère générique, définissez un analyseur personnalisé.

Puis-je effectuer une recherche sur plusieurs index ?

Non, la recherche est toujours limitée à un seul index.

Pourquoi le score de recherche est une constante 1.0 pour chaque correspondance ?

Les scores de recherche sont générés pour les requêtes de recherche en texte intégral, en fonction des propriétés statistiques des termes correspondants, et sont triés du plus haut au plus bas dans le jeu de résultats. Les types de requête qui ne sont pas des recherches en texte intégral (caractère générique, préfixe, expression régulière) ne sont pas classés par score de pertinence. Ce comportement est inhérent au produit. Un score constant permet aux correspondances trouvées au moyen de l’extension de requête d’être ajoutées aux résultats, sans affecter le classement.

Par exemple, supposons l’entrée « tour* » dans une recherche par caractères génériques, qui retourne les résultats « tours », « tourettes » et « tourmaline ». Étant donné la nature de ces résultats, il est impossible de déduire raisonnablement quels termes sont plus utiles que d’autres. Pour cette raison, nous ignorons les fréquences de terme pendant le scoring des résultats dans les requêtes de type caractère générique, préfixe et regex. Les résultats de recherche basés sur une entrée partielle reçoivent un score constant afin d’éviter que des résultats inattendus ne soient retournés.

Sécurité

Où la Recherche Azure AI stocke-t-elle les données des clients ?

Il stocke vos données partout où votre service est déployé. Recherche Azure AI ne stocke pas les données client en dehors de la région de déploiement.

La Recherche Azure AI envoie-t-elle des données de clients à d’autres services à des fins de traitement ?

Oui, si vous utilisez les compétences intégrées basées sur Azure AI Services, l’indexeur envoie les demandes à Azure AI Services sur le réseau interne. Si vous ajoutez une compétence personnalisée, l’indexeur envoie le contenu à l’URI fourni dans la compétence personnalisée sur le réseau public.

Puis-je contrôler l’accès aux résultats de recherche en fonction de l’identité de l’utilisateur ?

Pas forcément. En règle générale, les utilisateurs autorisés à exécuter votre application sont également autorisés à voir tous les résultats de recherche. La Recherche Azure AI n’a pas de support intégré des autorisations au niveau des lignes ou au niveau du document, mais vous pouvez implémenter des filtres de sécurité pour contourner le problème.

Puis-je contrôler l’accès aux opérations en fonction de l’identité de l’utilisateur ?

Oui ,vous pouvez utiliser l’autorisation basée sur les rôles pour les opérations de plan de données sur le contenu.

Puis-je utiliser le Portail Azure pour afficher et gérer le contenu de recherche si le service de recherche se trouve derrière un pare-feu IP ou un point de terminaison privé ?

Vous pouvez utiliser le Portail Azure sur un service de recherche protégé par le réseau si vous créez une exception réseau qui autorise l’accès au client et au portail. Pour plus d’informations, consultez se connecter via un pare-feu IP ou se connecter via un point de terminaison privé.

Étapes suivantes

Si vous ne trouvez pas de réponse à votre question ici, vous pouvez consulter les sources suivantes pour plus de questions et réponses.

Stack Overflow : Recherche Azure AI
Fonctionnement de la recherche en texte intégral dans la Recherche Azure AI
Qu’est-ce que Recherche Azure AI ?