Unterstützte Datentypen (Azure AI Search)

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

Hinweis

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

EDM-Datentypen für Vektorfelder

Ein Vektorfeldtyp muss für die Ausgabe Ihres Einbettungsmodells gültig sein. Wenn Sie beispielsweise text-embedding-ada-002 verwenden, ist Float32 das Ausgabeformat oder Collection(Edm.Single). In diesem Szenario können Sie keinen Int8 Datentyp zuweisen, da das Umwandeln von in floatint 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.Single) Float32 32-Bit-Gleitkomma. Verfügbar ab Erstellen oder Aktualisieren des Indexes (2023-07-01-Preview). Dieser Datentyp wird auch in neueren Vorschauversionen und in der stabilen Version 2023-11-01unterstützt. Standarddatentyp in Microsoft-Tools, die Vektorfelder in Ihrem Namen erstellen. Schafft 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 geringerem Bereich. Verfügbar ab Erstellen oder Aktualisieren des Indexes (2024-03-01-preview). Nützlich für Szenarien, in denen die Speicher- und Recheneffizienz von entscheidender Bedeutung sind und bei denen die Einbußen bei der Genauigkeit akzeptabel sind. Häufig führt zu kürzeren Abfragezeiten und einem geringeren Speicherbedarf im Vergleich zu Float32, wenn auch mit etwas geringerer Genauigkeit. Sie können Indexeinbettungen einen Float16 Typ Float32 als Float16zuweisen. Sie können auch zum Einbetten von Modellen oder benutzerdefinierten Quantisierungsprozessen verwenden Float16 , die nativ ausgegeben Float16 werden.
Collection(Edm.Int16) Int16 16-Bit-Ganzzahl mit Vorzeichen. Verfügbar ab Erstellen oder Aktualisieren des Indexes (2024-03-01-preview). Bietet einen geringeren Speicherbedarf im Vergleich zu Float32 und Unterstützung für Quantisierungsmethoden mit höherer Genauigkeit, während für viele Anwendungen weiterhin eine ausreichende Genauigkeit beibehalten wird. Geeignet für Fälle, in denen die Speichereffizienz wichtig ist. Erfordert eine benutzerdefinierte Quantisierung, die Vektoren als Int16ausgibt.
Collection(Edm.SByte) Int8 8-Bit-Ganzzahl mit Vorzeichen. Verfügbar ab Erstellen oder Aktualisieren des Indexes (2024-03-01-preview). Bietet erhebliche Speicher- und Recheneffizienzsteigerungen im Vergleich zu Float32 oder Float16. Es erfordert jedoch wahrscheinlich zusätzliche Techniken (z. B. Quantisierung und Übersampling), um die Verringerung der Genauigkeit auszugleichen und den Rückruf entsprechend zu berücksichtigen. Erfordert eine benutzerdefinierte Quantisierung, 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 Werte mit einer Genauigkeit unter einem Millisekunden hochladen DateTimeOffset , wird der zurückgegebene Wert auf Millisekunden aufgerundet (z 2024-04-15T10:30:09.7552052Z . B. wird als 2024-04-15T10:30:09.7550000Zzurückgegeben). Wenn Sie Werte mit Zeitzoneninformationen in Ihren Index hochladenDateTimeOffset, normalisiert Azure KI Search diese Werte auf UTC. Wird beispielsweise 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 weltweiten geografischen Standort darstellt Für Anforderungs- und Antworttexte folgt die Darstellung von Werten dieses Typs dem GeoJSON-Typformat "Point". Für URLs verwendet OData ein Literalformular, das auf dem WKT-Standard basiert. Ein Punktliteral wird als "geography'POINT(lon lat)'" erstellt.
Edm.ComplexType Objekte, deren Eigenschaften Unterfeldern zugeordnet sind, die von einem 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 Ebene der Schachtelung ist begrenzt. Die Grenzwerte werden unter Dienstgrenzwerte beschrieben.
Collection(Edm.String) Eine Liste von Zeichenfolgen.
Collection(Edm.Boolean) Eine Liste mit booleschen Werten.
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 von Datums- und Uhrzeitwerten.
Collection(Edm.GeographyPoint) Eine Liste von Punkten, die geografische Standorte darstellen.
Collection(Edm.ComplexType) Eine Liste von Objekten vom Typ Edm.ComplexType. Es gibt eine Beschränkung für die maximale Anzahl von Elementen für alle Auflistungen des Typs Edm.ComplexType in einem Dokument. Weitere Informationen finden Sie unter Dienstgrenzwerte .

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

Im Gegensatz zu komplexen Auflistungen gibt es keine Obergrenze speziell für die Anzahl von Elementen in einer Auflistung primitiver Typen, aber die Obergrenze von 16 MB für die Nutzlastgröße gilt für alle Teile von Dokumenten, einschließlich Sammlungen.

Geodatentyp, der in Filterausdrücken verwendet wird

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

Edm.GeographyPolygon ist ein Polygon, das eine geografische Region auf der Erde darstellt. Dieser Typ kann zwar nicht in Dokumentfeldern verwendet werden, kann aber als Argument für die geo.intersects Funktion verwendet werden. Die Literalform für URLs in OData basiert auf dem WKT (Well-known text) und den einfachen Featurezugriffsstandards von OGC. Ein Polygonliteral wird als "geography'POLYGON((lon lat, lon lat, ...))'" erstellt.

Wichtig

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

Weitere Informationen