Sdílet prostřednictvím


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 jsou zadány podle modelu EDM (Entity Data Model). Zadání datového typu EDM je požadavek na definici pole.

Poznámka

Pokud používáte indexery, přečtěte si téma Mapa datových typů pro indexery v Azure AI Hledání dalších informací 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 vašeho 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 Int8 nemůžete přiřadit datový typ, protože přetypování z float na int primitiva je zakázáno. Můžete však přetypovat z Float32 do Float16 nebo (Collection(Edm.Half)).

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

Datový typ Typ vektoru Popis Doporučené použití
Collection(Edm.Byte) Binární 1bitový binární soubor bez znaménka Obecně dostupné v části Vytvořit nebo aktualizovat index. Podporuje integraci s modely, které generují binární vkládání, jako jsou binární modely vkládání Cohere v3. nebo vlastní kvantizační logika, která vysílá 1bitový binární výstup bez znaménka. Informace o polích typu Collection(Edm.Byte)najdete v části Indexování binárních dat , kde najdete nápovědu k určení definice pole a vektorových vyhledávacích algoritmů pro binární data.
Collection(Edm.Single) Float32 32bitová plovoucí desetiná čárka. Obecně dostupné v části Vytvořit nebo aktualizovat index. Výchozí datový typ v nástrojích Microsoftu, které za vás vytvářejí vektorová pole. Přetváří rovnováhu mezi přesností a efektivitou. Většina vkládacích modelů generuje vektory jako Float32.
Collection(Edm.Half) Float16 16bitová plovoucí desetinná čárka s nižší přesností a rozsahem. Obecně dostupné v části Vytvořit nebo aktualizovat index. Užitečné pro scénáře, kdy je kritická efektivita paměti a výpočetní efektivity a kde je přijatelné obětování určité přesnosti. Často vede k rychlejším časům dotazů a menší náročnosti paměti ve srovnání s Float32programem , i když s mírně sníženou přesností. Typ pro vkládání indexů Float16Float32 můžete přiřadit jako Float16. Můžete je také použít Float16 pro vkládání modelů nebo vlastních kvantizačních procesů, které generují Float16 nativně.
Collection(Edm.Int16) Int16 16bitové celé číslo se signedm. Obecně dostupné v části Vytvořit nebo aktualizovat index. Nabízí sníženou paměťovou stopu ve srovnání s Float32 metodami kvantizace s vyšší přesností a podporu při zachování dostatečné přesnosti pro mnoho aplikací. Vhodné pro případy, kdy je důležitá efektivita paměti. Vyžaduje, abyste měli vlastní kvantizaci, která vypisuje vektory jako Int16.
Collection(Edm.SByte) Int8 8bitové celé číslo se signedm. Obecně dostupné v části Vytvořit nebo aktualizovat index. Poskytuje významné zvýšení 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í) k tomu, aby se snížila přesnost a úplnost odpovídajícím způsobem. Vyžaduje, abyste měli vlastní kvantizaci, která vypisuje vektory jako Int8.

Datové typy EDM pro nevectorová pole

Datový typ Popis
Edm.String Textová data
Edm.Boolean Obsahuje hodnoty true/false.
Edm.Int32 32bitové celočíselné hodnoty.
Edm.Int64 64bitové celočíselné hodnoty.
Edm.Double Hodnoty s plovoucí desetinnou čárkou IEEE 754 s dvojitou přesností
Edm.DateTimeOffset Hodnoty data a času reprezentované ve formátu OData V4: yyyy-MM-ddTHH:mm:ss.fffZ nebo yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm. Přesnost polí je omezena DateTimeOffset na milisekundy. Pokud nahrajete DateTimeOffset hodnoty s přesností na submilisekundy, vrácená hodnota se zaokrouhlí nahoru na milisekundy 2024-04-15T10:30:09.7552052Z (například 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 do standardu UTC. Například, 2024-01-13T14:03:00-08:00 je uložen 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í zeměpisnou polohu na glóbusu U subjektů 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. Literál bodu je vytvořen jako geography'POINT(lon lat)'.
Edm.ComplexType Objekty, jejichž vlastnosti se mapují na podpole, které mohou být libovolného jiného podporovaného datového typu. Tento typ umožňuje indexování strukturovaných hierarchických dat, jako je JSON. Objekty v textovém Edm.ComplexType poli mohou obsahovat vnořené objekty, ale úroveň vnoření je omezená. Limity jsou popsány v části Limity služeb.
Collection(Edm.String) Seznam řetězců
Collection(Edm.Boolean) Seznam logických hodnot.
Collection(Edm.Int32) Seznam 32bitových celočíselné hodnoty.
Collection(Edm.Int64) Seznam 64bitových celočísný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é lokality
Collection(Edm.ComplexType) Seznam objektů typu Edm.ComplexType. Maximální počet elementů ve všech kolekcích textu Edm.ComplexType v dokumentu je omezen. Podrobnosti najdete v části Limity služeb .

Všechny výše uvedené typy mohou mít 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í dokumentu nahraného do indexu Azure AI Search se automaticky nastaví na hodnotu null. Pole kolekce jsou automaticky nastavena jako prázdná ([] ve formátu JSON), pokud jsou v dokumentu vynechána. Není také možné uložit hodnotu null do pole kolekce.

Na rozdíl od složitých kolekcí neexistuje žádný horní limit pro počet položek v kolekci primitivních typů, ale horní limit velikosti datové části 16 MB platí pro 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. I když tento typ nelze použít v polích dokumentu, lze jej použít jako argument geo.intersects funkce. Doslovná forma pro URL v OData je založena na standardech WKT (Well-known text) a OGC pro přístup k jednoduchým funkcím. Literál mnohoúhelníku je vytvořen jako geografie 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 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.0 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é