Ondersteunde gegevenstypen (Azure AI Search)

In dit artikel worden de gegevenstypen beschreven die worden ondersteund door Azure AI Search. Velden en de waarden die in filterexpressies worden gebruikt, worden getypt volgens het Entity Data Model (EDM). Het opgeven van een EDM-gegevenstype is een vereiste voor de velddefinitie.

Notitie

Als u indexeerfuncties gebruikt, raadpleegt u Gegevenstypetoewijzing voor indexeerfuncties in Azure AI Search voor meer informatie over hoe indexeerfuncties bronspecifieke gegevenstypen toewijzen aan EDM-gegevenstypen in een zoekindex.

EDM-gegevenstypen voor vectorvelden

Een vectorveldtype moet geldig zijn voor de uitvoer van uw insluitmodel. Als u bijvoorbeeld text-embedding-ada-002 gebruikt, is Float32 de uitvoerindeling of Collection(Edm.Single). In dit scenario kunt u geen gegevenstype toewijzen Int8 omdat casten van float naar int primitieven niet is toegestaan. U kunt echter casten van Float32 naar Float16 of (Collection(Edm.Half)).

Vectorvelden zijn een matrix van insluitingen. In EDM is een matrix een verzameling.

Gegevenstype Vectortype Description Aanbevolen gebruik
Collection(Edm.Single) Float32 32-bits drijvende komma. Beschikbaar vanaf Create or Update Index (2023-07-01-Preview). Dit gegevenstype wordt ook ondersteund in nieuwere preview-versies en in de stabiele versie 2023-11-01. Standaardgegevenstype in Microsoft-hulpprogramma's waarmee namens u vectorvelden worden gemaakt. Zorgt voor een balans tussen precisie en efficiëntie. De meeste insluitmodellen verzenden vectoren als Float32.
Collection(Edm.Half) Float16 16-bits drijvende komma met een lagere precisie en een lager bereik. Beschikbaar vanaf maken of bijwerken van index (2024-03-01-preview). Handig voor scenario's waarin geheugen- en rekenefficiëntie essentieel zijn en waarbij het opofferen van enige precisie acceptabel is. Leidt vaak tot snellere querytijden en verminderde geheugenvoetafdruk in vergelijking met Float32, hoewel met iets minder nauwkeurigheid. U kunt een Float16 type aan index Float32 insluitingen toewijzen als Float16. U kunt ook gebruiken Float16 voor het insluiten van modellen of aangepaste kwantisatieprocessen die systeemeigen verzenden Float16 .
Collection(Edm.Int16) Int16 16-bits ondertekend geheel getal. Beschikbaar vanaf maken of bijwerken van index (2024-03-01-preview). Biedt een verminderde geheugenvoetafdruk in vergelijking met Float32 en ondersteuning voor nauwkeurigere kwantisatiemethoden, met behoud van voldoende precisie voor veel toepassingen. Geschikt voor gevallen waarin geheugenefficiëntie belangrijk is. Vereist dat u aangepaste kwantisatie hebt waarmee vectoren worden uitgevoerd als Int16.
Collection(Edm.SByte) Int8 8-bits geheel getal met teken. Beschikbaar vanaf maken of bijwerken van index (2024-03-01-preview). Biedt aanzienlijke geheugen- en rekenkundige efficiëntieverbeteringen in vergelijking Float32 met of Float16. Het vereist echter waarschijnlijk aanvullende technieken (zoals kwantisatie en oversampling) om de vermindering in precisie te compenseren en op de juiste manier terug te roepen. Vereist dat u aangepaste kwantisatie hebt waarmee vectoren worden uitgevoerd als Int8.

EDM-gegevenstypen voor niet-ctorvelden

Gegevenstype Beschrijving
Edm.String Tekstgegevens.
Edm.Boolean Bevat de waarden waar/niet waar.
Edm.Int32 32-bits waarden van een heel getal.
Edm.Int64 64-bits waarden van een heel getal.
Edm.Double IEEE 754 drijvendekommawaarden met dubbele precisie.
Edm.DateTimeOffset Datum- en tijdwaarden die worden weergegeven in de OData V4-indeling: yyyy-MM-ddTHH:mm:ss.fffZ of yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm. De precisie van DateTimeOffset velden is beperkt tot milliseconden. Als u waarden uploadt DateTimeOffset met een precisie van submilliseconden, wordt de geretourneerde waarde naar boven afgerond op milliseconden (wordt bijvoorbeeld 2024-04-15T10:30:09.7552052Z geretourneerd als 2024-04-15T10:30:09.7550000Z). Wanneer u waarden met tijdzonegegevens uploadt DateTimeOffset naar uw index, normaliseert Azure AI Search deze waarden naar UTC. wordt bijvoorbeeld 2024-01-13T14:03:00-08:00 opgeslagen als 2024-01-13T22:03:00Z. Als u informatie over de tijdzone wilt opslaan, voegt u een extra veld toe aan uw index.
Edm.GeographyPoint Een punt voor een geografische locatie op de wereld. Voor aanvraag- en antwoordteksten volgt de weergave van waarden van dit type de geoJSON-notatie van het type Punt. Voor URL's gebruikt OData een letterlijke vorm op basis van de WKT-standaard. Een letterlijk punt wordt geconstrueerd als geografie'POINT(lon lat)'.
Edm.ComplexType Objecten waarvan de eigenschappen zijn toegewezen aan subvelden die van elk ander ondersteund gegevenstype kunnen zijn. Met dit type kunt u gestructureerde hiërarchische gegevens, zoals JSON, indexeren. Objecten in een veld van het type Edm.ComplexType kunnen geneste objecten bevatten, maar het niveau van nesten is beperkt. De limieten worden beschreven in Servicelimieten.
Collection(Edm.String) Een lijst met tekenreeksen.
Collection(Edm.Boolean) Een lijst met booleaanse waarden.
Collection(Edm.Int32) Een lijst met 32-bits waarden voor gehele getallen.
Collection(Edm.Int64) Een lijst met 64-bits waarden voor gehele getallen.
Collection(Edm.Double) Een lijst met numerieke waarden met dubbele precisie.
Collection(Edm.DateTimeOffset) Een lijst met datum/tijd-waarden.
Collection(Edm.GeographyPoint) Een lijst met punten die geografische locaties vertegenwoordigen.
Collection(Edm.ComplexType) Een lijst met objecten van het type Edm.ComplexType. Er geldt een limiet voor het maximum aantal elementen voor alle typen verzamelingen Edm.ComplexType in een document. Zie Servicelimieten voor meer informatie.

Alle bovenstaande typen kunnen met null worden gebruikt, met uitzondering van verzamelingen van primitieve en complexe typen, bijvoorbeeld Collection(Edm.String). Velden die met null kunnen worden gebruikt, kunnen expliciet worden ingesteld op null. Ze worden automatisch ingesteld op null wanneer ze worden weggelaten uit een document dat is geüpload naar een Azure AI-Search-index. Verzamelingsvelden worden automatisch ingesteld op leeg ([] in JSON) wanneer ze uit een document worden weggelaten. Het is ook niet mogelijk om een null-waarde op te slaan in een verzamelingsveld.

In tegenstelling tot complexe verzamelingen is er geen bovengrens specifiek voor het aantal items in een verzameling primitieve typen, maar de bovengrens van 16 MB voor nettoladinggrootte geldt voor alle delen van documenten, inclusief verzamelingen.

Georuimtelijk gegevenstype dat wordt gebruikt in filterexpressies

In Azure AI Search wordt georuimtelijke zoekopdracht uitgedrukt als een filter.

Edm.GeographyPolygon is een veelhoek die een geografische regio op de wereld vertegenwoordigt. Hoewel dit type niet kan worden gebruikt in documentvelden, kan het wel worden gebruikt als argument voor de geo.intersects functie. De letterlijke vorm voor URL's in OData is gebaseerd op de WKT (bekende tekst) en de eenvoudige functietoegangsstandaarden van OGC. Een letterlijke veelhoek wordt geconstrueerd als geografie'POLYGON(((lon lat, lon lat, ...))'.

Belangrijk

Punten in een veelhoek moeten linksom staan. Punten in een veelhoek worden geïnterpreteerd in volgorde linksom, ten opzichte van de binnenkant van de veelhoek. Een gesloten veelhoek met vier punten rond Londen zou bijvoorbeeld -0,3°WL 51,6°N zijn [linksboven] , -0,3°WL 51,4°N [linksonder], 0,1°E 51,4°N [rechtsonder], 0,1°E 51,6°N [rechtsboven], -0,3°W 51,6°N [startpunt].

Zie ook