Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit les types de données pris en charge par Recherche IA Azure. Les champs et les valeurs utilisés dans les expressions de filtre sont typés en fonction du modèle de données d’entité (EDM). La spécification d’un type de données EDM est une exigence pour la définition de champ.
Note
Si vous utilisez des indexeurs, consultez Mappage des types de données pour les indexeurs dans Azure AI Search pour plus d’informations sur la façon dont les indexeurs mappent les types de données spécifiques à la source aux types de données EDM dans un index de recherche.
Types de données EDM pour les champs vectoriels
Un type de champ vectoriel doit être valide pour la sortie de votre modèle d’intégration. Par exemple, si vous utilisez text-embedding-ada-002, le format de sortie est Float32 ou Collection(Edm.Single). Dans ce scénario, vous ne pouvez pas attribuer de type de Int8 données, car la conversion de float vers int les primitives est interdite. Cependant, vous pouvez lancer de Float32 à Float16 ou (Collection(Edm.Half)).
Les champs vectoriels sont un tableau d’incorporations. Dans EDM, un tableau est une collection.
| Type de données | Type de vecteur | Description | Utilisation recommandée |
|---|---|---|---|
Collection(Edm.Byte) |
Binaire | Binaire non signé 1 bits. Généralement disponible dans Créer ou Mettre à jour l’index. | Prend en charge l’intégration avec des modèles qui émettent des plongements binaires, tels que les modèles d’incorporation binaire v3 de Cohere, ou une logique de quantification personnalisée qui émet une sortie binaire non signée de 1 bit. Pour les champs de type Collection(Edm.Byte), voir Indexer les données binaires pour obtenir de l’aide sur la spécification de la définition de champ et des algorithmes de recherche vectorielle pour les données binaires. |
Collection(Edm.Single) |
Float32 |
Virgule flottante 32 bits. Généralement disponible dans Créer ou Mettre à jour l’index. | Type de données par défaut dans les outils Microsoft qui créent des champs vectoriels en votre nom. Atteint un équilibre entre précision et efficacité. La plupart des modèles d’intégration émettent des vecteurs sous la forme Float32. |
Collection(Edm.Half) |
Float16 |
Virgule flottante 16 bits avec une précision et une plage inférieures. Généralement disponible dans Créer ou Mettre à jour l’index. | Utile pour les scénarios où l’efficacité de la mémoire et du calcul est critique et où le sacrifice d’une certaine précision est acceptable. Conduit souvent à des temps d’interrogation plus rapides et à une empreinte mémoire réduite par rapport à , bien qu’avec une Float32précision légèrement réduite. Vous pouvez attribuer un Float16 type aux plongements d’index Float32 sous la forme Float16. Vous pouvez également l’utiliser Float16 pour incorporer des modèles ou des processus de quantification personnalisés qui émettent Float16 en mode natif. |
Collection(Edm.Int16) |
Int16 |
Entier signé 16 bits. Généralement disponible dans Créer ou Mettre à jour l’index. | Offre une empreinte mémoire réduite et Float32 prend en charge des méthodes de quantification de plus grande précision, tout en conservant une précision suffisante pour de nombreuses applications. Adapté aux cas où l’efficacité de la mémoire est importante. Nécessite que vous disposiez d’une quantification personnalisée qui génère des vecteurs sous la forme Int16. |
Collection(Edm.SByte) |
Int8 |
Entier signé 8 bits. Généralement disponible dans Créer ou Mettre à jour l’index. | Fournit des gains significatifs de mémoire et d’efficacité de calcul par rapport à Float32 ou Float16. Toutefois, il nécessite probablement des techniques supplémentaires (comme la quantisation et le surachantillonnage) pour compenser la réduction de la précision et du rappel de manière appropriée. Nécessite que vous disposiez d’une quantification personnalisée qui génère des vecteurs sous la forme Int8. |
Types de données EDM pour les champs non-vecteurs
| Type de données | Description |
|---|---|
Edm.String |
Données texte. |
Edm.Boolean |
Contient des valeurs true/false. |
Edm.Int32 |
Valeurs entières 32 bits. |
Edm.Int64 |
Valeurs entières 64 bits. |
Edm.Double |
Valeurs à virgule flottante IEEE 754 double précision. |
Edm.DateTimeOffset |
Valeurs de date et d’heure représentées au format OData V4 : yyyy-MM-ddTHH:mm:ss.fffZ ou yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm. La précision des DateTimeOffset champs est limitée à la milliseconde. Si vous téléchargez DateTimeOffset des valeurs avec une précision inférieure à la milliseconde, la valeur renvoyée est arrondie à la milliseconde supérieure (par exemple, 2024-04-15T10:30:09.7552052Z est renvoyée sous la forme 2024-04-15T10:30:09.7550000Z). Lorsque vous chargez des valeurs DateTimeOffset avec des informations de fuseau horaire dans votre index, Recherche Azure AI normalise ces valeurs au format UTC. Par exemple, 2024-01-13T14:03:00-08:00 est stocké sous la forme 2024-01-13T22:03:00Z. Si vous devez stocker des informations de fuseau horaire, ajoutez un champ supplémentaire à votre index. |
Edm.GeographyPoint |
Point représentant un emplacement géographique sur le globe. Pour les corps de requête et de réponse, la représentation des valeurs de ce type suit le format de type GeoJSON « Point ». Pour les URL, OData utilise un formulaire littéral basé sur la norme WKT. Un littéral de point est construit en tant que geography’POINT(lon lat)'. |
Edm.ComplexType |
Objets dont les propriétés sont mappées aux sous-champs qui peuvent être d’un autre type de données pris en charge. Ce type permet l’indexation de données hiérarchiques structurées telles que JSON. Les objets d’un champ de type Edm.ComplexType peuvent contenir des objets imbriqués, mais le niveau d’imbrication est limité. Les limites sont décrites dans la section Limites du Service. |
Collection(Edm.String) |
Liste de chaînes. |
Collection(Edm.Boolean) |
Liste des valeurs booléennes. |
Collection(Edm.Int32) |
Liste des valeurs entières 32 bits. |
Collection(Edm.Int64) |
Liste des valeurs entières 64 bits. |
Collection(Edm.Double) |
Liste de valeurs numériques double précision. |
Collection(Edm.DateTimeOffset) |
Liste des valeurs d’heure de date. |
Collection(Edm.GeographyPoint) |
Liste de points représentant des emplacements géographiques. |
Collection(Edm.ComplexType) |
Une liste d’objets de type Edm.ComplexType. Il existe une limite au nombre maximal d’éléments dans toutes les collections de texte Edm.ComplexType d’un document. Consultez la section Limites du service pour plus de détails. |
Tous les types ci-dessus sont nullables, à l’exception des collections de types primitifs et complexes, par exemple, Collection(Edm.String). Les champs nullables peuvent être définis explicitement sur Null. Elles sont automatiquement définies sur Null lorsqu’elles sont omises à partir d’un document chargé dans un index Recherche IA Azure. Les champs de collection sont automatiquement définis comme vides ([] en JSON) lorsqu’ils sont omis d’un document. En outre, il n’est pas possible de stocker une valeur Null dans un champ de collection.
Contrairement aux collections complexes, il n’y a pas de limite supérieure spécifique au nombre d’éléments dans une collection de types primitifs, mais la limite supérieure de 16 Mo de la taille de la charge utile s’applique à toutes les parties des documents, y compris les collections.
Type de données géospatiales utilisé dans les expressions de filtre
Dans Recherche IA Azure, la recherche géospatiale est exprimée sous la forme d’un filtre.
Edm.GeographyPolygon est un polygone représentant une région géographique du globe. Bien que ce type ne puisse pas être utilisé dans les champs de document, il peut être utilisé comme argument de la geo.intersects fonction. La forme littérale des URL dans OData est basée sur les normes d’accès aux fonctionnalités simples WKT (Well-known text) et OGC. Un littéral de polygone est construit en tant que geography’POLYGON((lon lat, lon lat, ...))'.
Important
Les points d’un polygone doivent être dans le sens inverse des aiguilles d’une montre. Les points d’un polygone sont interprétés dans l’ordre inverse, par rapport à l’intérieur du polygone. Par exemple, Un polygone fermé de 4 points autour de Londres serait -0,3°W 51,6°N [haut à gauche] , -0,3°W 51,4°N [bas à gauche], 0,0 1°E 51.4°N [bas à droite], 0,1°E 51.6°N [haut à droite], -0,3°W 51.6°N [point de départ].