Unggah dokumen
Anda dapat menambahkan, memperbarui, dan menghapus dokumen satu per satu atau secara batch.
URL
/v3/openapi/apps/$app_name/$table_name/actions/bulkGanti $app_name dengan nama aplikasi Anda.
Ganti $table_name dengan nama tabel penerima data di aplikasi Anda.
Contoh URL ini tidak mencantumkan header permintaan dan informasi encoding.
URL ini tidak mencakup alamat host aplikasi.
Format yang didukung
JSON
Metode permintaan HTTP
POST
Parameter permintaan
Untuk mempelajari cara menghitung string signature dan mengonfigurasi header permintaan untuk dorong data, lihat Mekanisme Signature API V3.
Format data dokumen
Catatan
Aplikasi Edisi Standar tidak mendukung parameter timestamp. Jika Anda menentukan parameter ini, kode kesalahan 4007 akan dikembalikan.
Contoh berikut menunjukkan format data Edisi Premium:
[
{
"cmd": "add",
"timestamp": 1401342874777,
"fields": {
"id": "1",
"title": "This is the title",
"body": "This is the body"
}
},
{
"cmd": "update",
"timestamp": 1401342874778,
"fields": {
"id": "2",
"title": "This is the new title"
}
},
{
"cmd": "delete",
"fields": {
"id": "3"
}
}
]timestamp: Opsional. Timestamp operasi dokumen, dalam milidetik. OpenSearch menggunakan nilai ini untuk menentukan urutan pemrosesan operasi pada dokumen dengan kunci primary yang sama. Parameter ini hanya didukung oleh aplikasi Edisi Premium. Jika Anda menentukannya untuk aplikasi Edisi Standar, kode kesalahan 4007 akan dikembalikan. Jika tidak ditentukan, OpenSearch menggunakan waktu saat menerima dokumen tersebut.
cmd: Wajib. Menentukan operasi yang akan dilakukan pada dokumen:
add: Menambahkan dokumen. Jika dokumen dengan kunci primary yang sama sudah ada, dokumen yang ada akan dihapus sebelum dokumen baru ditambahkan.
delete: Menghapus dokumen. Jika tidak ada dokumen dengan kunci primary yang ditentukan, operasi tetap dianggap berhasil.
update: Memperbarui bidang tertentu dari dokumen dengan kunci primary yang ditentukan.
upsert: Memperbarui dokumen jika kunci primary yang ditentukan ada. Jika tidak ada, menambahkan dokumen baru.
CatatanAplikasi Edisi Standar tidak mendukung `update` atau `upsert`.
Anda dapat mengelompokkan beberapa operasi dalam satu permintaan untuk meningkatkan efisiensi.
fields: Wajib. Bidang dokumen yang akan dioperasikan. Bidang kunci primary wajib dicantumkan karena OpenSearch menggunakannya untuk mengidentifikasi dokumen. Untuk operasi delete, hanya bidang kunci primary yang diperlukan.
Untuk bidang bertipe Array, gunakan array JSON, seperti
[{"fields": { "id": "0","int_array": [14,85],"string_array": ["abc","xyz"]},"cmd": "ADD"}].Lapisan terluar badan permintaan adalah array JSON, yang memungkinkan Anda mengelola beberapa dokumen dalam satu permintaan.
Hasil pengembalian
Parameter | Tipe | Deskripsi |
errors | ARRAY | Detail kesalahan. Setiap objek kesalahan berisi message (deskripsi kesalahan), params (parameter kesalahan), dan code (kode kesalahan). Untuk informasi selengkapnya, lihat Kode kesalahan. |
request_id | string | ID permintaan, digunakan untuk troubleshooting. |
status | string | Hasil permintaan. Nilai yang valid: OK (berhasil) dan FAIL (gagal). Jika nilainya FAIL, lakukan troubleshooting berdasarkan kode kesalahan. |
result | string | Hasil permintaan. Mengembalikan true untuk permintaan yang berhasil. Tidak dikembalikan untuk permintaan yang gagal. |
Contoh
Contoh permintaan (header dan encoding dihilangkan):
http://host/v3/openapi/apps/app_schema_demo/tab/actions/bulk
// Dokumen yang akan diunggah, yang perlu ditempatkan dalam badan permintaan.
[{"cmd":"ADD","fields":{"id":1,"name":"Test Data Push"}}]Tanggapan sukses
{
"errors": [],
"request_id": "150116724719940316170289",
"status": "OK",
"result": true
}Tanggapan kesalahan
{
"errors": [
{
"code": 2001,
"message": "The application to be managed does not exist. The application to be managed does not exist.",
"params": {
"friendly_message": "The application to be managed does not exist."
}
}
],
"request_id": "150116732819940316116461",
"status": "FAIL"
}Catatan penggunaan
Saat Anda mendorong data menggunakan API atau SDK, nama bidang tidak peka terhadap huruf besar/kecil.
Batas frekuensi dan ukuran dorong data bervariasi tergantung jenis aplikasi. Untuk informasi selengkapnya, lihat Batas Sistem.
Selalu periksa nilai kembali setelah mengunggah data dan segera lakukan troubleshooting terhadap kode kesalahan apa pun untuk mencegah kehilangan data. Berikan perhatian khusus pada kode kesalahan 3007. Karena OpenSearch memproses data secara asinkron, nilai kembali OK hanya menunjukkan bahwa data telah diterima, bukan bahwa data telah diproses dengan sukses. Periksa Konsol OpenSearch secara berkala untuk mendeteksi kesalahan pemrosesan.
Ukuran maksimum badan permintaan sebelum encoding adalah 2 MB. OpenSearch menolak permintaan yang melebihi batas ini.
Jika badan permintaan berisi karakter Tionghoa, Anda harus menggunakan encoding UTF-8. Nilai header Content-MD5 juga harus dihitung berdasarkan badan yang telah di-encode UTF-8. Jika tidak, permintaan akan gagal.