Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan jenis data yang didukung oleh Azure AI Search. Bidang dan nilai yang digunakan dalam ekspresi filter diketik sesuai dengan Model Data Entitas (EDM). Menentukan jenis data EDM adalah persyaratan untuk definisi bidang.
Nota
Jika Anda menggunakan pengindeks, lihat Pemetaan tipe data untuk pengindeks di Azure AI Search untuk informasi selengkapnya tentang cara pengindeks memetakan tipe data khusus sumber ke tipe data EDM dalam indeks pencarian.
Jenis data EDM untuk bidang vektor
Jenis bidang vektor harus valid untuk output model penyematan Anda. Misalnya, jika Anda menggunakan text-embedding-ada-002, format outputnya adalah Float32 atau Collection(Edm.Single). Dalam skenario ini, Anda tidak dapat menetapkan Int8 jenis data karena transmisi dari float ke int primitif dilarang. Namun, Anda dapat mentransmisikan dari Float32 ke atau Float16(Collection(Edm.Half)).
Bidang vektor adalah array penyematan. Di EDM, array adalah koleksi.
| Jenis data | Jenis vektor | Deskripsi | Penggunaan yang disarankan |
|---|---|---|---|
Collection(Edm.Byte) |
Biner | Biner 1-bit tidak bertanda tangan. Umumnya tersedia di Buat atau Perbarui Indeks. | Mendukung integrasi dengan model yang memancarkan penyematan biner, seperti model penyematan biner v3 Cohere. atau logika kuantisasi kustom yang memancarkan output biner 1-bit yang tidak ditandatangani. Untuk bidang jenis Collection(Edm.Byte), lihat Indeks data biner untuk bantuan menentukan definisi bidang dan algoritma pencarian vektor untuk data biner. |
Collection(Edm.Single) |
Float32 |
Titik mengambang 32-bit. Umumnya tersedia di Buat atau Perbarui Indeks. | Jenis data default di alat Microsoft yang membuat bidang vektor atas nama Anda. Menyerang keseimbangan antara presisi dan efisiensi. Sebagian besar model penyematan memancarkan vektor sebagai Float32. |
Collection(Edm.Half) |
Float16 |
Titik mengambang 16-bit dengan presisi dan rentang yang lebih rendah. Umumnya tersedia di Buat atau Perbarui Indeks. | Berguna untuk skenario di mana memori dan efisiensi komputasi sangat penting, dan di mana mengorbankan beberapa presisi dapat diterima. Seringkali mengarah pada waktu kueri yang lebih cepat dan jejak memori yang berkurang dibandingkan dengan Float32, meskipun dengan akurasi yang sedikit berkurang. Anda dapat menetapkan Float16 jenis untuk menyematkan indeks Float32 sebagai Float16. Anda juga dapat menggunakannya Float16 untuk menyematkan model atau proses kuantisasi kustom yang dipancarkan Float16 secara asli. |
Collection(Edm.Int16) |
Int16 |
Bilangan bulat bertanda tangan 16-bit. Umumnya tersedia di Buat atau Perbarui Indeks. | Menawarkan jejak memori yang lebih rendah dibandingkan dengan Float32 dan dukungan untuk metode kuantisasi presisi lebih tinggi sambil tetap mempertahankan presisi yang cukup untuk banyak aplikasi. Cocok untuk kasus di mana efisiensi memori penting. Mengharuskan Anda memiliki kuantisasi kustom yang menghasilkan vektor sebagai Int16. |
Collection(Edm.SByte) |
Int8 |
Bilangan bulat bertanda tangan 8-bit. Umumnya tersedia di Buat atau Perbarui Indeks. | Memberikan peningkatan efisiensi memori dan komputasi yang signifikan dibandingkan dengan Float32 atau Float16. Namun, kemungkinan memerlukan teknik tambahan (seperti kuantisasi dan pengambilan sampel berlebihan) untuk mengimbangi pengurangan presisi dan pengenalan dengan tepat. Mengharuskan Anda memiliki kuantisasi kustom yang menghasilkan vektor sebagai Int8. |
Jenis data EDM untuk bidang nonvektor
| Jenis data | Deskripsi |
|---|---|
Edm.String |
Data teks. |
Edm.Boolean |
Berisi nilai true/false. |
Edm.Int32 |
Nilai bilangan bulat 32-bit. |
Edm.Int64 |
Nilai bilangan bulat 64-bit. |
Edm.Double |
Nilai titik mengambang IEEE 754 presisi ganda. |
Edm.DateTimeOffset |
Nilai tanggal dan waktu yang diwakili dalam format OData V4: yyyy-MM-ddTHH:mm:ss.fffZ atau yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm. Presisi DateTimeOffset bidang dibatasi hingga milidetik. Jika Anda mengupload DateTimeOffset nilai dengan presisi submilidetik, nilai yang ditampilkan dibulatkan ke atas ke milidetik (misalnya, 2024-04-15T10:30:09.7552052Z dikembalikan sebagai 2024-04-15T10:30:09.7550000Z). Saat Anda mengunggah DateTimeOffset nilai dengan informasi zona waktu ke indeks Anda, Azure AI Search menormalkan nilai-nilai ini ke UTC. Misalnya, 2024-01-13T14:03:00-08:00 disimpan sebagai 2024-01-13T22:03:00Z. Jika Anda perlu menyimpan informasi zona waktu, tambahkan bidang tambahan ke indeks Anda. |
Edm.GeographyPoint |
Titik yang mewakili lokasi geografis di dunia. Untuk badan permintaan dan respons, representasi nilai jenis ini mengikuti format jenis GeoJSON "Point". Untuk URL, OData menggunakan formulir harfiah berdasarkan standar WKT. Satu titik harfiah dibangun sebagai geografi'POINT(lon lat)'. |
Edm.ComplexType |
Objek yang propertinya memetakan ke subbidang yang dapat berupa jenis data lain yang didukung. Jenis ini memungkinkan pengindeksan data hierarkis terstruktur seperti JSON. Objek dalam bidang jenis dapat Edm.ComplexType berisi objek bersarang, tetapi tingkat bersarang terbatas. Batas dijelaskan dalam Batas layanan. |
Collection(Edm.String) |
Daftar string. |
Collection(Edm.Boolean) |
Daftar nilai boolean. |
Collection(Edm.Int32) |
Daftar nilai bilangan bulat 32-bit. |
Collection(Edm.Int64) |
Daftar nilai bilangan bulat 64-bit. |
Collection(Edm.Double) |
Daftar nilai numerik presisi ganda. |
Collection(Edm.DateTimeOffset) |
Daftar nilai waktu tanggal. |
Collection(Edm.GeographyPoint) |
Daftar titik yang mewakili lokasi geografis. |
Collection(Edm.ComplexType) |
Daftar objek jenis Edm.ComplexType. Ada batasan jumlah maksimum elemen di semua koleksi jenis Edm.ComplexType dalam dokumen. Lihat Batas layanan untuk detailnya. |
Semua jenis di atas dapat diubah oleh null, kecuali untuk kumpulan tipe primitif dan kompleks, misalnya Collection(Edm.String), . Bidang nullable dapat diatur secara eksplisit ke null. Mereka secara otomatis diatur ke null saat dihilangkan dari dokumen yang diunggah ke indeks Azure AI Search. Bidang koleksi secara otomatis diatur ke kosong ([] dalam JSON) saat dihilangkan dari dokumen. Selain itu, tidak dimungkinkan untuk menyimpan nilai null di bidang koleksi.
Tidak seperti koleksi kompleks, tidak ada batas atas secara khusus pada jumlah item dalam kumpulan jenis primitif, tetapi batas atas 16 MB pada ukuran muatan berlaku untuk semua bagian dokumen, termasuk koleksi.
Jenis data geospasial yang digunakan dalam ekspresi filter
Di Azure AI Search, pencarian geospasial dinyatakan sebagai filter.
Edm.GeografiPoligon adalah poligon yang mewakili wilayah geografis di dunia. Meskipun jenis ini tidak dapat digunakan di bidang dokumen, jenis ini dapat digunakan sebagai argumen untuk geo.intersects fungsi. Bentuk literal untuk URL di OData didasarkan pada WKT (Teks terkenal) dan standar akses fitur sederhana OGC. Literal poligon dibangun sebagai geography'POLYGON((lon lat, lon lat, ...))'.
Penting
Titik dalam poligon harus berlawanan arah jarum jam. Poin dalam poligon ditafsirkan dalam urutan berlawanan arah jarang, relatif terhadap bagian dalam poligon. Misalnya, poligon tertutup 4 titik di sekitar London adalah -0,3°W 51,6°N [kiri atas] , -0,3°W 51,4°N [kiri bawah], 0,1°E 51,4°N [kanan bawah], 0,1°E 51,6°N [kanan atas], -0,3°W 51,6°N [titik awal].