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).

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.

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 :

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=2023-07-01-Preview
{
    "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.