Membuat Pengindeks (Azure AI Search REST API)
Pengindeks mengotomatiskan pengindeksan dari sumber data Azure yang didukung seperti Azure Storage, Azure SQL Database, dan Azure Cosmos DB ke beberapa nama. Pengindeks menggunakan sumber data dan indeks yang telah ditentukan sebelumnya untuk membuat alur pengindeksan yang mengekstrak dan menserialisasikan data sumber, meneruskannya ke layanan pencarian untuk penyerapan data. Untuk pengayaan AI gambar dan teks yang tidak terstruktur, pengindeks juga dapat menerima set keterampilan yang menentukan pemrosesan AI.
Membuat pengindeks menambahkannya ke layanan pencarian Anda dan menjalankannya. Jika permintaan berhasil, indeks diisi dengan konten yang dapat dicari dari sumber data.
Anda dapat menggunakan POST atau PUT pada permintaan. Untuk salah satu, dokumen JSON dalam isi permintaan menyediakan definisi objek.
POST https://[service name].search.windows.net/indexers?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
Atau, Anda dapat menggunakan PUT dan menentukan nama pengindeks pada URI.
PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
HTTPS diperlukan untuk semua permintaan layanan. Jika pengindeks tidak ada, pengindeks akan dibuat. Jika sudah ada, itu diperbarui ke definisi baru tetapi Anda harus mengeluarkan permintaan Jalankan Pengindeks jika Anda ingin eksekusi pengindeks.
Konfigurasi pengindeks bervariasi berdasarkan jenis sumber data. Untuk panduan khusus platform data tentang membuat pengindeks, mulailah dengan gambaran umum Pengindeks, yang mencakup daftar lengkap artikel terkait.
Parameter URI
Parameter | Deskripsi |
---|---|
nama layanan | Wajib diisi. Atur ini ke nama unik yang ditentukan pengguna dari layanan pencarian Anda. |
nama pengindeks | Diperlukan pada URI jika menggunakan PUT. Nama harus huruf kecil, dimulai dengan huruf atau angka, tidak memiliki garis miring atau titik, dan kurang dari 128 karakter. nama harus dimulai dengan huruf atau angka, tetapi nama lainnya dapat menyertakan huruf, angka, dan tanda hubung apa pun, selama tanda hubung tidak berturut-turut. |
versi-api | Wajib diisi. Lihat versi API untuk daftar versi yang didukung. |
Judul Permintaan
Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional.
Bidang | Deskripsi |
---|---|
Jenis-Konten | Wajib diisi. Atur titik akhir ini ke application/json |
api-key | Opsional jika Anda menggunakan peran Azure dan token pembawa disediakan berdasarkan permintaan, jika tidak, kunci diperlukan. Membuat permintaan harus menyertakan header yang api-key diatur ke kunci admin Anda (dibandingkan dengan kunci kueri). Lihat Menyambungkan ke Pencarian Azure AI menggunakan autentikasi kunci untuk detailnya. |
Isi Permintaan
Sumber data, indeks, dan set keterampilan adalah bagian dari definisi pengindeks, tetapi masing-masing merupakan komponen independen yang dapat digunakan dalam kombinasi yang berbeda. Misalnya, Anda dapat menggunakan sumber data yang sama dengan beberapa pengindeks, atau indeks yang sama dengan beberapa pengindeks, atau beberapa pengindeks yang menulis ke satu indeks.
JSON berikut adalah representasi tingkat tinggi dari bagian utama definisi.
{
"name" : (optional on PUT; required on POST) "Name of the indexer",
"description" : (optional) "Anything you want, or nothing at all",
"dataSourceName" : (required) "Name of an existing data source",
"targetIndexName" : (required) "Name of an existing index",
"skillsetName" : (required for AI enrichment) "Name of an existing skillset",
"disabled" : (optional) Boolean value indicating whether the indexer is disabled. False by default,
"schedule" : (optional but runs once immediately if unspecified) { ... },
"parameters": { (optional)
"batchSize": null,
"maxFailedItems": 0,
"maxFailedItemsPerBatch": 0,
"base64EncodeKeys": null,
"configuration": { (optional, mostly specific to the data source)
"executionEnvironment": null
}
},
"fieldMappings" : (optional) { ... },
"outputFieldMappings" : (required for AI enrichment) { ... },
"encryptionKey":(optional) { }
}
Permintaan berisi properti berikut:
Properti | Deskripsi |
---|---|
nama | Wajib diisi. Nama harus huruf kecil, dimulai dengan huruf atau angka, tidak memiliki garis miring atau titik, dan kurang dari 128 karakter. Nama harus dimulai dengan huruf atau angka, tetapi nama lainnya dapat menyertakan huruf, angka, dan tanda hubung apa pun, selama tanda hubung tidak berturut-turut. |
dataSourceName | Wajib diisi. Nama sumber data yang sudah ada. Ini sering mencakup properti yang dapat digunakan pengindeks untuk mengeksploitasi karakteristik platform sumber. Dengan demikian, sumber data yang Anda berikan ke pengindeks menentukan ketersediaan properti dan parameter tertentu, pemfilteran jenis konten tersebut di blob Azure. atau batas waktu kueri untuk database Azure SQL. |
targetIndexName | Wajib diisi. Nama skema indeks yang ada. Ini mendefinisikan kumpulan bidang yang berisi atribusi yang dapat dicari, dapat difilter, diambil, dan atribusi lainnya yang menentukan bagaimana bidang digunakan. Selama pengindeksan, pengindeks menjelajahi sumber data, secara opsional memecahkan dokumen dan mengekstrak informasi, menserialisasikan hasilnya ke JSON, dan mengindeks payload berdasarkan skema yang ditentukan untuk indeks Anda. |
skillsetName | Diperlukan untuk pengayaan AI. Nama set keterampilan yang ada, satu per pengindeks. Seperti halnya sumber data dan indeks, set keterampilan adalah definisi independen yang Anda lampirkan ke pengindeks. Anda dapat menggunakan kembali set keterampilan dengan pengindeks lain, tetapi setiap pengindeks hanya dapat menggunakan satu set keterampilan pada satu waktu. |
jadwal | Opsional, tetapi berjalan sekali segera jika tidak ditentukan dan tidak dinonaktifkan. Jadwal berisi interval (wajib) dan startTime (opsional). Untuk informasi selengkapnya, lihat Menjadwalkan pengindeks.
interval menentukan seberapa sering pengindeks berjalan. Interval terkecil yang diizinkan adalah lima menit; yang terpanjang adalah satu hari. Ini harus diformat sebagai nilai “dayTimeDuration” XSD (subset terbatas dari nilai durasi ISO 8601). Pola untuk ini adalah: "P[nD][T[nH][nM]]". Contoh: PT15M untuk setiap 15 menit, PT2H untuk setiap 2 jam.
startTime adalah tanggalwaktu UTC ketika pengindeks harus mulai berjalan. |
dinonaktifkan | Pilihan. Nilai Boolean yang menunjukkan apakah pengindeks dinonaktifkan. Atur properti ini jika Anda ingin membuat definisi pengindeks tanpa segera menjalankannya. Salah secara default. |
parameter | Pilihan. Properti untuk memodifikasi perilaku runtime.
"batchSize" (bilangan bulat). Menentukan jumlah item yang dibaca dari sumber data dan diindeks sebagai satu batch untuk meningkatkan performa. Defaultnya adalah sumber khusus (1000 untuk Azure SQL Database dan Azure Cosmos DB, 10 untuk Azure Blob Storage).
"maxFailedItems" (bilangan bulat). Menentukan jumlah kesalahan yang akan ditoleransi sebelum pengindeks berjalan dianggap gagal. Defaultnya adalah 0. Atur ke -1 jika Anda tidak ingin kesalahan apa pun menghentikan proses pengindeksan. Gunakan Dapatkan Status Pengindeks untuk mengambil informasi tentang dokumen yang gagal.
"maxFailedItemsPerBatch" (bilangan bulat). Menentukan jumlah kesalahan yang akan ditoleransi di setiap batch sebelum pengindeks berjalan dianggap gagal. Defaultnya adalah 0. Atur ke -1 jika Anda tidak ingin kesalahan apa pun menghentikan proses pengindeksan.
"base64EncodeKey" (Boolean). Menentukan apakah akan mengodekan kunci dokumen yang berisi karakter yang tidak valid.
"configuration" . Properti yang bervariasi berdasarkan sumber data.
"executionEnvironment" (string). Mengambil alih lingkungan eksekusi yang dipilih oleh proses sistem internal. Secara eksplisit mengatur lingkungan eksekusi ke Private diperlukan jika pengindeks mengakses sumber daya eksternal melalui koneksi titik akhir privat. Pengaturan ini berada di bawah "configuration" . Untuk penyerapan data, pengaturan ini hanya valid untuk layanan yang disediakan sebagai Dasar atau Standar (S1, S2, S3). Untuk pemrosesan konten pengayaan AI, pengaturan ini hanya berlaku untuk S2 dan S3. Nilai yang valid tidak peka huruf besar/kecil dan terdiri dari [null atau unspecified], Standard (default), atau Private . |
fieldMappings | Pilihan. Secara eksplisit mengaitkan bidang sumber ke bidang tujuan dalam indeks pencarian. Digunakan saat bidang sumber dan tujuan memiliki nama atau jenis yang berbeda, atau saat Anda ingin menentukan fungsi.
fieldMappings Bagian mencakup sourceFieldName (diperlukan, bidang di sumber data yang mendasar), targetFieldName (diperlukan, bidang dalam indeks), dan opsional mappingFunction untuk pengodean output. Daftar fungsi dan contoh yang didukung dapat ditemukan di fungsi pemetaan bidang. Untuk informasi umum selengkapnya, lihat Pemetaan dan transformasi bidang. |
outputFieldMappings | Diperlukan untuk alur pengayaan. Memetakan output dari set keterampilan ke indeks atau proyeksi. Bagian outputFieldMappings mencakup sourceFieldName (diperlukan, simpul di pohon pengayaan), targetFieldName (diperlukan, bidang dalam indeks), dan opsional mappingFunction untuk output pengodean. Daftar fungsi dan contoh yang didukung dapat ditemukan di fungsi pemetaan bidang. Untuk informasi umum selengkapnya, lihat Cara memetakan bidang output dari set keterampilan. |
encryptionKey | Pilihan. Digunakan untuk mengenkripsi definisi pengindeks saat tidak aktif dengan kunci Anda sendiri, dikelola di Key Vault Azure Anda. Tersedia untuk layanan pencarian yang dapat ditagih yang dibuat pada atau setelah 2019-01-01.
Bagian encryptionKey berisi yang ditentukan keyVaultKeyName pengguna (diperlukan), yang dihasilkan keyVaultKeyVersion sistem (diperlukan), dan keyVaultUri menyediakan kunci (diperlukan, juga disebut sebagai nama DNS). Contoh URI mungkin "https://my-keyvault-name.vault.azure.net".
Secara opsional, Anda dapat menentukan accessCredentials apakah Anda tidak menggunakan identitas sistem terkelola. Properti termasuk accessCredentials applicationId (Microsoft Entra ID ID aplikasi yang diberikan izin akses ke Key Vault Azure yang Anda tentukan), dan applicationSecret (kunci autentikasi aplikasi terdaftar). Contoh di bagian berikutnya mengilustrasikan sintaks. |
Parameter konfigurasi blob
Beberapa parameter eksklusif untuk pengindeks tertentu, seperti pengindeksan blob Azure.
Parameter | Ketik dan nilai yang diizinkan | Penggunaan |
---|---|---|
"parsingMode" |
Untai (karakter)"text" "delimitedText" "json" "jsonArray" "jsonLines" |
Untuk blob Azure, atur ke text untuk meningkatkan performa pengindeksan pada file teks biasa dalam penyimpanan blob. Untuk blob CSV, atur ke delimitedText saat blob adalah file CSV biasa. Untuk blob JSON, atur ke json untuk mengekstrak konten terstruktur atau untuk jsonArray mengekstrak elemen individual array sebagai dokumen terpisah di Azure AI Search. Gunakan jsonLines untuk mengekstrak entitas JSON individual, dipisahkan oleh baris baru, sebagai dokumen terpisah di Azure AI Search. |
"excludedFileNameExtensions" |
String daftar yang dibatasi koma ditentukan pengguna |
Untuk blob Azure, abaikan jenis file apa pun dalam daftar. Misalnya, Anda dapat mengecualikan ".png, .png, .mp4" untuk melewati file tersebut selama pengindeksan. |
"indexedFileNameExtensions" |
String daftar yang dibatasi koma ditentukan pengguna |
Untuk blob Azure, memilih blob jika ekstensi file ada dalam daftar. Misalnya, Anda dapat memfokuskan pengindeksan pada file aplikasi tertentu ".docx, .pptx, .msg" untuk secara khusus menyertakan jenis file tersebut. |
"failOnUnsupportedContentType" |
Boolean TRUE false (default) |
Untuk blob Azure, atur ke false jika Anda ingin melanjutkan pengindeksan saat jenis konten yang tidak didukung ditemui, dan Anda tidak tahu semua jenis konten (ekstensi file) terlebih dahulu. |
"failOnUnprocessableDocument" |
Boolean TRUE false (default) |
Untuk blob Azure, atur ke false jika Anda ingin melanjutkan pengindeksan jika dokumen gagal diindeks. |
"indexStorageMetadataOnly ForOversizedDocuments" |
Boolean benar false (default) |
Untuk blob Azure, atur properti ini ke true untuk masih mengindeks metadata penyimpanan untuk konten blob yang terlalu besar untuk diproses. Blob yang terlalu besar diperlakukan sebagai kesalahan secara default. Untuk batas ukuran blob, lihat Batas Layanan. |
"delimitedTextHeaders" |
String daftar yang dibatasi koma ditentukan pengguna |
Untuk blob CSV, menentukan daftar header kolom yang dibatasi koma, berguna untuk memetakan bidang sumber ke bidang tujuan dalam indeks. |
"delimitedTextDelimiter" |
String karakter tunggal ditentukan pengguna |
Untuk blob CSV, menentukan pemisah akhir baris untuk file CSV di mana setiap baris memulai dokumen baru (misalnya, "|" ). |
"firstLineContainsHeaders" |
Boolean true (default) salah |
Untuk blob CSV, menunjukkan bahwa baris pertama (tidak kosong) dari setiap blob berisi header. |
"documentRoot" |
String jalur yang ditentukan pengguna |
Untuk array JSON, mengingat dokumen terstruktur atau semi terstruktur, Anda dapat menentukan jalur ke array menggunakan properti ini. |
"dataToExtract" |
String"storageMetadata" "allMetadata" "contentAndMetadata" (default) |
Untuk blob Azure: Atur ke "storageMetadata" untuk mengindeks hanya properti blob standar dan metadata yang ditentukan pengguna. Atur ke "allMetadata" untuk mengekstrak metadata yang disediakan oleh subsistem penyimpanan blob Azure dan metadata khusus jenis konten (misalnya, metadata unik hanya untuk file .png) diindeks. Atur ke "contentAndMetadata" untuk mengekstrak semua metadata dan konten tekstual dari setiap blob. Untuk analisis gambar dalam pengayaan AI, ketika "imageAction" diatur ke nilai selain "none" , "dataToExtract" pengaturan memberi tahu pengindeks data mana yang akan diekstrak dari konten gambar. Berlaku untuk konten gambar yang disematkan dalam .PDF atau aplikasi lain, atau file gambar seperti .jpg dan .png, di blob Azure. |
"imageAction" |
String"none" "generateNormalizedImages" "generateNormalizedImagePerPage" |
Untuk blob Azure, atur ke"none" untuk mengabaikan gambar atau file gambar yang disematkan dalam himpunan data. Ini adalah default. Untuk analisis gambar dalam pengayaan AI, atur ke "generateNormalizedImages" untuk mengekstrak teks dari gambar (misalnya, kata "berhenti" dari tanda Berhenti lalu lintas), dan sematkan sebagai bagian dari bidang konten. Selama analisis gambar, pengindeks membuat array gambar yang dinormalisasi sebagai bagian dari pemecahan dokumen, dan menyematkan informasi yang dihasilkan ke dalam bidang konten. Tindakan ini mengharuskan diatur "dataToExtract" ke "contentAndMetadata" . Gambar yang dinormalisasi mengacu pada pemrosesan tambahan yang menghasilkan keluaran gambar yang seragam, berukuran dan diputar untuk mempromosikan penyajian yang konsisten saat Anda menyertakan gambar dalam hasil pencarian visual (misalnya, foto dengan ukuran yang sama dalam kontrol grafik seperti yang terlihat dalam demo JFK). Informasi ini dihasilkan untuk setiap gambar saat Anda menggunakan opsi ini. Jika Anda mengatur ke "generateNormalizedImagePerPage" , file PDF akan diperlakukan berbeda karena sebagai ganti dari mengekstraksi gambar yang disematkan, setiap halaman akan dirender sebagai gambar dan dinormalisasi. Proses per halaman ini diperkirakan akan memakan waktu lebih lama dari "generateNormalizedImages" . Jenis file non-PDF akan diperlakukan sama seperti jika "generateNormalizedImages" diatur. Mengatur konfigurasi ke "imageAction" nilai apa pun selain "none" mengharuskan set keterampilan juga dilampirkan ke pengindeks tersebut dan dapat menjadi proses berkinerja rendah berdasarkan desain. |
"normalizedImageMaxWidth" "normalizedImageMaxHeight" |
Bilangan bulat antara 50-10000 | Lebar atau tinggi maksimum (dalam piksel) masing-masing untuk gambar yang dinormalisasi yang dihasilkan saat "imageAction" diatur. Defaultnya adalah 2000. Default 2000 piksel untuk lebar dan tinggi maksimum gambar yang dinormalisasi didasarkan pada ukuran maksimum yang didukung oleh keterampilan OCR dan keterampilan analisis gambar. Keterampilan OCR mendukung lebar dan tinggi maksimum 4200 untuk bahasa non-Inggris, dan 10000 untuk bahasa Inggris. Jika Anda meningkatkan batas maksimum, pemrosesan bisa gagal pada gambar yang lebih besar tergantung pada definisi set keterampilan Anda dan bahasa dokumen. |
"allowSkillsetToReadFileData" |
Boolean TRUE false (default) |
Mengatur parameter ke "allowSkillsetToReadFileData" true akan membuat jalur /document/file_data yang merupakan objek yang mewakili data file asli yang diunduh dari sumber data blob Anda. Ini memungkinkan Anda untuk meneruskan data file asli ke keterampilan kustom untuk diproses dalam alur pengayaan, atau ke keterampilan Ekstraksi Dokumen. Objek yang dihasilkan akan didefinisikan sebagai berikut: { "$type": "file", "data": "BASE64 encoded string of the file" } "allowSkillsetToReadFileData" Mengatur parameter ke true mengharuskan set keterampilan dilampirkan ke pengindeks tersebut "parsingMode" dan parameter diatur ke "default" , "text" atau "json" . |
"pdfTextRotationAlgorithm" |
String"none" (default)"detectAngles" |
"pdfTextRotationAlgorithm" Mengatur parameter ke "detectAngles" mungkin membantu menghasilkan ekstraksi teks yang lebih baik dan lebih mudah dibaca dari file PDF yang telah memutar teks di dalamnya. Perhatikan bahwa mungkin ada penalti performa kecil ketika parameter ini digunakan. Parameter ini hanya berlaku untuk file PDF, dan hanya untuk PDF dengan teks yang disematkan. Jika teks yang diputar muncul dalam gambar yang disematkan di PDF, parameter ini tidak berlaku."pdfTextRotationAlgorithm" Mengatur parameter ke "detectAngles" mengharuskan "parsingMode" parameter diatur ke "default" . |
Parameter konfigurasi Azure Cosmos DB
Parameter berikut khusus untuk pengindeks Cosmos DB.
Parameter | Ketik dan nilai yang diizinkan | Penggunaan |
---|---|---|
"assumeOrderByHighWaterMarkColumn" |
Boolean | Untuk pengindeks Cosmos DB dengan SQL API, atur parameter ini untuk memberikan petunjuk ke Cosmos DB bahwa kueri yang digunakan untuk mengembalikan dokumen untuk pengindeksan sebenarnya diurutkan oleh _ts kolom. Mengatur parameter ini memberi Anda hasil yang lebih baik untuk skenario pengindeksan inkremental. |
Azure SQL parameter konfigurasi
Parameter berikut khusus untuk Azure SQL Database.
Parameter | Ketik dan nilai yang diizinkan | Penggunaan |
---|---|---|
"queryTimeout" |
Untai (karakter) "hh:mm:ss" "00:05:00" |
Untuk Azure SQL Database, atur parameter ini untuk meningkatkan batas waktu di luar default 5 menit. |
"convertHighWaterMarkToRowVersion" |
Boolean | Atur parameter ini ke "true" untuk menggunakan jenis data rowversion untuk kolom tanda air tinggi. Ketika properti ini diatur ke true, pengindeks mengurangi satu dari nilai rowversion sebelum pengindeks berjalan. Ini dilakukan karena tampilan dengan gabungan satu-ke-banyak mungkin memiliki baris dengan nilai rowversion duplikat. Mengurangi satu memastikan kueri pengindeks tidak melewatkan baris ini. |
"disableOrderByHighWaterMarkColumn" |
Boolean | Atur parameter ini ke "true" jika Anda ingin menonaktifkan perilaku ORDER BY dalam kueri yang digunakan untuk deteksi perubahan. Jika Anda menggunakan kebijakan deteksi perubahan tanda air tinggi, pengindeks menggunakan klausa WHERE dan ORDER BY untuk melacak baris mana yang memerlukan pengindeksan (WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column] ). Parameter ini menonaktifkan perilaku ORDER BY. Pengindeksan akan selesai lebih cepat, tetapi trade-off adalah bahwa jika pengindeks terganggu karena alasan apa pun, seluruh pekerjaan pengindeks harus diulang secara penuh. |
Respons
201 Dibuat untuk permintaan yang berhasil.
Contoh
Contoh: Pengindeks dengan parameter jadwal dan generik
Membuat pengindeks yang menyalin data dari tabel yang dirujuk oleh ordersds
sumber data ke orders
indeks pada jadwal yang dimulai pada 1 Jan 2021 UTC dan berjalan per jam. Setiap pemanggilan pengindeks akan berhasil jika tidak lebih dari 5 item gagal diindeks di setiap batch, dan tidak lebih dari 10 item gagal diindeks secara total.
{
"name" : "myindexer",
"description" : "a cool indexer",
"dataSourceName" : "ordersds",
"targetIndexName" : "orders",
"schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },
"parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 }
}
Catatan
Jika pengindeks diatur ke jadwal tertentu tetapi berulang kali gagal pada dokumen yang sama berulang-ulang setiap kali dijalankan, pengindeks akan mulai berjalan pada interval yang lebih jarang (hingga maksimum setidaknya sekali dalam 24 jam) sampai berhasil membuat kemajuan lagi. Jika Anda yakin telah memperbaiki masalah apa pun yang menyebabkan pengindeks terjebak pada titik tertentu, Anda dapat melakukan reset, diikuti dengan eksekusi sesuai permintaan, pengindeks, dan jika itu berhasil membuat kemajuan, pengindeks akan kembali ke interval jadwal yang ditetapkan lagi.
Contoh: Pengindeks dengan parameter blob
Pengindeks dapat secara opsional mengambil parameter konfigurasi yang memodifikasi perilaku runtime. Parameter konfigurasi dibatasi koma pada permintaan pengindeks dan khusus untuk jenis sumber data. Parameter konfigurasi berikut memberikan instruksi yang digunakan untuk mengindeks blob.
{
"name" : "my-blob-indexer-for-cognitive-search",
... other indexer properties
"parameters" :
{
"maxFailedItems" : "15",
"batchSize" : "100",
"configuration" :
{
"parsingMode" : "json",
"indexedFileNameExtensions" : ".json, .jpg, .png",
"imageAction" : "generateNormalizedImages",
"dataToExtract" : "contentAndMetadata" ,
"executionEnvironment": "Standard"
}
}
}
Contoh: Pengindeks dengan pemetaan bidang
Petakan bidang _id
tabel sumber ke "id"
bidang dalam indeks pencarian. Pencarian Azure AI tidak mengizinkan nama bidang dimulai dengan garis bawah. Pemetaan bidang dapat mengatasi perbedaan nama. Nama bidang sumber dan target tidak peka huruf besar/kecil. Untuk informasi selengkapnya, lihat Pemetaan dan transformasi bidang.
"fieldMappings" : [
{ "sourceFieldName" : "_id", "targetFieldName" : "id" },
{ "sourceFieldName" : "_timestamp", "targetFieldName" : "timestamp" }
]
Contoh: Pengindeks dengan pengayaan AI
Menunjukkan pengayaan AI, yang ditunjukkan oleh referensi ke skillset
dan outputFieldMappings
.
Set keterampilan adalah sumber daya tingkat tinggi, didefinisikan secara terpisah. Contoh ini adalah singkatan dari definisi pengindeks dalam tutorial pengayaan AI.
{
"name":"demoindexer",
"dataSourceName" : "demodata",
"targetIndexName" : "demoindex",
"skillsetName" : "demoskillset",
"fieldMappings" : [
{
"sourceFieldName" : "content",
"targetFieldName" : "content"
}
],
"outputFieldMappings" :
[
{
"sourceFieldName" : "/document/organizations",
"targetFieldName" : "organizations"
},
],
"parameters":
{
"maxFailedItems":-1,
"configuration":
{
"dataToExtract": "contentAndMetadata",
"imageAction": "generateNormalizedImages"
}
}
}
Contoh: Pengindeks dengan pemetaan bidang skillset dan output
Dalam skenario pengayaan AI di mana set keterampilan terikat ke pengindeks, Anda harus menambahkan outputFieldMappings
untuk mengaitkan output apa pun dari langkah pengayaan yang menyediakan konten ke bidang yang dapat dicari dalam indeks.
sourceFieldName
adalah node di pohon pengayaan. Ini mungkin struktur majemuk yang dibangun selama pengayaan dari dua bidang terpisah dalam dokumen sumber.
targetFieldName
adalah bidang dalam indeks pencarian. Untuk informasi selengkapnya, lihat Cara memetakan bidang output dari set keterampilan.
"outputFieldMappings" : [
{
"sourceFieldName" : "/document/organizations",
"targetFieldName" : "organizations"
},
{
"sourceFieldName" : "/document/pages/*/keyPhrases/*",
"targetFieldName" : "keyphrases"
},
{
"sourceFieldName": "/document/languageCode",
"targetFieldName": "language",
"mappingFunction": null
}
]
Contoh: Kunci enkripsi
Kunci enkripsi adalah kunci yang dikelola pelanggan yang digunakan untuk enkripsi tambahan. Untuk informasi selengkapnya, lihat Enkripsi menggunakan kunci yang dikelola pelanggan di Azure Key Vault.
{
"name" : "myindexer",
"description" : "a cool indexer",
"dataSourceName" : "ordersds",
"targetIndexName" : "orders",
"schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },
"parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 },
"encryptionKey": (optional) {
"keyVaultKeyName": "Name of the Azure Key Vault key used for encryption",
"keyVaultKeyVersion": "Version of the Azure Key Vault key",
"keyVaultUri": "URI of Azure Key Vault, also referred to as DNS name, that provides the key. An example URI might be https://my-keyvault-name.vault.azure.net",
"accessCredentials": (optional, only if not using managed system identity) {
"applicationId": "Microsoft Entra ID application ID that was granted access permissions to your specified Azure Key Vault",
"applicationSecret": "Authentication key of the registered application)"}
}
}