Podporované datové typy (Azure AI Search)

Tento článek popisuje datové typy podporované službou Azure AI Search. Pole a hodnoty použité ve výrazech filtru se zadají podle modelu EDM (Entity Data Model). Zadání datového typu EDM je požadavkem pro definici pole.

Poznámka

Pokud používáte indexery, přečtěte si téma Mapování datových typů pro indexery ve službě Azure AI Search , kde najdete další informace o tom, jak indexery mapují datové typy specifické pro zdroj na datové typy EDM ve vyhledávacím indexu.

Datové typy EDM pro vektorová pole

Typ vektorového pole musí být platný pro výstup modelu vkládání. Pokud například použijete text-embedding-ada-002, výstupní formát je Float32 nebo Collection(Edm.Single). V tomto scénáři nemůžete přiřadit Int8 datový typ, protože přetypování z float na int primitiva je zakázáno. Můžete ale přetypovat z na Float32Float16 nebo (Collection(Edm.Half)).

Vektorová pole jsou pole vkládání. V EDM je pole kolekcí.

Datový typ Typ vektoru Description Doporučené použití
Collection(Edm.Byte) Binární 1bitový binární soubor bez znaménka. K dispozici od Create nebo indexu aktualizací (2024-05-01-preview). Podporuje integraci s modely, které generují binární vkládání, jako jsou binární modely pro vkládání binárních souborů Cohere v3 nebo vlastní logika kvantování, která generuje 1bitový binární výstup bez znaménka. Pole typu Collection(Edm.Byte)najdete v tématu Indexování binárních dat , kde najdete nápovědu k určení definice pole a algoritmů vektorového vyhledávání binárních dat.
Collection(Edm.Single) Float32 32bitová verze s plovoucí desetinou čárkou K dispozici od Create nebo indexu aktualizací (2023-07-01-Preview). Tento datový typ je podporován také v novějších verzích Preview a ve stabilní verzi 2023-11-01. Výchozí datový typ v nástrojích Microsoftu, které vytvářejí vektorová pole vaším jménem. Vytvoří rovnováhu mezi přesností a efektivitou. Většina modelů vkládání vysílá vektory jako Float32.
Collection(Edm.Half) Float16 16bitová plovoucí desetiná čárka s nižší přesností a rozsahem. K dispozici od Create nebo indexu aktualizací (2024-03-01-preview). Hodí se pro scénáře, kde je efektivita paměti a výpočetních operací kritická a kde je přijatelné obětovat určitou přesnost. Často vede k rychlejšímu dotazování a snížení paměti v porovnání Float32s , i když s mírně sníženou přesností. K vložení indexu Float16Float32 můžete přiřadit typ jako Float16. Můžete také použít Float16 pro vkládání modelů nebo vlastních procesů kvantování, které generují Float16 nativně.
Collection(Edm.Int16) Int16 16bitové celé číslo se signoum K dispozici od Create nebo indexu aktualizací (2024-03-01-preview). Nabízí nižší nároky na Float32 paměť v porovnání s metodami kvantování s vyšší přesností a podporu pro metody kvantování s vyšší přesností a přitom si zachovává dostatečnou přesnost pro mnoho aplikací. Vhodné pro případy, kdy je efektivita paměti důležitá. Vyžaduje vlastní kvantování, které vypíše vektory jako Int16.
Collection(Edm.SByte) Int8 8bitové celé číslo se signedýmm číslem. K dispozici od Create nebo indexu aktualizací (2024-03-01-preview). Poskytuje významné zvýšení efektivity paměti a výpočetní efektivity ve srovnání s Float32 nebo Float16. Pravděpodobně však vyžaduje doplňkové techniky (jako je kvantování a převzorkování), aby se vyrovnala snížení přesnosti a odpovídající úplnost. Vyžaduje vlastní kvantování, které vypíše vektory jako Int8.

Datové typy EDM pro pole nonvectoru

Datový typ Popis
Edm.String Textová data.
Edm.Boolean Obsahuje hodnoty true nebo false.
Edm.Int32 32bitové celočíselné hodnoty.
Edm.Int64 64bitové celočíselné hodnoty.
Edm.Double Hodnoty IEEE 754 s plovoucí desetinou čárkou s dvojitou přesností.
Edm.DateTimeOffset Hodnoty data a času ve formátu OData V4: yyyy-MM-ddTHH:mm:ss.fffZ nebo yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm. DateTimeOffset Přesnost polí je omezená na milisekundy. Pokud nahrajete DateTimeOffset hodnoty s přesností na submillisekundy, vrácená hodnota se zaokrouhlí nahoru na milisekundy (například 2024-04-15T10:30:09.7552052Z se vrátí jako 2024-04-15T10:30:09.7550000Z). Když do indexu nahrajete DateTimeOffset hodnoty s informacemi o časovém pásmu, azure AI Search tyto hodnoty normalizuje na UTC. Například 2024-01-13T14:03:00-08:00 se uloží jako 2024-01-13T22:03:00Z. Pokud potřebujete uložit informace o časovém pásmu, přidejte do indexu další pole.
Edm.GeographyPoint Bod představující geografické umístění na zeměkouli. U těl požadavků a odpovědí se reprezentace hodnot tohoto typu řídí formátem typu GeoJSON Point. Pro adresy URL používá OData literálovou formu založenou na standardu WKT. Bodový literál se konstruuje jako geography'POINT(lon lat)'.
Edm.ComplexType Objekty, jejichž vlastnosti se mapují na dílčí pole, která mohou být jakéhokoli jiného podporovaného datového typu. Tento typ umožňuje indexování strukturovaných hierarchických dat, jako je JSON. Objekty v poli typu Edm.ComplexType mohou obsahovat vnořené objekty, ale úroveň vnoření je omezená. Omezení jsou popsaná v tématu Limity služby.
Collection(Edm.String) Seznam řetězců.
Collection(Edm.Boolean) Seznam logických hodnot.
Collection(Edm.Int32) Seznam 32bitových celočíselných hodnot.
Collection(Edm.Int64) Seznam 64bitových celočíselných hodnot.
Collection(Edm.Double) Seznam číselných hodnot s dvojitou přesností.
Collection(Edm.DateTimeOffset) Seznam hodnot data a času.
Collection(Edm.GeographyPoint) Seznam bodů představujících zeměpisné polohy.
Collection(Edm.ComplexType) Seznam objektů typu Edm.ComplexType. Maximální počet prvků ve všech kolekcích typu Edm.ComplexType v dokumentu je omezený. Podrobnosti najdete v tématu Limity služeb .

Všechny výše uvedené typy mají možnou hodnotu null, s výjimkou kolekcí primitivních a komplexních typů, Collection(Edm.String)například . Pole s možnou hodnotou null lze explicitně nastavit na hodnotu null. Při vynechání z dokumentu nahraného do indexu Azure AI Search se automaticky nastaví na hodnotu null. Pole kolekce se automaticky nastaví na prázdná ([] ve formátu JSON), pokud se z dokumentu vynechá. Do pole kolekce také není možné uložit hodnotu null.

Na rozdíl od složitých kolekcí neexistuje žádný limit počtu položek v kolekci primitivních typů, ale 16 MB horní limit velikosti datové části se vztahuje na všechny části dokumentů, včetně kolekcí.

Geoprostorový datový typ použitý ve výrazech filtru

Ve službě Azure AI Search se geoprostorové vyhledávání vyjadřuje jako filtr.

Edm.GeographyPolygon je mnohoúhelník představující geografickou oblast na zeměkouli. Tento typ sice nejde použít v polích dokumentu, ale dá se použít jako argument geo.intersects funkce. Literálová forma pro adresy URL v OData je založená na standardech WKT (dobře známý text) a jednoduchých přístupových standardů pro funkce OGC. Mnohoúhelníkový literál je vytvořen jako zeměpis'POLYGON((lon lat, lon lat, ...))'.

Důležité

Body v mnohoúhelníku musí být v pořadí proti směru hodinových ručiček. Body v mnohoúhelníku jsou interpretovány v pořadí proti směru hodinových ručiček vzhledem k vnitřní části mnohoúhelníku. Příklad: 4bodový uzavřený mnohoúhelník kolem Londýna by byl -0,3°W 51,6°N [vlevo nahoře] , -0,3°W 51,4°N [vlevo dole], 0.3°W 1°E 51.4°N [vpravo dole], 0.1°E 51.6°N [vpravo nahoře], -0.3°W 51.6°N [výchozí bod].

Viz také