Obsługiwane typy danych (Azure AI Search)
W tym artykule opisano typy danych obsługiwane przez usługę Azure AI Search. Pola i wartości używane w wyrażeniach filtru są wpisywane zgodnie z Entity Data Model (EDM). Określenie typu danych EDM jest wymaganiem dla definicji pola.
Nuta
Jeśli używasz indeksatorów , zobacz Mapa typów danych dla indeksatorów w usłudze Azure AI Search, aby uzyskać więcej informacji na temat sposobu mapowania typów danych specyficznych dla źródła indeksatorów na typy danych EDM w indeksie wyszukiwania.
Typy danych EDM dla pól wektorów
Typ pola wektora Float32
lub Collection(Edm.Single)
. W tym scenariuszu nie można przypisać typu danych Int8
, ponieważ rzutowanie z float
do int
pierwotnych jest zabronione. Można jednak rzutować z Float32
na Float16
lub (Collection(Edm.Half))
.
Pola wektorowe to tablica osadzania. W programie EDM tablica jest kolekcją.
Typ danych | Typ wektora | Opis | Zalecane użycie |
---|---|---|---|
Collection(Edm.Byte) |
Dwójkowy | 1-bitowy niepodpisany plik binarny. Ogólnie dostępny w tworzenie lub aktualizowanie indeksu (2024-07-01). | Obsługuje integrację z modelami, które emitują osadzanie binarne, takie jak modele osadzania binarnego Cohere w wersji 3. lub niestandardową logikę kwantyzacji, która emituje 1-bitowe niepodpisane dane wyjściowe binarne. Aby uzyskać pomoc dotyczącą pól typu Collection(Edm.Byte) , zobacz Indeksowanie danych binarnych, aby uzyskać pomoc dotyczącą określania definicji pola i algorytmów wyszukiwania wektorów dla danych binarnych. |
Collection(Edm.Single) |
Float32 |
32-bitowy zmiennoprzecinkowa. Ogólnie dostępny w tworzenie lub aktualizowanie indeksu (2024-07-01). Ten typ danych jest również obsługiwany w nowszych wersjach zapoznawczych i w stabilnej wersji 2023-11-01 . |
Domyślny typ danych w narzędziach firmy Microsoft, które tworzą pola wektorów w Twoim imieniu. Wyrównyuje równowagę między precyzją a wydajnością. Większość modeli osadzania emituje wektory jako Float32 . |
Collection(Edm.Half) |
Float16 |
16-bitowy zmiennoprzecinkowa o mniejszej precyzji i zakresie. Ogólnie dostępny w tworzenie lub aktualizowanie indeksu (2024-07-01). | Przydatne w przypadku scenariuszy, w których wydajność pamięci i obliczeń ma kluczowe znaczenie i gdzie poświęcanie pewnej precyzji jest akceptowalne. Często prowadzi do szybszego czasu wykonywania zapytań i mniejszego zużycia pamięci w porównaniu z Float32 , chociaż z nieznacznie zmniejszoną dokładnością. Typ Float16 można przypisać do osadzania Float32 indeksu jako Float16 . Można również użyć Float16 do osadzania modeli lub niestandardowych procesów kwantyzacji, które emitują Float16 natywnie. |
Collection(Edm.Int16) |
Int16 |
16-bitowa liczba całkowita ze znakiem. Ogólnie dostępny w tworzenie lub aktualizowanie indeksu (2024-07-01). | Oferuje mniejsze zużycie pamięci w porównaniu z Float32 i obsługą metod kwantyzacji o wyższej precyzji, zachowując jednocześnie wystarczającą precyzję dla wielu aplikacji. Odpowiednie w przypadkach, gdy wydajność pamięci jest ważna. Wymaga niestandardowej kwantyzacji, która generuje wektory jako Int16 . |
Collection(Edm.SByte) |
Int8 |
8-bitowa liczba całkowita ze znakiem. Ogólnie dostępny w tworzenie lub aktualizowanie indeksu (2024-07-01). | Zapewnia znaczne wzrosty wydajności pamięci i obliczeń w porównaniu z Float32 lub Float16 . Jednak prawdopodobnie wymaga to dodatkowych technik (takich jak kwantyzacja i nadmierna próbkowanie), aby odpowiednio zrównoważyć zmniejszenie dokładności i kompletność. Wymaga niestandardowej kwantyzacji, która generuje wektory jako Int8 . |
Typy danych EDM dla pól niewektorów
Typ danych | Opis |
---|---|
Edm.String |
Dane tekstowe. |
Edm.Boolean |
Zawiera wartości true/false. |
Edm.Int32 |
32-bitowe wartości całkowite. |
Edm.Int64 |
64-bitowe wartości całkowite. |
Edm.Double |
Podwójna precyzja wartości zmiennoprzecinkowych IEEE 754. |
Edm.DateTimeOffset |
Wartości daty i godziny reprezentowane w formacie OData V4: yyyy-MM-ddTHH:mm:ss.fffZ lub yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm . Precyzja pól DateTimeOffset jest ograniczona do milisekund. Jeśli przekażesz wartości DateTimeOffset z dokładnością podmilisekund, zwracana wartość zostanie zaokrąglona do milisekund (na przykład 2024-04-15T10:30:09.7552052Z jest zwracana jako 2024-04-15T10:30:09.7550000Z ). Podczas przekazywania wartości DateTimeOffset z informacjami o strefie czasowej do indeksu usługa Azure AI Search normalizuje te wartości do czasu UTC. Na przykład 2024-01-13T14:03:00-08:00 jest przechowywany jako 2024-01-13T22:03:00Z . Jeśli chcesz przechowywać informacje o strefie czasowej, dodaj dodatkowe pole do indeksu. |
Edm.GeographyPoint |
Punkt reprezentujący lokalizację geograficzną na świecie. W przypadku treści żądań i odpowiedzi reprezentacja wartości tego typu jest zgodna z formatem typu GeoJSON "Point". W przypadku adresów URL usługa OData używa formularza literału opartego na standardzie WKT. Literał punktu jest konstruowany jako geography'POINT(lat lon)'. |
Edm.ComplexType |
Obiekty, których właściwości są mapowania na pola podrzędne, które mogą być dowolnego innego obsługiwanego typu danych. Ten typ umożliwia indeksowanie ustrukturyzowanych danych hierarchicznych, takich jak JSON. Obiekty w polu typu Edm.ComplexType mogą zawierać zagnieżdżone obiekty, ale poziom zagnieżdżania jest ograniczony. Limity zostały opisane w Service limity. |
Collection(Edm.String) |
Lista ciągów. |
Collection(Edm.Boolean) |
Lista wartości logicznych. |
Collection(Edm.Int32) |
Lista 32-bitowych wartości całkowitych. |
Collection(Edm.Int64) |
Lista 64-bitowych wartości całkowitych. |
Collection(Edm.Double) |
Lista wartości liczbowych o podwójnej precyzji. |
Collection(Edm.DateTimeOffset) |
Lista wartości daty i godziny. |
Collection(Edm.GeographyPoint) |
Lista punktów reprezentujących lokalizacje geograficzne. |
Collection(Edm.ComplexType) |
Lista obiektów typu Edm.ComplexType . Istnieje limit maksymalnej liczby elementów we wszystkich kolekcjach typu Edm.ComplexType w dokumencie. Aby uzyskać szczegółowe informacje, zobacz Limity usługi. |
Wszystkie powyższe typy są dopuszczane do wartości null, z wyjątkiem kolekcji typów pierwotnych i złożonych, na przykład Collection(Edm.String)
. Pola dopuszczane do wartości null można jawnie ustawić na wartość null. Są one automatycznie ustawiane na wartość null po pominięciu z dokumentu przekazanego do indeksu usługi Azure AI Search. Pola kolekcji są automatycznie ustawiane na puste ([]
w formacie JSON), gdy zostaną pominięte w dokumencie. Ponadto nie można przechowywać wartości null w polu kolekcji.
W przeciwieństwie do złożonych kolekcji nie ma górnego limitu liczby elementów w kolekcji typów pierwotnych, ale górny limit rozmiaru ładunku 16 MB dotyczy wszystkich części dokumentów, w tym kolekcji.
Typ danych geoprzestrzennych używany w wyrażeniach filtru
W usłudze Azure AI Search wyszukiwanie geoprzestrzenne jest wyrażane jako filtr.
Edm.GeographyPolygon to wielokąt reprezentujący region geograficzny na świecie. Chociaż tego typu nie można używać w polach dokumentu, można go użyć jako argumentu funkcji geo.intersects
. Formularz literału dla adresów URL w usłudze OData jest oparty na WKT (dobrze znanym tekście) i prostych standardach dostępu do funkcji OGC. Literał wielokątny jest skonstruowany jako geography'POLYGON((lat lon, lat lon, ...)'.
Ważny
Punkty w wielokątnym muszą być w kolejności odwrotnej. Punkty w wielokącie są interpretowane w kolejności przeciwkrętowej względem wewnątrz wielokąta. Na przykład: zamknięta wielokąt 4-punktowa wokół Londynu wynosiłaby -0,3°W 51,6°N [w lewym górnym rogu], -0,3°W 51,4°N [w lewo od dołu], 0.0. 1°E 51,4°N [prawy dolny], 0,1°E 51,6°N [prawy górny dół], -0,3°W 51,6°N [punkt początkowy].
Zobacz też
- Tworzenie indeksu
- dodawanie, aktualizowanie lub usuwanie dokumentu
- Omówienie indeksatora
- Tworzenie indeksatorów
- galerii źródeł danych