Freigeben über


Unterstützte Datentypen (Azure AI Search)

In diesem Artikel werden die Datentypen beschrieben, die von Azure AI Search unterstützt werden. Felder und die werte, die in Filterausdrücken verwendet werden, werden gemäß dem Entity Data Model (EDM)eingegeben. Das Angeben eines EDM-Datentyps ist eine Anforderung für die Felddefinition.

Anmerkung

Wenn Sie Indexerverwenden, finden Sie unter Datentypzuordnung für Indexer in Azure AI Search weitere Informationen dazu, wie Indexer quellspezifische Datentypen EDM-Datentypen in einem Suchindex zuordnen.

EDM-Datentypen für Vektorfelder

Ein Vektorfeld Typs muss für die Ausgabe des Einbettungsmodells gültig sein. Wenn Sie z. B. text-embedding-ada-002 verwenden, ist das Ausgabeformat Float32 oder Collection(Edm.Single). In diesem Szenario können Sie keinen Int8 Datentyp zuweisen, da das Umwandeln von float zu int Grundtypen verboten ist. Sie können jedoch von Float32 in Float16 oder (Collection(Edm.Half))umwandeln.

Vektorfelder sind ein Array von Einbettungen. In EDM ist ein Array eine Sammlung.

Datentyp Vektortyp Beschreibung Empfohlene Verwendung
Collection(Edm.Byte) Binär 1-Bit-Binärdatei ohne Vorzeichen. Allgemein verfügbar in Create or Update Index (2024-07-01). Unterstützt die Integration von Modellen, die binäre Einbettungen ausgeben, wie z. B. die v3-Binäreinbettungsmodelle von Cohere. oder benutzerdefinierte Quantisierungslogik, die eine 1-Bit-nicht signierte binärausgabe ausgibt. Informationen zu Feldern vom Typ Collection(Edm.Byte)finden Sie unter Index-Binärdaten hilfe bei der Angabe der Felddefinition und Vektorsuchalgorithmen für Binärdaten.
Collection(Edm.Single) Float32 32-Bit-Gleitkomma. Allgemein verfügbar in Create or Update Index (2024-07-01). Dieser Datentyp wird auch in neueren Vorschauversionen und in der stabilen Version 2023-11-01unterstützt. Standarddatentyp in Microsoft-Tools, die Vektorfelder in Ihrem Auftrag erstellen. Schlägt ein Gleichgewicht zwischen Präzision und Effizienz. Die meisten Einbettungsmodelle geben Vektoren als Float32aus.
Collection(Edm.Half) Float16 16-Bit-Gleitkomma mit geringerer Genauigkeit und Bereich. Allgemein verfügbar in Create or Update Index (2024-07-01). Nützlich für Szenarien, in denen Arbeitsspeicher und Recheneffizienz kritisch sind und bei denen eine gewisse Genauigkeit akzeptabel ist. Führt häufig zu schnelleren Abfragezeiten und verringerter Speicherbedarf im Vergleich zu Float32, obwohl mit etwas reduzierter Genauigkeit. Sie können Float16 Typ Float32 Einbettungen als Float16indizieren. Sie können auch Float16 zum Einbetten von Modellen oder benutzerdefinierten Quantisierungsprozessen verwenden, die Float16 nativ ausgeben.
Collection(Edm.Int16) Int16 16-Bit-Ganzzahl mit Vorzeichen. Allgemein verfügbar in Create or Update Index (2024-07-01). Bietet einen reduzierten Speicherbedarf im Vergleich zu Float32 und Unterstützung für präzise quantisierungsmethoden mit höherer Genauigkeit, während die Genauigkeit für viele Anwendungen weiterhin ausreicht. Geeignet für Fälle, in denen die Speichereffizienz wichtig ist. Erfordert, dass Sie über eine benutzerdefinierte Quantisierung verfügen, die Vektoren als Int16ausgibt.
Collection(Edm.SByte) Int8 8-Bit-Ganzzahl mit Vorzeichen. Allgemein verfügbar in Create or Update Index (2024-07-01). Bietet erhebliche Speicher- und Recheneffizienzgewinne im Vergleich zu Float32 oder Float16. Es ist jedoch wahrscheinlich zusätzliche Techniken (z. B. Quantisierung und Übersampling) erforderlich, um die Reduzierung der Genauigkeit zu verrechnen und entsprechend zurückzurufen. Erfordert, dass Sie über eine benutzerdefinierte Quantisierung verfügen, die Vektoren als Int8ausgibt.

EDM-Datentypen für Nichtvektorfelder

Datentyp Beschreibung
Edm.String Textdaten.
Edm.Boolean Enthält true/false-Werte.
Edm.Int32 32-Bit-Ganzzahlwerte.
Edm.Int64 64-Bit-Ganzzahlwerte.
Edm.Double Ieee 754 Gleitkommawerte mit doppelter Genauigkeit.
Edm.DateTimeOffset Datums- und Uhrzeitwerte, die im OData V4-Format dargestellt werden: yyyy-MM-ddTHH:mm:ss.fffZ oder yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm. Die Genauigkeit von DateTimeOffset Feldern ist auf Millisekunden beschränkt. Wenn Sie DateTimeOffset Werte mit Der Genauigkeit von Untermillisekunden hochladen, wird der zurückgegebene Wert auf Millisekunden aufgerundet (z. B. wird 2024-04-15T10:30:09.7552052Z als 2024-04-15T10:30:09.7550000Zzurückgegeben). Wenn Sie DateTimeOffset Werte mit Zeitzoneninformationen in Ihren Index hochladen, normalisiert Azure AI Search diese Werte in UTC. Beispielsweise wird 2024-01-13T14:03:00-08:00 als 2024-01-13T22:03:00Zgespeichert. Wenn Sie Zeitzoneninformationen speichern müssen, fügen Sie Ihrem Index ein zusätzliches Feld hinzu.
Edm.GeographyPoint Ein Punkt, der einen geografischen Standort auf dem Globus darstellt. Für Anforderungs- und Antworttexte folgt die Darstellung der Werte dieses Typs dem GeoJSON -Typformat "Point". Bei URLs verwendet OData ein Literalformular basierend auf dem WKT-Standard. Ein Punktliteral wird als Geografie erstellt'POINT(lon lat)'.
Edm.ComplexType Objekte, deren Eigenschaften Unterfeldern zugeordnet sind, die von jedem anderen unterstützten Datentyp sein können. Dieser Typ ermöglicht die Indizierung strukturierter hierarchischer Daten wie JSON. Objekte in einem Feld vom Typ Edm.ComplexType können geschachtelte Objekte enthalten, aber die Schachtelungsebene ist begrenzt. Die Grenzwerte werden in Dienstbeschränkungenbeschrieben.
Collection(Edm.String) Eine Liste der Zeichenfolgen.
Collection(Edm.Boolean) Eine Liste boolescher Werte.
Collection(Edm.Int32) Eine Liste mit ganzzahligen 32-Bit-Werten.
Collection(Edm.Int64) Eine Liste mit ganzzahligen 64-Bit-Werten.
Collection(Edm.Double) Eine Liste mit numerischen Werten mit doppelter Genauigkeit.
Collection(Edm.DateTimeOffset) Eine Liste der Datumszeitwerte.
Collection(Edm.GeographyPoint) Eine Liste der Punkte, die geografische Standorte darstellen.
Collection(Edm.ComplexType) Eine Liste der Objekte vom Typ Edm.ComplexType. Es gibt ein Limit für die maximale Anzahl von Elementen in allen Auflistungen vom Typ Edm.ComplexType in einem Dokument. Weitere Informationen finden Sie unter Dienstbeschränkungen.

Alle oben genannten Typen sind nullfähig, mit Ausnahme von Auflistungen von primitiven und komplexen Typen, z. B. Collection(Edm.String). Nullwerte erfordernde Felder können explizit auf NULL festgelegt werden. Sie werden automatisch auf NULL festgelegt, wenn sie aus einem Dokument weggelassen werden, das in einen Azure AI Search-Index hochgeladen wird. Sammlungsfelder werden automatisch auf leer ([] in JSON) festgelegt, wenn sie aus einem Dokument weggelassen werden. Außerdem ist es nicht möglich, einen NULL-Wert in einem Sammlungsfeld zu speichern.

Im Gegensatz zu komplexen Auflistungen gibt es keine obere Grenze speziell für die Anzahl der Elemente in einer Sammlung von Grundtypen, aber die 16 MB oberer Grenzwert für die Nutzlastgröße gilt für alle Teile von Dokumenten, einschließlich Sammlungen.

Geospatialdatentyp, der in Filterausdrücken verwendet wird

In Azure AI Search wird die Geospatialsuche als Filter ausgedrückt.

Edm.GeographyPolygon ist ein Polygon, das eine geografische Region auf dem Globus darstellt. Dieser Typ kann zwar nicht in Dokumentfeldern verwendet werden, kann aber als Argument für die funktion geo.intersects verwendet werden. Das Literalformular für URLs in OData basiert auf dem WKT (bekannter Text) und den einfachen Featurezugriffsstandards von OGC. Ein Polygonliteral wird als geografie konstruiert:POLYGON((lon lat, lon lat, ...))'.

Wichtig

Punkte in einem Polygon müssen in gegen den Uhrzeigersinn angeordnet sein. Punkte in einem Polygon werden relativ zum Inneren des Polygons in gegen den Uhrzeigersinn interpretiert. Beispiel: ein 4 Punkt geschlossenes Polygon um London wäre -0,3°W 51,6°N [oben links] , -0,3°W 51,4°N [unten links], 0,0,31°E 51,4°N [unten rechts], 0,1°E 51,6°N [oben rechts], -0,3°W 51,6°N [Ausgangspunkt].

Siehe auch