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 de Entity Data Model (EDM). Het opgeven van een EDM-gegevenstype is een vereiste voor velddefinitie.
Notitie
Als u indexeerfunctiesgebruikt, 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 vectorveld type moet geldig zijn voor de uitvoer van het insluitmodel. Als u bijvoorbeeld tekst-insluiten-ada-002 gebruikt, wordt de uitvoerindeling Float32
of Collection(Edm.Single)
. In dit scenario kunt u geen Int8
gegevenstype toewijzen omdat casten van float
naar int
primitieven niet is toegestaan. U kunt echter van Float32
naar Float16
of (Collection(Edm.Half))
casten.
Vectorvelden zijn een matrix van insluitingen. In EDM is een matrix een verzameling.
Gegevenstype | Vectortype | Beschrijving | Aanbevolen gebruik |
---|---|---|---|
Collection(Edm.Byte) |
Binair | 1-bits niet-ondertekende binaire versie. Algemeen beschikbaar in Index maken of bijwerken (2024-07-01). | Ondersteunt integratie met modellen die binaire insluitingen verzenden, zoals cohere's v3 binaire insluitingsmodellen. of aangepaste logica voor kwantisatie waarmee 1-bits niet-ondertekende binaire uitvoer wordt verzonden. Zie voor velden van het type Collection(Edm.Byte) binaire gegevens indexeren voor hulp bij het opgeven van de velddefinitie en vectorzoekalgoritmen voor binaire gegevens. |
Collection(Edm.Single) |
Float32 |
32-bits drijvende komma. Algemeen beschikbaar in Index maken of bijwerken (2024-07-01). Dit gegevenstype wordt ook ondersteund in nieuwere preview-versies en in de stabiele versie 2023-11-01 . |
Standaardgegevenstype in Microsoft-hulpprogramma's waarmee vectorvelden namens u 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 lagere precisie en een lager bereik. Algemeen beschikbaar in Index maken of bijwerken (2024-07-01). | Handig voor scenario's waarbij geheugen- en rekenefficiëntie essentieel zijn en waarbij het opofferen van enige precisie acceptabel is. Vaak leidt dit tot snellere querytijden en een verminderde geheugenvoetafdruk vergeleken met Float32 , hoewel met iets lagere nauwkeurigheid. U kunt een Float16 type toewijzen aan indexeringen Float32 insluitingen als Float16 . U kunt ook Float16 gebruiken voor het insluiten van modellen of aangepaste kwantisatieprocessen die systeemeigen Float16 verzenden. |
Collection(Edm.Int16) |
Int16 |
16-bits ondertekend geheel getal. Algemeen beschikbaar in Index maken of bijwerken (2024-07-01). | Biedt een verminderde geheugenvoetafdruk vergeleken met Float32 en ondersteuning voor methoden voor kwantisatie met een hogere precisie, terwijl er nog steeds voldoende precisie voor veel toepassingen wordt behouden. Geschikt voor gevallen waarin geheugenefficiëntie belangrijk is. Vereist dat u aangepaste kwantisatie hebt die vectoren uitvoert als Int16 . |
Collection(Edm.SByte) |
Int8 |
8-bits teken geheel getal. Algemeen beschikbaar in Index maken of bijwerken (2024-07-01). | Biedt aanzienlijke winsten voor geheugen- en rekenefficiëntie in vergelijking met Float32 of Float16 . Het vereist echter waarschijnlijk aanvullende technieken (zoals kwantisatie en oversampling) om de vermindering van precisie en relevante overeenkomsten te compenseren. Vereist dat u aangepaste kwantisatie hebt die vectoren uitvoert als Int8 . |
EDM-gegevenstypen voor niet-ctorvelden
Gegevenstype | Beschrijving |
---|---|
Edm.String |
Tekstgegevens. |
Edm.Boolean |
Bevat waar-/onwaar-waarden. |
Edm.Int32 |
32-bits geheel getalwaarden. |
Edm.Int64 |
64-bits geheel getalwaarden. |
Edm.Double |
Dubbele precisie IEEE 754 drijvendekommawaarden. |
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 . Precisie van DateTimeOffset velden is beperkt tot milliseconden. Als u DateTimeOffset waarden uploadt met een precisie van submilliseconden, wordt de geretourneerde waarde naar milliseconden afgerond (bijvoorbeeld 2024-04-15T10:30:09.7552052Z wordt geretourneerd als 2024-04-15T10:30:09.7550000Z ). Wanneer u DateTimeOffset waarden uploadt met tijdzonegegevens naar uw index, normaliseert Azure AI Search deze waarden naar UTC.
2024-01-13T14:03:00-08:00 wordt bijvoorbeeld opgeslagen als 2024-01-13T22:03:00Z . Als u tijdzonegegevens wilt opslaan, voegt u een extra veld toe aan uw index. |
Edm.GeographyPoint |
Een punt dat een geografische locatie op de wereldbol vertegenwoordigt. Voor aanvraag- en antwoordteksten volgt de weergave van waarden van dit type de indeling geoJSON -punttype. Voor URL's gebruikt OData een letterlijke vorm op basis van de WKT-standaard. Een letterlijke puntwaarde wordt samengesteld 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 indexeren van gestructureerde hiërarchische gegevens, zoals JSON. Objecten in een veld van het type Edm.ComplexType kunnen geneste objecten bevatten, maar het nestniveau 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 geheel getalwaarden. |
Collection(Edm.Int64) |
Een lijst met 64-bits geheel getalwaarden. |
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 verzamelingen van het type Edm.ComplexType in een document. Zie Servicelimieten voor meer informatie. |
Alle bovenstaande typen zijn null-baar, met uitzondering van verzamelingen primitieve en complexe typen, bijvoorbeeld Collection(Edm.String)
. Null-velden kunnen expliciet worden ingesteld op null. Ze worden automatisch ingesteld op null wanneer ze worden weggelaten uit een document dat wordt geüpload naar een Azure AI Search-index. Verzamelingsvelden worden automatisch ingesteld op leeg ([]
in JSON) wanneer ze worden weggelaten uit een document. 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 van toepassing op 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 wereldbol vertegenwoordigt. Hoewel dit type niet kan worden gebruikt in documentvelden, kan dit worden gebruikt als argument voor de functie geo.intersects
. De letterlijke vorm voor URL's in OData is gebaseerd op de WKT (bekende tekst) en de eenvoudige functietoegangsstandaarden van OGC. Een letterlijke polygoon is opgebouwd als geografie'POLYGON((lon lat, lon lat, ...))'.
Belangrijk
Punten in een veelhoek moeten linksom staan. Punten in een veelhoek worden geïnterpreteerd in contraclockwise volgorde, ten opzichte van de binnenkant van de veelhoek. Een gesloten polygoon van 4 punten rond Londen is bijvoorbeeld -0,3°W 51,6°N [linksboven] , -0,3°W 51,4°N [linksonder], 0.1°E 51.4°N [rechtsonder], 0,1°E 51.6°N [rechtsboven], -0,3°W 51,6°N [beginpunt].