Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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) typisiert. Das Angeben eines EDM-Datentyps ist eine Anforderung für die Felddefinition.
Anmerkung
Wenn Sie Indexer verwenden, 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 Vektorfeldtyp muss für die Ausgabe Ihres Einbettungsmodells gültig sein. Wenn Sie z. B. text-embedding-ada-002 verwenden, ist Float32
das Ausgabeformat or .Collection(Edm.Single)
In diesem Szenario können Sie keinen Int8
Datentyp zuweisen, da das Umwandeln von float
in int
primitive Elemente nicht zulässig 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 unter Erstellen oder Aktualisieren des Index. | Unterstützt die Integration mit Modellen, die binäre Einbettungen ausgeben, wie z. B. die binären Einbettungsmodelle v3 von Cohere, oder benutzerdefinierte Quantisierungslogik, die eine binäre 1-Bit-Ausgabe ohne Vorzeichen ausgibt. Für Felder des Typs Collection(Edm.Byte) finden Sie unter Indizieren von Binärdaten Hilfe zum Festlegen der Felddefinition und der Vektorsuchalgorithmen für Binärdaten. |
Collection(Edm.Single) |
Float32 |
32-Bit-Gleitkomma. Allgemein verfügbar unter Erstellen oder Aktualisieren des Index. | 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 Float32 aus. |
Collection(Edm.Half) |
Float16 |
16-Bit-Gleitkomma mit geringerer Genauigkeit und Bereich. Allgemein verfügbar unter Erstellen oder Aktualisieren des Index. | 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 geringerem Speicherbedarf im Vergleich zu Float32 , wenn auch mit leicht reduzierter Genauigkeit. Sie können Indexeinbettungen einen Float16 Typ Float32 als Float16 zuweisen. Sie können diese auch zum Einbetten von Modellen oder benutzerdefinierten Quantisierungsprozessen verwenden Float16 , die nativ emittieren Float16 . |
Collection(Edm.Int16) |
Int16 |
16-Bit-Ganzzahl mit Vorzeichen. Allgemein verfügbar unter Erstellen oder Aktualisieren des Index. | Bietet einen geringeren Speicherbedarf im Vergleich zu Float32 und Unterstützung für Quantisierungsmethoden mit höherer Präzision, während für viele Anwendungen dennoch eine ausreichende Präzision erhalten bleibt. Geeignet für Fälle, in denen die Speichereffizienz wichtig ist. Erfordert eine benutzerdefinierte Quantisierung, die Vektoren als Int16 ausgibt. |
Collection(Edm.SByte) |
Int8 |
8-Bit-Ganzzahl mit Vorzeichen. Allgemein verfügbar unter Erstellen oder Aktualisieren des Index. | 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 eine benutzerdefinierte Quantisierung, die Vektoren als Int8 ausgibt. |
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 Feldern DateTimeOffset ist auf Millisekunden begrenzt. Wenn Sie Werte mit einer Genauigkeit von weniger als einer Millisekunde hochladen DateTimeOffset , wird der zurückgegebene Wert auf Millisekunden aufgerundet (z. B 2024-04-15T10:30:09.7552052Z . wird er als 2024-04-15T10:30:09.7550000Z zurückgegeben). Wenn Sie DateTimeOffset -Werte mit Zeitzoneninformationen in Ihren Index hochladen, normalisiert Azure KI-Suche diese Werte in UTC (koordinierte Weltzeit). Wird z. B 2024-01-13T14:03:00-08:00 . als 2024-01-13T22:03:00Z gespeichert. 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 des Typs Edm.ComplexType können verschachtelte Objekte enthalten, aber die Verschachtelungsebene ist begrenzt. Die Limits sind unter Service-Limits beschrieben. |
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 von Objekten des Typs Edm.ComplexType . Es gibt einen Grenzwert für die maximale Anzahl von Elementen für alle Auflistungen des Typs Edm.ComplexType in einem Dokument. Weitere Informationen finden Sie unter Dienstlimits . |
Alle oben genannten Typen lassen NULL-Werte zu, mit Ausnahme von Auflistungen primitiver und komplexer Typen, Collection(Edm.String)
z. B. . . 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) gesetzt, wenn sie in 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 Obergrenze speziell für die Anzahl der Elemente 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 Auflistungen.
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 geographische Region auf dem Globus darstellt. Dieser Typ kann zwar nicht in Dokumentfeldern verwendet werden, aber er kann als Argument für die geo.intersects
Funktion verwendet werden. Die Literalform für URLs in OData basiert auf den WKT (Well-known text) und OGC's simple feature access standards. Ein Polygonliteral wird als geografie konstruiert:POLYGON((lon lat, lon lat, ...))'.
Wichtig
Punkte in einem Polygon müssen 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].