Mencari melalui konten Azure Blob Storage

Mencari di berbagai jenis konten yang disimpan di Azure Blob Storage dapat menjadi masalah yang sulit untuk diselesaikan, tetapi Azure AI Search menyediakan integrasi mendalam di lapisan konten, mengekstrak dan menyimpulkan informasi tekstual, yang kemudian dapat dikueri dalam indeks pencarian.

Dalam artikel ini, tinjau alur kerja dasar untuk mengekstrak konten dan metadata dari blob dan mengirimkannya ke indeks pencarian di Azure AI Search. Indeks yang dihasilkan dapat dikueri menggunakan pencarian teks lengkap. Secara opsional, Anda dapat mengirim konten blob yang diproses ke penyimpanan pengetahuan untuk skenario non-pencarian.

Catatan

Sudah terbiasa dengan alur kerja dan komposisi? Mengonfigurasi pengindeks blob adalah langkah Anda berikutnya.

Apa artinya menambahkan pencarian teks lengkap ke data blob

Azure AI Search adalah layanan pencarian mandiri yang mendukung beban kerja pengindeksan dan kueri melalui indeks yang ditentukan pengguna yang berisi konten privat yang dapat dicari yang dihosting di cloud. Menemukan bersama konten yang dapat dicari dengan mesin kueri di cloud diperlukan untuk performa, mengembalikan hasil dengan kecepatan yang diharapkan pengguna dari kueri pencarian.

Azure AI Search terintegrasi dengan Azure Blob Storage di lapisan pengindeksan, mengimpor konten blob Anda sebagai dokumen pencarian yang diindeks ke dalam indeks terbalik dan struktur kueri lainnya yang mendukung kueri teks bentuk bebas dan ekspresi filter. Karena konten blob Anda diindeks ke dalam indeks pencarian, Anda bisa menggunakan berbagai fitur kueri di Azure AI Search untuk menemukan informasi dalam konten blob Anda.

Input merupakan blob Anda, dalam satu wadah, dalam Azure Blob Storage. Blob dapat berupa hampir semua jenis data teks. Jika blob berisi gambar, Anda dapat menambahkan pengayaan AI untuk membuat dan mengekstrak teks dan fitur dari gambar.

Output selalu merupakan indeks Azure AI Search, digunakan untuk pencarian teks cepat, pengambilan, dan eksplorasi dalam aplikasi klien. Di antara keduanya terdapat arsitektur alur pengindeksan itu sendiri. Alur didasarkan pada fitur pengindeks, yang akan dibahas lebih lanjut di artikel ini.

Setelah indeks dibuat dan diisi, indeks tersebut ada secara independen dari kontainer blob Anda, tetapi Anda dapat menjalankan ulang operasi pengindeksan untuk me-refresh indeks Anda berdasarkan dokumen yang diubah. Informasi tanda waktu pada blob individu digunakan untuk mendeteksi perubahan. Anda dapat memilih eksekusi terjadwal atau pengindeksan sesuai permintaan sebagai mekanisme refresh.

Sumber daya yang digunakan dalam solusi pencarian blob

Anda memerlukan Azure AI Search, Azure Blob Storage, dan klien. Azure AI Search biasanya merupakan salah satu dari beberapa komponen dalam solusi, di mana kode aplikasi Anda mengeluarkan permintaan API kueri dan menangani respons. Anda juga dapat menulis kode aplikasi untuk menangani pengindeksan, meskipun untuk pengujian bukti konsep dan tugas dadakan, biasanya menggunakan portal Azure sebagai klien pencarian.

Dalam Blob Storage, Anda memerlukan kontainer yang menyediakan konten sumber. Anda dapat mengatur kriteria penyertaan dan pengecualian file, dan menentukan bagian blob mana yang diindeks di Azure AI Search.

Anda dapat mulai langsung di halaman portal Akun Penyimpanan Anda.

  1. Di halaman navigasi kiri di bawah Manajemen data, pilih Pencarian Azure AI untuk memilih atau membuat layanan pencarian.

  2. Ikuti langkah-langkah dalam wizard untuk mengekstrak dan secara opsional membuat konten yang dapat dicari dari blob Anda. Alur kerja adalah wizard Impor data. Alur kerja membuat skillset pengindeks, sumber data, indeks, dan opsi di layanan Pencarian Azure AI Anda.

    Cuplikan layar wizard Pencarian Azure AI di halaman portal Microsoft Azure Storage.

  3. Gunakan Penjelajah pencarian di halaman portal pencarian untuk mengkueri konten Anda.

Wizard adalah tempat terbaik untuk memulai, tetapi Anda akan menemukan opsi yang lebih fleksibel saat mengonfigurasi pengindeks blob sendiri. Anda dapat menggunakan klien REST. Tutorial: Mengindeks dan mencari data semi terstruktur (blob JSON) memandul Anda melalui langkah-langkah memanggil REST API.

Bagaimana blob diindeks

Secara default, sebagian besar blob diindeks sebagai dokumen pencarian tunggal dalam indeks, termasuk blob dengan konten terstruktur, seperti JSON atau CSV, yang diindeks sebagai potongan teks tunggal. Namun, untuk dokumen JSON atau CSV yang memiliki struktur internal (pemisah), Anda dapat menetapkan mode penguraian untuk menghasilkan dokumen pencarian individual untuk setiap baris atau elemen:

Dokumen gabungan atau tersemat (seperti arsip ZIP, dokumen Word dengan email Outlook tersemat yang berisi lampiran, atau . File MSG dengan lampiran) juga diindeks sebagai satu dokumen. Misalnya, semua gambar yang diekstrak dari lampiran file an .MSG akan dikembalikan di kolom normalized_images. Jika Anda memiliki gambar, pertimbangkan untuk menambahkan pengayaan AI untuk mendapatkan lebih banyak utilitas pencarian dari konten tersebut.

Konten tekstual dokumen diekstrak ke dalam bidang string bernama "konten". Anda juga dapat mengekstrak metadata standar dan yang ditentukan pengguna.

Catatan

Azure AI Search memberlakukan batas pengindeks pada berapa banyak teks yang diekstraknya tergantung pada tingkat harga. Peringatan akan muncul dalam respons status pengindeks jika dokumen terpotong.

Menggunakan pengindeks blob untuk ekstraksi konten

Pengindeks adalah subservis sadar sumber data di Azure AI Search, dilengkapi dengan logika internal untuk mengambil sampel data, membaca dan mengambil data dan metadata, dan menserialisasikan data dari format asli ke dalam dokumen JSON untuk impor berikutnya.

Blob di Azure Storage diindeks menggunakan pengindeks blob. Anda dapat memanggil pengindeks ini dengan menggunakan perintah Azure AI Search di Azure Storage, wizard Impor data , REST API, atau .NET SDK. Dalam pengkodean, Anda menggunakan pengindeks ini dengan mengatur jenisnya, dan dengan menyediakan informasi koneksi yang menyertakan akun Azure Storage bersama dengan kontainer blob. Anda dapat mengindeks subset blob Anda dengan membuat direktori virtual, yang kemudian dapat Anda jadikan sebagai parameter, atau dengan membuat filter ekstensi jenis file.

Pengindeks "memecah dokumen", membuka blob untuk memeriksa konten. Setelah menyambungkan ke sumber data, ini adalah langkah pertama dalam alur. Untuk data blob, dalam langkah ini PDF, dokumen Microsoft Office, gambar, dan jenis konten lainnya dideteksi. Pemecahan dokumen dengan ekstraksi teks tidak dikenakan biaya. Jika blob Anda berisi konten gambar, gambar akan diabaikan kecuali Anda menambahkan pengayaan AI. Pengindeksan standar hanya berlaku untuk konten teks.

Pengindeks blob Azure dilengkapi dengan parameter konfigurasi dan mendukung pelacakan perubahan jika data yang mendasar memberikan informasi yang memadai. Anda dapat mempelajari selengkapnya tentang fungsionalitas inti dalam Data indeks dari Azure Blob Storage.

Tingkat akses yang didukung

Tingkat penyimpanan blob mencakup panas, dingin, arsip. Hanya hot dan cool yang dapat diakses oleh pengindeks.

Jenis konten yang didukung

Dengan menjalankan pengindeks blob melalui kontainer, Anda dapat mengekstrak teks dan metadata dari tipe konten berikut dengan satu kueri:

  • CSV (lihat Mengindeks blob CSV)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON (lihat Mengindeks blob JSON)
  • KML (XML untuk representasi geografis)
  • Format Microsoft Office: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG (email Outlook), XML (XML WORD 2003 dan 2006)
  • Format Dokumen Terbuka: ODT, ODS, ODP
  • PDF
  • File teks biasa (lihat juga Mengindeks teks biasa)
  • RTF
  • XML
  • ZIP

Mengontrol blob mana yang diindeks

Anda dapat mengontrol blob mana yang diindeks, dan yang dilewati, oleh jenis file blob atau dengan mengatur properti pada blob itu sendiri, menyebabkan pengindeks melewatkannya.

Sertakan ekstensi file tertentu dengan mengatur "indexedFileNameExtensions" ke daftar ekstensi file yang dipisahkan koma (dengan titik terdepan). Kecualikan ekstensi file tertentu dengan mengatur "excludedFileNameExtensions" ke ekstensi yang harus dilewati. Jika ekstensi yang sama ada di kedua daftar, ekstensi tersebut akan dikecualikan dari pengindeksan.

PUT /indexers/[indexer name]?api-version=2023-11-01
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

Tambahkan "lewati" metadata blob

Parameter konfigurasi pengindeks berlaku untuk semua blob dalam kontainer atau folder. Terkadang, Anda ingin mengontrol bagaimana masing-masing blob diindeks.

Tambahkan properti metadata dan nilai berikut ke blob di Blob Storage. Ketika pengindeks menemukan properti ini, pengindeks akan melewati blob atau kontennya dalam pengindeksan berjalan.

Nama properti Nilai properti Penjelasan
"AzureSearch_Skip" "true" Menginstruksikan pengindeks blob untuk melewati blob sepenuhnya. Metadata maupun ekstraksi konten tidak dicoba. Ini berguna saat blob tertentu gagal berulang kali dan mengganggu proses pengindeksan.
"AzureSearch_SkipContent" "true" Ini setara dengan pengaturan yang "dataToExtract" : "allMetadata" dijelaskan di atas yang dilingkup ke blob tertentu.

Mengindeks metadata blob

Skenario umum yang memudahkan untuk mengurutkan blob dari jenis konten apa pun adalah mengindeks metadata kustom dan properti sistem untuk setiap blob. Dengan cara ini, informasi untuk semua blob diindeks terlepas dari jenis dokumen, disimpan dalam indeks di layanan pencarian Anda. Dengan menggunakan indeks baru, Anda kemudian dapat melanjutkan untuk mengurutkan, memfilter, dan memfaset di semua konten penyimpanan Blob.

Catatan

Tag Indeks Blob diindeks secara asli oleh layanan penyimpanan Blob dan diekspos untuk kueri. Jika atribut kunci/nilai blob Anda memerlukan kemampuan pengindeksan dan pemfilteran, manfaatkan tag Indeks Blob daripada metadata.

Untuk mempelajari selengkapnya fitur ini, lihat Mengelola dan menemukan data di Azure Blob Storage dengan indeks blob.

Mencari konten blob dalam indeks pencarian

Output dari pengindeks adalah indeks pencarian, yang digunakan untuk eksplorasi interaktif menggunakan teks gratis dan kueri yang difilter aplikasi di aplikasi klien. Untuk eksplorasi awal dan verifikasi konten, sebaiknya mulai dengan Pencarian Penjelajah di portal untuk memeriksa struktur dokumen. Di Penjelajah pencarian, Anda dapat menggunakan:

Solusi yang lebih permanen adalah mengumpulkan input kueri dan menyajikan respons sebagai hasil pencarian dalam aplikasi klien. Tutorial C# berikut menjelaskan cara membuat aplikasi pencarian: Menambahkan pencarian ke aplikasi ASP.NET Core (MVC).

Langkah berikutnya