Dela via


Datatyper som stöds (Azure AI Search)

I den här artikeln beskrivs de datatyper som stöds av Azure AI Search. Fält och de värden som används i filteruttryck skrivs enligt EDM (Entity Data Model). Att ange en EDM-datatyp är ett krav för fältdefinition.

Not

Om du använder indexerare kan du läsa Datatypskarta för indexerare i Azure AI Search för mer information om hur indexerare mappar källspecifika datatyper till EDM-datatyper i ett sökindex.

EDM-datatyper för vektorfält

En vektorfälttyp måste vara giltig för utdata från inbäddningsmodellen. Om du till exempel använder text-embedding-ada-002 är Float32 utdataformatet eller Collection(Edm.Single). I det här scenariot kan du inte tilldela en Int8 datatyp eftersom det är förbjudet att omvandla float från till int primitiver. Du kan dock casta från Float32 till Float16 eller (Collection(Edm.Half)).

Vektorfält är en matris med inbäddningar. I EDM är en matris en samling.

Datatyp Typ av vektor Beskrivning Rekommenderad användning
Collection(Edm.Byte) Binär 1-bitars osignerad binär fil. Allmänt tillgängligt i Skapa eller Uppdatera index. Stöder integrering med modeller som genererar binära inbäddningar, till exempel Coheres v3-modeller för binär inbäddning eller anpassad kvantiseringslogik som genererar 1-bitars osignerad binär utdata. För fält av typen Collection(Edm.Byte), se Indexera binära data för hjälp med att ange fältdefinitionen och vektorsökningsalgoritmerna för binära data.
Collection(Edm.Single) Float32 32-bitars flyttal. Allmänt tillgängligt i Skapa eller Uppdatera index. Standarddatatyp i Microsoft-verktyg som skapar vektorfält åt dig. Skapar en balans mellan precision och effektivitet. De flesta inbäddningsmodeller genererar vektorer som Float32.
Collection(Edm.Half) Float16 16-bitars flyttal med lägre precision och räckvidd. Allmänt tillgängligt i Skapa eller Uppdatera index. Användbart för scenarier där minnes- och beräkningseffektivitet är kritiska och där det är acceptabelt att offra viss precision. Leder ofta till snabbare frågetider och minskat minnesfotavtryck jämfört med Float32, även om noggrannheten minskar något. Du kan tilldela en Float16 typ för att indexera Float32 inbäddningar som Float16. Du kan också använda Float16 för att bädda in modeller eller anpassade kvantiseringsprocesser som genererar Float16 internt.
Collection(Edm.Int16) Int16 16-bitars signerat heltal. Allmänt tillgängligt i Skapa eller Uppdatera index. Erbjuder minskat minnesfotavtryck jämfört med Float32 och stöd för kvantiseringsmetoder med högre precision samtidigt som tillräcklig precision bibehålls för många applikationer. Lämplig för fall där minneseffektivitet är viktigt. Kräver att du har anpassad kvantisering som matar ut vektorer som Int16.
Collection(Edm.SByte) Int8 8-bitars signerat heltal. Allmänt tillgängligt i Skapa eller Uppdatera index. Ger betydande vinster i minnes- och beräkningseffektivitet jämfört med Float32 eller Float16. Det kräver dock sannolikt kompletterande tekniker (som kvantisering och översampling) för att kompensera för minskning av precision och återkalla på lämpligt sätt. Kräver att du har anpassad kvantisering som matar ut vektorer som Int8.

EDM-datatyper för icke-bevektorfält

Datatyp Beskrivning
Edm.String Textdata.
Edm.Boolean Innehåller true/false-värden.
Edm.Int32 32-bitars heltalsvärden.
Edm.Int64 64-bitars heltalsvärden.
Edm.Double IEEE 754-flyttalsvärden med dubbel precision.
Edm.DateTimeOffset Datum- och tidsvärden som representeras i OData V4-formatet: yyyy-MM-ddTHH:mm:ss.fffZ eller yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm. Fältens precision DateTimeOffset är begränsad till millisekunder. Om du laddar upp DateTimeOffset värden med precision på under millisekunder avrundas det returnerade värdet uppåt till millisekunder (returneras till exempel 2024-04-15T10:30:09.7552052Z som 2024-04-15T10:30:09.7550000Z). När du laddar upp DateTimeOffset värden med tidszonsinformation till ditt index normaliserar Azure AI Search dessa värden till UTC. Lagras till exempel 2024-01-13T14:03:00-08:00 som 2024-01-13T22:03:00Z. Om du behöver lagra information om tidszonen lägger du till ett extra fält i indexet.
Edm.GeographyPoint En punkt som representerar en geografisk plats i världen. För begärande- och svarsorgan följer representationen av värden av den här typen formatet GeoJSON-typen "Point". För URL:er använder OData ett bokstavligt formulär baserat på WKT-standarden. En punktliteral konstrueras som geografi'POINT(lon lat)'.
Edm.ComplexType Objekt vars egenskaper mappas till underfält som kan vara av valfri annan datatyp som stöds. Den här typen möjliggör indexering av strukturerade hierarkiska data, till exempel JSON. Objekt i ett fält av typ Edm.ComplexType kan innehålla kapslade objekt, men kapslingsnivån är begränsad. Gränserna beskrivs i Tjänstbegränsningar.
Collection(Edm.String) En lista med strängar.
Collection(Edm.Boolean) En lista med booleska värden.
Collection(Edm.Int32) En lista med 32-bitars heltalsvärden.
Collection(Edm.Int64) En lista med 64-bitars heltalsvärden.
Collection(Edm.Double) En lista med numeriska värden med dubbel precision.
Collection(Edm.DateTimeOffset) En lista över datumtidsvärden.
Collection(Edm.GeographyPoint) En lista över punkter som representerar geografiska platser.
Collection(Edm.ComplexType) En lista över objekt av typen Edm.ComplexType. Det finns en gräns för det maximala antalet element i alla samlingar av typ Edm.ComplexType i ett dokument. Mer information finns i Tjänstbegränsningar .

Alla ovanstående typer kan ha värdet null, förutom samlingar av primitiva och komplexa typer, Collection(Edm.String)till exempel . Null-fält kan uttryckligen anges till null. De anges automatiskt till null när de utelämnas från ett dokument som laddas upp till ett Azure AI Search-index. Samlingsfält anges automatiskt till tomma ([] i JSON) när de utelämnas från ett dokument. Det går inte heller att lagra ett null-värde i ett samlingsfält.

Till skillnad från komplexa samlingar finns det ingen övre gräns specifikt för antalet objekt i en samling primitiva typer, men den övre gränsen på 16 MB för nyttolaststorlek gäller för alla delar av dokument, inklusive samlingar.

Geospatial datatyp som används i filteruttryck

I Azure AI Search uttrycks geospatial sökning som ett filter.

Edm.GeographyPolygon är en polygon som representerar en geografisk region på jordklotet. Den här typen kan inte användas i dokumentfält, men den kan användas som ett argument till geo.intersects funktionen. Den bokstavliga formen för URL:er i OData baseras på WKT (Well-known text) och OGC:s enkla åtkomststandarder för funktioner. En polygonliteral konstrueras som geography'POLYGON((lon lat, lon lat, ...))'.

Viktig

Punkter i en polygon måste vara i moturs ordning. Punkter i en polygon tolkas i motsols ordning i förhållande till polygonens insida. Till exempel en 4-punkts stängd polygon runt London skulle vara -0,3°W 51,6°N [övre vänstra] , -0,3°W 51,4°N [nedre vänstra], 0.. 1°E 51.4°N [nedre högra], 0.1°E 51.6°N [övre högra], -0.3°W 51.6°N [startpunkt].

Se även