Pengindeks di Azure AI Search

Pengindeks di Azure AI Search 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 skillset dan pengayaan AI, di mana Anda dapat mengonfigurasi keterampilan untuk mengintegrasikan pemrosesan konten tambahan dalam rute ke indeks. Beberapa contohnya adalah OCR melalui file gambar, keterampilan pemisahan teks untuk potongan data, terjemahan teks untuk beberapa bahasa.

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 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 memerlukan 'model pendorongan' yang secara bersamaan memperbarui data di Azure AI Search dan sumber data eksternal Anda.

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

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. Sebagian besar sumber data yang didukung menyediakan beberapa bentuk deteksi perubahan sehingga pengindeks berikutnya menjalankan mengambil perbedaan saat konten ditambahkan atau diperbarui di sumbernya.
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 pengindeks menjalankan 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 Azure AI Search adalah skenario lain. Anda mungkin memiliki salinan indeks pencarian yang sama di wilayah yang berbeda. Untuk menyinkronkan konten indeks pencarian, Anda dapat memiliki beberapa pengindeks yang menarik dari sumber data yang sama, di mana setiap pengindeks menargetkan indeks pencarian yang berbeda di setiap wilayah.

Pengindeksan paralel himpunan data yang sangat besar juga memerlukan strategi multi-pengindeks, di mana setiap pengindeks menargetkan subset data.
Transformasi konten Pengindeks mendorong eksekusi skillset dan pengayaan AI. Transformasi konten didefinisikan dalam set keterampilan yang Anda lampirkan ke 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 of indexer workflow.

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 of multiple combinations of data sources, indexers, and indexes.

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 Koneksi 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, pengindeks juga mendorong eksekusi skillset dan output keterampilan, dengan asumsi skillset itu ditentukan.

Diagram of indexer stages.

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. Jika Anda menambahkan keterampilan keterampilan dan keterampilan gambar, pemecahan dokumen juga dapat mengekstrak gambar dan mengantrekannya untuk pemrosesan gambar.

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.

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: Eksekusi 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 alur, Anda dapat memikirkan keterampilan sebagai "alur dalam alur".

Tahap 4: Pemetaan bidang output

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

Terlepas dari kesamaan nama, pemetaan bidang output dan pemetaan bidang membangun asosiasi dari sumber yang berbeda. Pemetaan bidang mengaitkan konten bidang sumber ke bidang tujuan dalam indeks pencarian. Pemetaan bidang output mengaitkan konten dokumen internal yang diperkaya (output keterampilan) ke bidang tujuan dalam 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 pengindeks representasi tahap pengindeks: pemecahan dokumen, pemetaan lapangan, eksekusi keterampilan, dan pemetaan bidang output.

Screenshot of a sample debug session.

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 Azure, wizard Impor data menghasilkan sumber data.
  • Menggunakan REST API, panggil Buat Sumber Data.
  • Menggunakan Azure SDK untuk .NET, panggil kelas SearchIndexerDataSource Koneksi ion

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 eksekusi pengindeks. Hingga eksekusi pengindeks dimulai, objek dependen seperti sumber data, indeks, dan set keterampilan 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 atau melalui Dapatkan 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 diam sebelum berjalan (tergantung pada pekerjaan lain dalam antrean) dan durasi 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.