Pengindeks di Pencarian Azure AI

Note

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.

Pengindeks di Pencarian Azure AI adalah perayap yang mengekstrak data tekstual dari sumber data cloud dan mengisi indeks pencarian menggunakan pemetaan bidang-ke-bidang antara data sumber dan indeks pencarian. Pendekatan ini terkadang disebut sebagai 'model penarikan' karena layanan pencarian menarik data tanpa Anda harus menulis kode apa pun yang menambahkan data ke indeks.

Pengindeks juga mendorong eksekusi kumpulan keterampilan dan pengayaan kecerdasan buatan, di mana Anda dapat mengonfigurasi keterampilan untuk dapat mengintegrasikan pemrosesan tambahan konten menuju indeks. Beberapa contohnya adalah OCR pada file gambar, kemampuan pembagian teks untuk segmentasi data, dan pemanggilan model embedding guna menghasilkan vektor untuk pencarian.

Pengindeks menargetkan sumber data yang didukung. Konfigurasi pengindeks menentukan sumber data (asal) dan indeks pencarian (tujuan). Beberapa sumber, seperti Azure Blob Storage, memiliki lebih banyak properti konfigurasi pengindeks khusus untuk jenis konten tersebut.

Anda dapat menjalankan pengindeks sesuai permintaan atau pada jadwal refresh data berulang yang berjalan setiap lima menit. Pembaruan yang lebih sering menghalangi penggunaan pengindeks, mengharuskan Anda menerapkan 'model pendorongan' yang secara bersamaan mendorong data ke Pencarian Azure AI dan sumber data eksternal Anda untuk sinkronisasi data.

Layanan pencarian menjalankan satu pekerjaan pengindeks per unit pencarian. Jika Anda memerlukan pemrosesan bersamaan, pastikan Anda memiliki replika yang memadai. Indeks tidak berjalan di latar belakang, sehingga Anda mungkin mendeteksi lebih banyak pembatasan jumlah kueri daripada biasanya jika layanan dalam kondisi tertekan.

Note

Eksekusi pengindeks pada layanan pencarian Standard 3 High Density (S3 HD) dan layanan pencarian Tanpa Server mengikuti model berbeda yang mencakup kuota runtime harian tingkat layanan. Untuk informasi selengkapnya, lihat Eksekusi pengindeks pada Serverless dan S3 HD.

Skenario pengindeks dan kasus penggunaan

Anda dapat menggunakan pengindeks sebagai satu-satunya cara untuk penyerapan data, atau dalam kombinasi dengan teknik lain. Tabel berikut ini meringkas skenario utama.

Skenario Strategi
Sumber data tunggal Pola ini adalah yang paling sederhana: satu sumber data adalah satu-satunya penyedia konten untuk indeks pencarian. Kebanyakan sumber data yang didukung menyediakan beberapa metode deteksi perubahan sehingga proses pengindeksan berikutnya dapat mendeteksi perbedaan ketika konten ditambahkan atau diperbarui di sumber.
Beberapa sumber data Spesifikasi pengindeks hanya dapat memiliki satu sumber data, tetapi indeks pencarian itu sendiri dapat menerima konten dari beberapa sumber, di mana setiap pekerjaan pengindeks membawa konten baru dari penyedia data yang berbeda. Setiap sumber dapat berkontribusi berbagi dokumen lengkapnya, atau mengisi bidang yang dipilih di setiap dokumen. Untuk melihat lebih dekat skenario ini, lihat Tutorial: Indeks dari beberapa sumber data.
Beberapa pengindeks Beberapa sumber data biasanya dipasangkan dengan beberapa pengindeks jika Anda perlu memvariasikan parameter run time, jadwal, atau pemetaan bidang.

Skala lintas wilayah dari Pencarian Azure AI adalah variasi dari skenario ini. Anda mungkin memiliki salinan indeks pencarian yang sama di wilayah yang berbeda. Untuk menyinkronkan konten indeks pencarian, Anda dapat memiliki beberapa pengindeks yang mengambil data dari sumber yang sama, yang setiap pengindeks menargetkan indeks pencarian yang berbeda di setiap wilayah.

Pengindeksan paralel dari himpunan data yang sangat besar juga memerlukan strategi multi-pengindeks, di mana setiap pengindeks menargetkan subkumpulan data.
Transformasi konten Pengindeks mendorong pelaksanaan keahlian dan pengayaan kemampuan AI. Transformasi konten didefinisikan dalam skillset yang Anda pasang pada pengindeks. Anda dapat menggunakan keterampilan untuk menggabungkan potongan data dan vektorisasi.

Anda harus berencana membuat satu pengindeks untuk setiap kombinasi indeks target dan sumber data. Anda dapat memiliki beberapa pengindeks yang menulis ke dalam indeks yang sama, dan Anda dapat menggunakan kembali sumber data yang sama untuk beberapa pengindeks. Namun, pengindeks hanya dapat menggunakan satu sumber data pada satu waktu, dan hanya dapat menulis ke satu indeks. Seperti yang diilustrasikan grafik berikut, satu sumber data menyediakan input ke satu pengindeks, yang kemudian mengisi satu indeks:

Diagram alur kerja pengindeks.

Meskipun Anda hanya dapat menggunakan satu pengindeks pada satu waktu, sumber daya dapat digunakan dalam kombinasi yang berbeda. Pengambilan utama dari ilustrasi berikutnya adalah memperhatikan bahwa sumber data dapat dipasangkan dengan lebih dari satu pengindeks, dan beberapa pengindeks dapat menulis ke indeks yang sama.

Diagram beberapa kombinasi sumber data, pengindeks, dan indeks.

Sumber data yang didukung

Pengindeks merayapi data yang disimpan di Azure dan di luar Azure.

Azure Cosmos DB for Cassandra tidak didukung.

Pengindeks menerima kumpulan baris yang diratakan, seperti tabel atau tampilan, atau item dalam kontainer atau folder. Dalam kebanyakan kasus, ini membuat satu dokumen pencarian per baris, rekaman, atau item.

Koneksi pengindeks ke sumber data jarak jauh dapat dibuat menggunakan koneksi Internet standar (publik) atau koneksi privat terenkripsi saat Anda menggunakan tautan privat bersama. Anda juga dapat menyiapkan koneksi untuk mengautentikasi menggunakan identitas terkelola. Untuk informasi selengkapnya tentang koneksi aman, lihat Akses pengindeks ke konten yang dilindungi oleh fitur keamanan jaringan Azure dan Menyambungkan ke sumber data menggunakan identitas terkelola.

Tahapan pengindeksan

Pada proses awal, ketika indeks kosong, pengindeks akan membaca semua data yang disediakan dalam tabel atau kontainer. Pada proses berikutnya, pengindeks biasanya dapat mendeteksi dan mengambil hanya data yang telah berubah. Untuk data blob, deteksi perubahan otomatis. Untuk sumber data lain seperti Azure SQL atau Azure Cosmos DB, deteksi perubahan harus diaktifkan.

Untuk setiap dokumen yang diterimanya, pengindeks mengimplementasikan atau mengoordinasikan beberapa langkah, mulai dari pengambilan dokumen hingga "serah terima" mesin pencari akhir untuk pengindeksan. Secara opsional, pengindeksan juga mengendalikan eksekusi skillset dan outputnya, dengan asumsi skillset itu sudah ditentukan.

Diagram tahap pengindeks.

Tahap 1: Pemecahan dokumen

Pemecahan dokumen adalah proses membuka file dan mengekstrak konten. Konten berbasis teks dapat diekstraksi dari file pada layanan, baris dalam tabel, atau item dalam kontainer atau koleksi.

Anda juga dapat mengaktifkan ekstraksi gambar selama pemecahan dokumen dengan biaya tambahan. Ini dinonaktifkan secara default dan dapat diaktifkan melalui imageAction properti dalam konfigurasi parameter pengindeks. Tinjau beberapa skenario gambar untuk penanganan gambar pengindeks.

Bergantung pada sumber datanya, pengindeks akan mencoba operasi yang berbeda untuk mengekstrak konten yang berpotensi dapat diindeks:

  • Ketika dokumen adalah file dengan gambar yang disematkan, seperti PDF, pengindeks mengekstrak teks, gambar, dan metadata. Pengindeks dapat membuka file dari Azure Blob Storage, Azure Data Lake Storage Gen2, dan SharePoint.

  • Ketika dokumen berupa rekaman di Azure SQL, pengindeks akan mengekstrak konten non-biner dari setiap bidang di setiap rekaman.

  • Ketika dokumen adalah rekaman di Azure Cosmos DB, pengindeks akan mengekstrak konten non-biner dari bidang dan subbidang dari dokumen Azure Cosmos DB.

Perhatikan bahwa proses pemecahan dokumen juga dapat dipicu nanti selama tahap eksekusi skillset opsional, menggunakan set keterampilan, untuk transformasi data. Menambahkan skillset dengan keterampilan gambar memungkinkan pemecahan dokumen untuk mengekstrak gambar dan mengantrekannya untuk diproses.

Tahap 2: Pemetaan lapangan

Pengindeks mengekstrak teks dari bidang sumber dan mengirimkannya ke bidang tujuan di indeks atau penyimpanan pengetahuan. Ketika nama bidang dan jenis data bertepatan, jalurnya jelas. Namun, Anda mungkin ingin nama atau jenis yang berbeda di output, dalam kasus ini Anda perlu memberi tahu pengindeks cara memetakan bidang.

Untuk menentukan pemetaan bidang, masukkan bidang sumber dan tujuan dalam definisi pengindeks.

Pemetaan bidang terjadi setelah pemecahan dokumen, tetapi sebelum transformasi, ketika pengindeks membaca dari dokumen sumber. Saat Anda menentukan pemetaan bidang, nilai bidang sumber dikirim apa adanya ke bidang tujuan tanpa modifikasi.

Tahap 3: Penerapan Keterampilan

Eksekusi keterampilan adalah langkah opsional yang memanggil pemrosesan AI bawaan atau kustom. Skillset dapat menambahkan pengenalan karakter optik (OCR) atau bentuk analisis gambar lainnya jika kontennya biner. Skillsets juga dapat menambahkan pemrosesan bahasa alami. Misalnya, Anda dapat menambahkan terjemahan teks atau ekstraksi frasa kunci.

Apa pun transformasinya, eksekusi keterampilan adalah tempat terjadinya pengayaan. Jika pengindeks adalah jalur, Anda dapat memikirkan kumpulan keterampilan sebagai "jalur dalam jalur".

Tahap 4: Pemetaan bidang output

Jika Anda menyertakan keterampilan, Anda harus menentukan pemetaan dalam definisi pengindeks untuk bidang output. Output skillset dimanifestasikan secara internal sebagai struktur pohon yang disebut dokumen yang diperkaya. Pemetaan bidang keluaran mengizinkan Anda untuk memilih bagian mana dari pohon ini yang akan dipetakan ke dalam bidang dalam indeks Anda.

Terlepas dari kesamaan nama, pemetaan bidang keluaran dan pemetaan bidang membangun asosiasi dari sumber yang berbeda. Pemetaan bidang mengaitkan konten bidang sumber ke bidang tujuan dalam indeks pencarian. Pemetaan bidang keluaran menghubungkan konten dokumen internal yang telah ditingkatkan (hasil kapasitas) ke bidang tujuan pada indeks. Tidak seperti pemetaan bidang, yang dianggap opsional, pemetaan bidang output diperlukan untuk konten yang diubah yang harus berada dalam indeks.

Gambar berikutnya menunjukkan sampel sesi debug pengindeksan dalam representasi dari tahap-tahap pengindeksan: pemecahan dokumen, pemetaan bidang, pelaksanaan kumpulan keterampilan, dan pemetaan bidang output.

Cuplikan layar sesi debug sampel.

Alur kerja dasar

Pengindeks dapat menawarkan fitur yang unik untuk sumber data. Dalam hal ini, beberapa aspek konfigurasi pengindeks atau sumber data akan bervariasi menurut jenis pengindeks. Namun, semua pengindeks memiliki komposisi dan persyaratan dasar yang sama. Langkah-langkah yang umum untuk semua pengindeks tercakup di bawah ini.

Langkah 1: Membuat sumber data

Pengindeks memerlukan objek sumber data yang menyediakan string koneksi dan info masuk yang mungkin. Sumber data adalah objek independen. Beberapa pengindeks dapat menggunakan objek sumber data yang sama untuk memuat lebih dari satu indeks dalam satu waktu.

Anda dapat membuat sumber data menggunakan salah satu pendekatan berikut:

  • Menggunakan portal Azure, pada tab Sumber data halaman layanan pencarian Anda, pilih Tambahkan sumber data untuk menentukan definisi sumber data.
  • Menggunakan portal Microsoft Azure, wizard Impor data menghasilkan sumber data.
  • Menggunakan REST API, panggil Buat Sumber Data.
  • Menggunakan Azure SDK untuk .NET, panggil kelas SearchIndexerDataSourceConnection

Langkah 2: Membuat indeks

Pengindeks akan mengotomatiskan beberapa tugas yang terkait dengan penyerapan data, tetapi membuat indeks umumnya bukan salah satu tugas pengindeks. Sebagai prasyarat, Anda harus memiliki indeks yang telah ditentukan sebelumnya yang berisi bidang target yang sesuai untuk bidang sumber apa pun di sumber data eksternal Anda. Bidang perlu dicocokkan menurut nama dan jenis data. Jika tidak, Anda dapat menentukan pemetaan bidang untuk membangun asosiasi.

Untuk informasi selengkapnya, lihat Membuat indeks.

Langkah 3: Membuat dan menjalankan (atau menjadwalkan) pengindeks

Definisi pengindeks terdiri dari properti yang secara unik mengidentifikasi pengindeks, menentukan sumber data dan indeks mana yang akan digunakan, dan menyediakan opsi konfigurasi lain yang memengaruhi perilaku run time, termasuk apakah pengindeks berjalan sesuai permintaan atau sesuai jadwal.

Setiap kesalahan atau peringatan tentang akses data atau validasi set keterampilan akan terjadi selama proses pengindeksan. Hingga pelaksanaan pengindeks dimulai, objek dependen seperti sumber data, indeks, dan skillset tetap pasif pada layanan pencarian.

Untuk informasi selengkapnya, lihat Membuat pengindeks

Setelah pengindeks pertama berjalan, Anda dapat menjalankannya kembali sesuai permintaan atau menyiapkan jadwal.

Anda dapat memantau status pengindeks di portal Azure atau melalui API Status Pengindeks. Anda juga harus menjalankan kueri pada indeks untuk memverifikasi hasilnya adalah apa yang Anda harapkan.

Pengindeks tidak memiliki sumber daya pemrosesan khusus. Berdasarkan hal ini, status pengindeks dapat ditampilkan sebagai menganggur sebelum dijalankan (tergantung pada pekerjaan lain dalam antrean) dan waktu menjalankan mungkin tidak dapat diprediksi. Faktor lain juga mendefinisikan performa pengindeks, seperti ukuran dokumen, kompleksitas dokumen, analisis gambar, antara lain.

Langkah berikutnya

Sekarang setelah Anda diperkenalkan ke pengindeks, langkah selanjutnya adalah meninjau properti dan parameter pengindeks, penjadwalan, dan pemantauan pengindeks. Atau, Anda dapat kembali ke daftar sumber data yang didukung untuk informasi selengkapnya tentang sumber tertentu.