Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nota
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.
Artikel ini menjelaskan cara menghapus seluruh dokumen dari indeks pencarian di Pencarian Azure AI menggunakan REST API atau Azure SDK. Ini mencakup tugas-tugas ini:
- Memahami kapan penghapusan manual diperlukan
- Mengidentifikasi dokumen tertentu untuk dihapus
- Mendapatkan jumlah dokumen dan metrik penyimpanan
- Menghapus dokumen tunggal atau dokumen tanpa induk
- Menghapus dokumen secara massal
- Mengonfirmasi penghapusan
Petunjuk / Saran
Untuk penghapusan dokumen tunggal cepat, lewati ke Hapus satu dokumen.
Prasyarat
Layanan Pencarian Azure AI (tingkat apa pun). Buat layanan atau temukan yang sudah ada.
Indeks pencarian yang sudah ada dengan dokumen yang akan dihapus. Artikel ini mengasumsikan Anda sudah membuat indeks dan memuat dokumen.
Izin untuk menghapus dokumen:
- Autentikasi berbasis kunci: Kunci API admin untuk layanan pencarian Anda.
-
Autentikasi berbasis peran: Peran Kontributor Data Indeks Pencarian atau
Microsoft.Search/searchServices/indexes/documents/deleteizin.
Untuk pengembangan SDK, instal pustaka klien Azure Search:
- Python: azure-search-documents
- .NET: Azure. Search.Documents
- JavaScript: @azure/search-documents
- Java: azure-search-documents
Memahami kapan penghapusan manual diperlukan
Penghapusan dokumen secara manual diperlukan saat Anda menggunakan pendekatan mode pendorongan untuk pengindeksan, di mana kode aplikasi menangani impor data dan pengindeksan.
Anda juga memerlukan penghapusan dokumen manual jika Anda menggunakan Logic Apps untuk memuat indeks.
Anda mungkin juga memerlukan penghapusan dokumen manual dalam beban kerja berbasis pengindeks jika dokumen pencarian menjadi "yatim piatu" dari dokumen sumber. Manfaat penting pengindeks adalah pengambilan dan sinkronisasi konten otomatis melalui fitur deteksi perubahan dan penghapusan sumber data target. Semua sumber data yang didukung menyediakan beberapa tingkat deteksi. Tetapi dalam beberapa kasus, penghapusan yang disinkronkan didasarkan pada strategi penghapusan lunak di mana Anda menandai dokumen sumber (atau rekaman) untuk dihapus, menjalankan pengindeks untuk menghapus konten terindeks, dan hanya setelah indeks diperbarui Anda menghapus konten sumber secara fisik. Jika konten sumber dihapus terlebih dahulu, Anda memiliki dokumen yatim piatu dalam indeks pencarian. Anda harus menghapus dokumen yatim piatu secara manual dalam indeks Anda untuk membangun kembali paritas antara sumber dan konten terindeks.
Tautan berikut memberikan informasi selengkapnya tentang deteksi perubahan dan penghapusan untuk setiap sumber data dalam beban kerja berbasis pengindeks.
- Azure Storage
- Azure SQL
- Azure Cosmos DB
- Azure Database untuk MySQL (pratinjau)
- Pengindeks SharePoint (versi pratinjau)
- Pengindeks OneLake
Mengidentifikasi dokumen tertentu untuk penghapusan
Semua dokumen diidentifikasi secara unik oleh kunci dokumen dalam indeks pencarian. Untuk menghapus dokumen, Anda harus mengidentifikasi bidang mana yang merupakan kunci dokumen dan memberikan kunci pada permintaan penghapusan.
Di portal Azure, Anda dapat melihat bidang dari setiap indeks. Kunci dokumen adalah bidang string dan ditandai dengan ikon kunci untuk membuatnya lebih mudah dilihat.
Temukan kunci dokumen
Setelah Anda mengetahui bidang mana yang merupakan kunci dokumen, Anda bisa mendapatkan nilai kunci dengan menjalankan kueri yang mengembalikan bidang kunci dalam hasil pencarian.
Dalam contoh ini, string pencarian digunakan untuk menemukan dokumen dalam indeks, dan pernyataan pilih menentukan bidang apa yang ada dalam hasil. "HotelId" adalah kunci dokumen dalam contoh ini.
POST https://[service name].search.windows.net/indexes/hotels-sample/docs/search?api-version=2026-04-01
{
"search": "this query has terms that pertain to the document I want to delete",
"select": "HotelName, HotelId",
"count": true
}
Hasil untuk pencarian kata kunci ini adalah 50 teratas secara default. Jika dokumen yang ingin Anda hapus memenuhi kriteria pencarian, Anda akan melihatnya (dan kuncinya) dalam hasil. Pastikan kueri menyertakan bidang deskriptif yang membantu Anda mengonfirmasi bahwa Anda memiliki dokumen yang benar.
{
"@odata.count": 50,
"value": [
{
"@search.score": 4.5116634,
"HotelId": "18",
"HotelName": "Ocean Water Resort & Spa"
}
...
]
}
String sederhana mudah dimengerti, tetapi jika indeks menggunakan bidang yang dikodekan base-64, atau jika dokumen hasil pencarian dihasilkan dari pengaturan parsingMode, Anda mungkin bekerja dengan nilai yang belum Anda kenal. Jika Anda bekerja dengan dokumen yang dipotong yang dibuat oleh pengindeks, kunci dokumen sering kali merupakan "chunked_id" yang dihasilkan yang terdiri dari urutan angka dan huruf yang panjang.
Mencari dokumen tertentu
Sekarang setelah Anda memiliki kunci dokumen, jalankan kueri pencarian yang mengambil seluruh dokumen. Jika dokumen adalah potongan, Anda akan melihat ID dokumen induk. Kunci dokumen disertakan sebagai parameter kueri.
Contoh pertama mengembalikan hotel yang memiliki nilai kunci dokumen 18.
GET https://[service name].search.windows.net/indexes/hotels-sample/docs('18')?api-version=2026-04-01
Contoh kedua menghasilkan dokumen bagian. "chunk_id" adalah kunci dokumen.
GET https://[service name].search.windows.net/indexes/chunking-example-index/docs('aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb')?api-version=2026-04-01
Respons dari contoh kedua mencakup semua bidang, yang harus Anda tinjau untuk memastikan Anda tahu apa yang Anda hapus. Bidang yang menyertakan informasi induk berguna jika Anda perlu mengindeks ulang dokumen induk tunggal secara manual ke dalam dokumen yang dipotong konstituen dalam indeks pencarian.
{
"chunk_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"parent_id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
"chunk": "Unpopulated Slopes of an Active Volcano\u2014Naples, Italy ... 90\n\nDazzling Coastlines\u2014Italy ... .92\n\nLiving on Fertile Land\u2014Nile River, Egypt ... 94\n\n\n\n vii",
"title": "earth_at_night_508.pdf",
"text_vector": [ <omitted> ]
}
Petunjuk / Saran
Gunakan klien REST, pustaka klien Azure SDK, atau alat baris perintah untuk menjalankan kueri pencarian. Portal Microsoft Azure tidak mendukung permintaan GET untuk kueri.
Mendapatkan jumlah dokumen dan metrik penyimpanan
Sebelum Anda menghapus dokumen, dapatkan metrik awal untuk jumlah dan penyimpanan dokumen indeks sehingga Anda dapat mengonfirmasi penghapusan nanti.
Anda bisa mendapatkan jumlah dokumen dan penyimpanan indeks menggunakan:
- Di portal Microsoft Azure, di bawah manajemen pencarian>Indeks.
- REST API Indeks - Dapatkan Statistik
Berikut adalah contoh respons:
{
"documentCount": 12,
"storageSize": 123456,
"vectorIndexSize": 123456
}
Menghapus satu dokumen
Gunakan Dokumen - Indeks REST API dengan penghapusan
@search.actionuntuk menghapusnya dari indeks pencarian.Menyusun panggilan POST yang menentukan nama indeks dan titik akhir
docs/index.Pastikan isi permintaan menyertakan kunci dokumen yang ingin Anda hapus.
POST https://[service name].search.windows.net/indexes/hotels-sample/docs/index?api-version=2026-04-01 Content-Type: application/json api-key: [admin key] { "value": [ { "@search.action": "delete", "id": "18" } ] }Kirim permintaan.
Tabel berikut menjelaskan berbagai kode status per dokumen yang dapat dikembalikan dalam respons. Beberapa kode status menunjukkan masalah dengan permintaan itu sendiri, sementara yang lain menunjukkan kondisi kesalahan sementara. Pilihan terakhir yang harus Anda coba lagi setelah jeda.
Kode status Meaning Dapat Dicoba Lagi Catatan 200 Dokumen berhasil dihapus. n/a Operasi penghapusan adalah idempoten. Artinya, bahkan jika kunci dokumen tidak ada dalam indeks, mencoba operasi penghapusan dengan kunci tersebut menghasilkan kode status 200. 400 Terjadi kesalahan dalam dokumen yang mencegahnya dihapus. Tidak. Pesan kesalahan dalam respons memberikan detail. 422 Indeks sementara tidak tersedia karena diperbarui dengan bendera 'allowIndexDowntime' diatur ke 'true'. Yes Tunggu hingga indeks tersedia. 503 Layanan pencarian Anda untuk sementara tidak tersedia, mungkin karena beban berat. Yes Dalam kasus ini, kode Anda harus menunggu sebelum mencoba lagi atau Anda berisiko memperpanjang tidak tersedianya layanan. Nota
Jika kode klien Anda sering menerima respons 207, salah satu alasan yang mungkin adalah sistem sedang mengalami beban. Anda dapat mengonfirmasi ini dengan memeriksa
statusCodeproperti untuk 503. Jika demikian, sebaiknya batasi permintaan pengindeksan. Jika tidak, jika lalu lintas pengindeksan tidak mereda, sistem dapat mulai menolak semua permintaan dengan kesalahan 503.Anda dapat mengirim ulang kueri Pencarian untuk mengonfirmasi penghapusan. Anda harus mendapatkan pesan kesalahan 404: Dokumen tidak ditemukan.
GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/18?api-version=2026-04-01
Referensi:Dokumen - Indeks
Permintaan penghapusan yang berhasil mengembalikan HTTP 200 (OK). Isi respons berisi status untuk setiap dokumen:
{
"value": [
{ "key": "18", "status": true, "statusCode": 200 }
]
}
Menghapus dokumen secara massal
Gunakan Dokumen - Indeks REST API dengan penghapusan
@search.actionuntuk menghapusnya dari indeks pencarian. Menyusun panggilan POST yang menentukan nama indeks dan titik akhirdocs/index.Pastikan isi permintaan menyertakan kunci semua dokumen yang ingin Anda hapus.
POST https://[service name].search.windows.net/indexes/hotels-sample/docs/index?api-version=2026-04-01 Content-Type: application/json api-key: [admin key] { "value": [ { "@search.action": "delete", "id": "doc1" }, { "@search.action": "delete", "id": "doc2" } ] }
Batas batch: Disarankan untuk membatasi batch hingga 1.000 dokumen atau sekitar 16 MB per permintaan untuk memastikan performa optimal.
Idempotency: Penghapusan bersifat idempotensi; jika Anda mencoba menghapus ID dokumen yang tidak ada, API tetap akan mengembalikan status 200 OK.
Latensi: Dokumen tidak selalu dihapus secara instan dari penyimpanan. Proses latar belakang melakukan penghapusan fisik setiap beberapa menit.
Penyimpanan vektor: Menghapus dokumen tidak segera membebaskan kuota penyimpanan vektor. Penghapusan fisik memerlukan beberapa menit. Untuk pengembalian segera ruang vektor, Anda mungkin perlu menghapus dan membangun kembali indeks.
Referensi:Dokumen - Indeks
Memverifikasi penghapusan dokumen
Setelah menghapus dokumen, verifikasi bahwa penghapusan berhasil.
- Di portal Microsoft Azure, buka halaman Gambaran Umum layanan pencarian.
- Pilih manajemen pencarian>Indeks.
- Periksa kolom Jumlah dokumen untuk indeks Anda.
- Tunggu beberapa menit dan refresh jika jumlah belum berubah (penghapusan asinkron).
Menghapus dokumen tidak segera mengosongkan ruang dalam indeks. Setiap beberapa menit, proses latar belakang melakukan penghapusan fisik. Baik Anda menggunakan portal Microsoft Azure atau Get Statistics API untuk mengembalikan statistik indeks, Anda dapat mengharapkan penundaan kecil sebelum penghapusan tercermin di portal Microsoft Azure dan metrik API.
Memecahkan masalah penghapusan dokumen
Tabel berikut ini mencantumkan masalah umum saat menghapus dokumen dan cara mengatasinya.
| Masalah | Penyebab | Resolusi |
|---|---|---|
| Jumlah dokumen tidak berubah | Penghapusan dilakukan secara asinkron. Proses latar belakang berjalan setiap beberapa menit. | Tunggu 2-3 menit dan refresh. Periksa statistik indeks lagi. |
| 400 Permintaan Tidak Valid | Kunci dokumen tidak valid atau isi permintaan salah bentuk. | Verifikasi nama bidang kunci dokumen cocok dengan skema indeks Anda. Periksa sintaks JSON. |
| 403 Dilarang | Izin tidak memadai. | Gunakan kunci API admin atau pastikan identitas Anda memiliki peran Kontributor Data Indeks Pencarian. |
| 404 Tidak Ditemukan pada indeks | Nama indeks salah atau tidak ada. | Verifikasi nama indeks di URL permintaan Anda. |
| Penyimpanan tidak diklaim kembali | Penghapusan fisik terjadi secara asinkron di latar belakang. | Tunggu beberapa menit. Untuk segera reklamasi penyimpanan vektor, hapus dan membangun ulang indeks. |
| Dokumen yatim piatu tetap ada | Dokumen sumber dihapus sebelum proses pengindeksan dilakukan dengan deteksi penghapusan. | Hapus dokumen yatim piatu secara manual menggunakan kunci dokumennya. |