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 se zadají podleEntity Data Model (EDM). 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 Mapování datových typů pro indexery ve službě Azure AI Search další informace o tom, jak indexery mapují datové typy specifické pro zdroj na datové typy EDM v indexu vyhledávání.

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žíváte text-embedding-ada-002, výstupní formát je Float32 nebo Collection(Edm.Single). V tomto scénáři nemůžete přiřadit datový typ Int8, protože přetypování z float na int primitiv je zakázáno. Můžete však přetypovat z Float32 na 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é vvytvoření nebo aktualizace indexu (2024-07-01) . Podporuje integraci s modely, které generují binární vkládání, jako je binární vložené modely 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 Index binárních dat nápovědu k určení definice pole a algoritmů vektorového vyhledávání binárních dat.
Collection(Edm.Single) Float32 32bitová plovoucí desetiná čárka. Obecně dostupné vvytvoření nebo aktualizace indexu (2024-07-01) . 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é za vás vytvářejí vektorová pole. Přetváří rovnováhu mezi přesností a efektivitou. Většina vložených modelů generuje vektory jako Float32.
Collection(Edm.Half) Float16 16bitová plovoucí desetinná čárka s nižší přesností a rozsahem. Obecně dostupné vvytvoření nebo aktualizace indexu (2024-07-01) . 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šímu dotazování a snížení využití paměti v porovnání s Float32, i když s mírně nižší přesností. Typ Float16 můžete přiřadit indexování Float32 vkládání 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 signedm. Obecně dostupné vvytvoření nebo aktualizace indexu (2024-07-01) . Nabízí snížené nároky na paměť v porovnání s Float32 a podporu metod kvantování s vyšší přesností a současně zachovává dostatečnou přesnost pro mnoho aplikací. Vhodné pro případy, kdy je důležitá efektivita paměti. Vyžaduje, abyste měli vlastní kvantování, které výstupuje vektory jako Int16.
Collection(Edm.SByte) Int8 8bitové celé číslo se signedm. Obecně dostupné vvytvoření nebo aktualizace indexu (2024-07-01) . Poskytuje významné zvýšení efektivity paměti a výpočtů v porovná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í kvantování, které výstupuje 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í DateTimeOffset je omezená na milisekundy. Pokud nahrajete hodnoty DateTimeOffset s přesností v milisekundách, zaokrouhlí se vrácená hodnota nahoru na milisekundy (například 2024-04-15T10:30:09.7552052Z se vrátí jako 2024-04-15T10:30:09.7550000Z). Když nahrajete DateTimeOffset hodnoty s informacemi o časovém pásmu do indexu, 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 poli typu Edm.ComplexType mohou obsahovat vnořené objekty, ale úroveň vnoření je omezená. Omezení jsou popsána v omezení služby.
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. Existuje limit maximálního počtu prvků ve všech kolekcích typu Edm.ComplexType v dokumentu. Podrobnosti najdete v tématu Omezení služby.

Všechny výše uvedené typy jsou nullable, s výjimkou kolekcí primitivních a komplexních typů, například Collection(Edm.String). 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 na prázdné ([] ve formátu JSON), když jsou vynechána z dokumentu. Není také možné uložit hodnotu null do pole kolekce.

Na rozdíl od složitých kolekcí neexistuje žádný horní limit konkrétně počtu položek v kolekci primitivních typů, ale 16 MB horního limitu velikosti datové části 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 světě. I když tento typ nelze použít v polích dokumentu, lze ho použít jako argument pro funkci geo.intersects. Literálová forma pro adresy URL v OData je založena na WKT (dobře známý text) a standardy přístupu k jednoduchým funkcím OGC. 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 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é