NDJSON untuk Bulk API
Endpoint _bulk tidak memakai JSON biasa, melainkan NDJSON (Newline Delimited JSON): satu objek JSON per baris, tanpa pembungkus array.
# setiap pasang baris: aksi lalu dokumen; diakhiri newline
{ "index": { "_index": "produk", "_id": "1" } }
{ "nama": "Kopi", "harga": 25000 }
{ "index": { "_index": "produk", "_id": "2" } }
{ "nama": "Teh", "harga": 15000 }
# kirim file NDJSON ke _bulk
curl -s "localhost:9200/_bulk?pretty" \
-H 'Content-Type: application/x-ndjson' \
--data-binary @data.ndjson
Aturan ketat NDJSON: setiap baris harus berupa JSON utuh dalam satu baris (tidak boleh diindentasi multi-baris), dan file wajib diakhiri newline. Gunakan --data-binary, bukan -d, agar curl tidak menghapus newline.
Karena tiap baris satu objek, jangan format file _bulk dengan ?pretty atau jq — itu memecah objek ke banyak baris dan membuat bulk gagal.