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 accessCredentialsapplicationId (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)"}
      }
}

Lihat juga