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
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 |
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 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 |
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 |
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 |
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é
- Vytvoření indexu
- přidání, aktualizace nebo odstranění dokumentu
- Přehled indexeru
- Vytváření indexerů
- Galerie zdrojů dat