Interrogation dans la Recherche Azure AI
La Recherche Azure AI prend en charge les constructions de requête pour un large éventail de scénarios : aussi bien la recherche de texte en forme libre, les modèles de requête hautement spécifiés, que la recherche vectorielle. Toutes les requêtes s’exécutent sur un index de recherche qui stocke du contenu interrogeable.
Types de requête
Format de requête | Contenu interrogeable | Description |
---|---|---|
recherche en texte intégral | Index inversés de termes tokenisés. | Les requêtes de texte intégral effectuent une itération sur des index inversés structurés pour les analyses rapides, où une correspondance peut être trouvée dans n’importe quel champ, dans n’importe quel nombre de documents de recherche. Le texte est analysé et tokenisé pour la recherche en texte intégral. |
Recherche vectorielle | Index vectoriels des incorporations générées. | Les requêtes vectorielles effectuent une itération sur des champs vectoriels dans un index de recherche. |
Recherche hybride | Tout ce qui précède, dans un seul index de recherche. | Combine la recherche de texte et la recherche vectorielle dans une seule requête. La recherche de texte fonctionne sur le contenu en texte brut des champs « searchable » (interrogeables) et « filterable » (filtrables). La recherche vectorielle fonctionne sur le contenu des champs vectoriels. |
Autres | Texte brut et contenu alphanumérique. | Contenu brut, extrait mot pour mot des documents sources, prenant en charge les filtres et les requêtes de critères spéciaux comme la recherche géospatiale, la recherche approximative et la recherche par champ. |
Cet article met l’accent sur la dernière catégorie : les requêtes qui fonctionnent sur du texte brut et du contenu alphanumérique, extraits de manière intacte de la source d’origine, utilisés pour les filtres et d’autres formats de requête spécialisés.
Requêtes de saisie semi-automatique et suggérées
L’autocomplétion ou les requêtes suggérées sont des alternatives à search
qui déclenchent des demandes de requête successives basées sur des entrées de chaîne partielles (après chaque caractère) dans une expérience de recherche au fil de la frappe. Vous pouvez utiliser les paramètres autocomplete
et suggestions
conjointement ou séparément, comme décrit dans cette procédure pas à pas, mais vous ne pouvez pas les utiliser avec search
. Les termes complets et les requêtes suggérées sont dérivés du contenu de l’index. Le moteur ne renvoie jamais de chaîne ou de suggestion qui n’existe pas dans votre index. Pour plus d’informations, consultez Saisie semi-automatique (API REST) et Suggestions (API REST).
Filtrer la recherche
Les filtres sont largement utilisés dans les applications basées sur la Recherche Azure AI. Dans les pages d’application, les filtres sont souvent visualisés comme des facettes dans les structures de navigation par lien pour permettre un filtrage défini par l’utilisateur. Les filtres sont également utilisés en interne pour exposer des tranches de contenu indexé. Par exemple, vous pouvez initialiser une page de recherche à l’aide d’un filtre sur une catégorie de produit, ou une langue si un index contient des champs en anglais et en français.
Vous pouvez également avoir besoin de filtres pour appeler un formulaire de requête spécialisé, comme décrit dans le tableau suivant. Vous pouvez utiliser un filtre avec une recherche non spécifiée (search=*
) ou avec une chaîne de requête incluant des termes, des expressions, des opérateurs et des modèles.
Filtrer un scénario | Description |
---|---|
Filtres de plage | Dans la Recherche Azure AI, les requêtes de plage sont créées avec le paramètre de filtre. Pour plus d’informations et d’exemples, consultez Exemple de filtre de plage. |
Navigation à facettes | Dans l’arborescence de navigation par facettes, les utilisateurs peuvent sélectionner des facettes. Lorsqu’ils sont accompagnés de filtres, les résultats de la recherche se réduisent à chaque clic. Chaque facette est associée à un filtre qui exclut les documents qui ne correspondent plus aux critères fournis par la facette. |
Remarque
Le texte utilisé dans une expression de filtre n’est pas analysé lors du traitement de la requête. L’entrée de texte est supposée être un modèle textuel de caractères respectant la casse et qui correspond ou non au filtre. Les expressions de filtre sont construites à l’aide de la syntaxe OData et passées dans un paramètre filter
dans tous les champs filtrables de votre index. Pour plus d’informations, consultez Filtres dans la Recherche Azure AI.
Recherche géospatiale
La recherche géospatiale s’appuie sur les coordonnées de latitude et de longitude d’un lieu pour « rechercher près de moi » ou pour une expérience de recherche basée sur une carte. Dans la Recherche Azure AI, vous pouvez implémenter la recherche géospatiale en suivant ces étapes :
- Définissez un champ filtrable de l’un des types suivants : Edm.GeographyPoint, Collection(Edm.GeographyPoint, Edm.GeographyPolygon).
- Vérifiez que les documents entrants incluent les coordonnées appropriées.
- Une fois l’indexation terminée, créez une requête qui utilise un filtre et une fonction géospatiale.
La recherche géospatiale utilise les kilomètres pour mesurer la distance. Les coordonnées sont spécifiées dans ce format : (longitude, latitude
).
Voici un exemple de filtre pour la recherche géospatiale. Ce filtre recherche d’autres champs Location
dans l’index de recherche qui ont des coordonnées dans un rayon de 300 kilomètres du point géographique (dans cet exemple, Washington D.C.). Il renvoie les informations d’adresse dans le résultat et ajoute une clause facets
facultative pour la navigation automatique basée sur l’emplacement.
POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2024-07-01
{
"count": true,
"search": "*",
"filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
"facets": [ "Address/StateProvince"],
"select": "HotelId, HotelName, Address/StreetAddress, Address/City, Address/StateProvince",
"top": 7
}
Pour plus d’informations et pour obtenir des exemples, consultez Exemple de recherche géospatiale.
Recherche de document
Contrairement aux formulaires de requête décrits précédemment, cette recherche récupère un seul document de recherche par ID, sans recherche ni analyse d’index correspondante. Seul le document est demandé et retourné. Lorsqu’un utilisateur sélectionne un élément dans les résultats de la recherche, la récupération du document et le remplissage d’une page de détails avec des champs constituent une réponse classique, et une recherche de document est l’opération qui la prend en charge.
Recherche avancée : approximative, caractère générique, proximité, expression régulière
Un formulaire de requête avancé dépend de l’analyseur Lucene complet et d’opérateurs qui déclenchent un comportement de requête spécifique.
Type de requête | Utilisation | Exemples et informations complémentaires |
---|---|---|
Recherche par champ | Paramètre search , queryType=full |
Crée une expression de requête composite ciblant un champ unique. Exemple de recherche par champ |
recherche approximative | Paramètre search , queryType=full |
Recherche les termes ayant une construction ou une orthographe similaire. Exemple de recherche approximative |
recherche de proximité | Paramètre search , queryType=full |
Recherche les termes proches les uns des autres dans un document. Exemple de recherche de proximité |
promotion de termes | Paramètre search , queryType=full |
Élève le rang d’un document qui contient le terme de promotion, par rapport aux documents qui ne contiennent pas ce terme. Exemple de promotion de termes |
recherche d’expression régulière | Paramètre search , queryType=full |
Exécute la recherche à partir du contenu d’une expression régulière. Exemple de recherche d’expression régulière |
recherche par préfixe ou caractères génériques | Paramètre search avec *~ ou ? , queryType=full |
Exécute la recherche à partir d’un préfixe et d’un tilde (~ ) ou d’un caractère unique (? ). Exemple de recherche par caractères génériques |
Étapes suivantes
Pour une présentation détaillée de l’implémentation des requêtes, passez en revue les exemples de chaque syntaxe. Si vous n’êtes pas familiarisé avec la recherche en texte intégral, vous pouvez aussi étudier attentivement ce que fait le moteur de requête.