Podporované datové typy (Azure AI Search)

Tento článek popisuje datové typy podporované službou Azure AI Search. Pole a hodnoty používané ve výrazech filtru se zapisují 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 v 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 vložení. 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 do int primitiv je zakázáno. Můžete ale přetypovat z do 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.Single) Float32 32bitová čárka s plovoucí desetinou čárkou. K dispozici od vytvoření nebo aktualizace indexu (2023-07-01-Preview). Tento datový typ je také podporován 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. 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á čárka s plovoucí desetinou čárkou s nižší přesností a rozsahem. K dispozici od vytvoření nebo aktualizace indexu (2024-03-01-preview). Užitečné pro scénáře, kde je důležitá efektivita paměti a výpočetních operací 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í s Float32, i když s mírně sníženou přesností. K vkládání indexů 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é se generují Float16 nativně.
Collection(Edm.Int16) Int16 16bitové celé číslo se signoumi sadou. K dispozici od vytvoření nebo aktualizace indexu (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 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í kvantování, které vypíše vektory jako Int16.
Collection(Edm.SByte) Int8 8bitové celé číslo se signoumi sadou. K dispozici od vytvoření nebo aktualizace indexu (2024-03-01-preview). Poskytuje významné zvýšení efektivity paměti a výpočetní efektivity v porovnání s Float32 nebo Float16. Pravděpodobně však vyžaduje doplňkové techniky (jako je kvantování a převzorkování), aby se snížení přesnosti vyrovnal a odpovídajícím způsobem zvolal. Vyžaduje, abyste měli 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 reprezentované 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 omezena 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. 2024-01-13T14:03:00-08:00 Například 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. Pro těla požadavků a odpovědí se reprezentace hodnot tohoto typu řídí formátem typu "Point" GeoJSON. Pro adresy URL používá OData literálový formulář založený 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 můžou obsahovat vnořené objekty, ale úroveň vnořování je omezená. Omezení jsou popsaná v tématu Limity služeb.
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é umístění
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í hodnotu null, s výjimkou kolekcí primitivních a složitý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 se automaticky nastaví na prázdné ([] ve formátu JSON), pokud jsou z dokumentu vynechána. Do pole kolekce také není možné uložit hodnotu null.

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

Geoprostorový datový typ používaný ve výrazech filtru

V Search Azure AI 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 funkce geo.intersects . 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 standardech funkcí OGC. Mnohoúhelníkový literál je vytvořen jako geography'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: 4-bodový 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.3°W 1°E 51,4°N [vpravo dole], 0,1°E 51,6°N [vpravo nahoře], -0,3°Š 51,6°N [výchozí bod].

Viz také