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.
Catatan
Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.
Important
Fitur, kemampuan, atau properti yang ditandai (pratinjau) tidak tercakup dalam perjanjian tingkat layanan, tidak disarankan untuk beban kerja produksi, dan mungkin berubah atau dibatasi sebelum tersedia secara umum. Ketentuan pratinjau Pencarian Azure AI berlaku untuk semua fungsionalitas pratinjau, baik itu mandiri atau bagian dari fitur yang tersedia secara umum.
Fitur dukungan bidang multi-vektor (pratinjau) di Pencarian Azure AI memungkinkan Anda mengindeks beberapa vektor anak dalam satu bidang dokumen. Fitur ini berharga untuk kasus penggunaan seperti data multimodal atau dokumen bentuk panjang, di mana mewakili konten dengan satu vektor akan menyebabkan hilangnya detail penting.
Keterbatasan
- Peringkat semantik tidak didukung untuk gugus berlapis dalam bidang yang kompleks. Oleh karena itu, ranker semantik tidak mendukung vektor berlapis di bidang multi-vektor.
Memahami dukungan bidang multi-vektor
Secara tradisional, jenis vektor, misalnya Collection(Edm.Single) hanya dapat digunakan di bidang tingkat atas. Dengan diperkenalkannya dukungan bidang multi-vektor, Anda sekarang dapat menggunakan jenis vektor di bidang berlapis koleksi kompleks, yang secara efektif memungkinkan beberapa vektor dikaitkan dengan satu dokumen.
Satu dokumen dapat mencakup total hingga 100 vektor, di semua bidang koleksi yang kompleks. Bidang vektor hanya dapat disarangkan satu tingkat kedalaman.
Definisi indeks dengan bidang multi-vektor
Tidak diperlukan properti indeks baru untuk fitur ini. Berikut adalah contoh definisi indeks:
{
"name": "multivector-index",
"fields": [
{
"name": "id",
"type": "Edm.String",
"key": true,
"searchable": true
},
{
"name": "title",
"type": "Edm.String",
"searchable": true
},
{
"name": "description",
"type": "Edm.String",
"searchable": true
},
{
"name": "descriptionEmbedding",
"type": "Collection(Edm.Single)",
"dimensions": 3,
"searchable": true,
"retrievable": true,
"vectorSearchProfile": "hnsw"
},
{
"name": "scenes",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "embedding",
"type": "Collection(Edm.Single)",
"dimensions": 3,
"searchable": true,
"retrievable": true,
"vectorSearchProfile": "hnsw"
},
{
"name": "timestamp",
"type": "Edm.Int32",
"retrievable": true
},
{
"name": "description",
"type": "Edm.String",
"searchable": true,
"retrievable": true
},
{
"name": "framePath",
"type": "Edm.String",
"retrievable": true
}
]
}
]
}
Sampel Dokumen Pemasukan
Berikut adalah contoh dokumen yang menggambarkan bagaimana Anda dapat menggunakan bidang multi-vektor dalam praktiknya:
{
"id": "123",
"title": "Non-Existent Movie",
"description": "A fictional movie for demonstration purposes.",
"descriptionEmbedding": [1, 2, 3],
"releaseDate": "2025-08-01",
"scenes": [
{
"embedding": [4, 5, 6],
"timestamp": 120,
"description": "A character is introduced.",
"framePath": "nonexistentmovie\\scenes\\scene120.png"
},
{
"embedding": [7, 8, 9],
"timestamp": 2400,
"description": "The climax of the movie.",
"framePath": "nonexistentmovie\\scenes\\scene2400.png"
}
]
}
Dalam contoh ini, bidang adegan adalah koleksi kompleks yang berisi beberapa vektor (bidang penyematan), bersama dengan data terkait lainnya. Setiap vektor mewakili adegan dari film dan dapat digunakan untuk menemukan adegan serupa di film lain, di antara kasus penggunaan potensial lainnya.
Kueri dengan dukungan bidang multi-vektor
Fitur dukungan bidang multi-vektor memperkenalkan beberapa perubahan pada mekanisme kueri di Pencarian Azure AI. Namun, proses kueri utama sebagian besar tetap sama.
Sebelumnya, vectorQueries hanya dapat menargetkan bidang vektor yang didefinisikan sebagai bidang indeks tingkat atas. Dengan fitur ini, kami melonggarkan pembatasan ini dan memungkinkan vektorQueries untuk menargetkan bidang yang disarangkan dalam kumpulan jenis kompleks (hingga satu tingkat dalam).
Selain itu, parameter waktu kueri baru tersedia: perDocumentVectorLimit.
- Pengaturan
perDocumentVectorLimituntuk1memastikan bahwa paling banyak satu vektor per dokumen cocok, menjamin bahwa hasilnya berasal dari dokumen yang berbeda. - Pengaturan
perDocumentVectorLimitke0(tidak terbatas) memungkinkan beberapa vektor yang relevan dari dokumen yang sama untuk dicocokkan.
{
"vectorQueries": [
{
"kind": "text",
"text": "whales swimming",
"K": 50,
"fields": "scenes/embedding",
"perDocumentVectorLimit": 0
}
],
"select": "title, scenes/timestamp, scenes/framePath"
}
Peringkat berdasarkan berbagai vektor dalam satu bidang
Saat beberapa vektor dikaitkan dengan satu dokumen, Pencarian Azure AI menggunakan skor maksimum di antaranya untuk peringkat. Sistem ini menggunakan vektor yang paling relevan untuk mengevaluasi setiap dokumen, yang mencegah pengaruh dari vektor yang kurang relevan.
Mengambil elemen yang relevan dalam koleksi
Saat kumpulan jenis kompleks disertakan dalam $select parameter, hanya elemen yang cocok dengan kueri vektor yang dikembalikan. Ini berguna untuk mengambil metadata terkait seperti tanda waktu, deskripsi teks, atau jalur gambar.
Catatan
Untuk mengurangi ukuran payload, hindari menyertakan nilai vektor itu sendiri dalam parameter $select. Pertimbangkan untuk menghilangkan penyimpanan vektor sepenuhnya jika tidak perlu.
Debugging kueri multivektor (pratinjau)
Ketika dokumen menyertakan beberapa vektor yang disematkan, seperti penyematan teks dan gambar di subbidang yang berbeda, sistem menggunakan skor vektor tertinggi di semua elemen untuk memberi peringkat dokumen.
Untuk men-debug bagaimana setiap vektor berkontribusi, gunakan innerHits mode debug (tersedia di REST API pratinjau terbaru).
POST /indexes/my-index/docs/search?api-version=2026-08-01-preview
{
"vectorQueries": [
{
"kind": "vector",
"field": "keyframes.imageEmbedding",
"kNearestNeighborsCount": 5,
"vector": [ /* query vector */ ]
}
],
"debug": "innerHits"
}
Contoh bentuk respons
"@search.documentDebugInfo": {
"innerHits": {
"keyframes": [
{
"ordinal": 0,
"vectors": [
{
"imageEmbedding": {
"searchScore": 0.958,
"vectorSimilarity": 0.956
},
"textEmbedding": {
"searchScore": 0.958,
"vectorSimilarity": 0.956
}
}
]
},
{
"ordinal": 1,
"vectors": [
{
"imageEmbedding": null,
"textEmbedding": {
"searchScore": 0.872,
"vectorSimilarity": 0.869
}
}
]
}
]
}
}
Deskripsi bidang
| Bidang | Deskripsi |
|---|---|
ordinal |
Indeks berbasis nol dari elemen di dalam koleksi. |
vectors |
Satu entri per bidang vektor yang dapat dicari yang terkandung dalam elemen . |
searchScore |
Skor akhir untuk bidang tersebut, setelah penghitungan ulang dan peningkatan nilai. |
vectorSimilarity |
Kesamaan mentah yang dihasilkan oleh fungsi jarak. |
Catatan
innerHits saat ini hanya melaporkan bidang vektor.
Hubungan dengan debug=vektor
Berikut adalah beberapa fakta tentang properti ini:
Sakelar
debug=vectoryang ada tidak mengalami perubahan.Saat digunakan dengan bidang multi-vektor,
@search.documentDebugInfo.vector.subscoremenunjukkan skor maksimum yang digunakan untuk memberi peringkat dokumen induk, tetapi tidak detail per elemen.Gunakan
innerHitsuntuk mendapatkan wawasan tentang bagaimana masing-masing elemen berkontribusi pada skor.