Referensi

Cheat Sheet REST API Elasticsearch

Kumpulan command REST API Elasticsearch dan OpenSearch yang paling sering dipakai administrator, dikelompokkan per kategori. Semua contoh memakai path relatif sehingga bisa langsung dijalankan di Console nusabet88, Dev Tools, atau curl.

Konvensi & Cara Pakai

Setiap baris ditulis sebagai metode + path. Di nusabet88 Anda cukup menyalin baris itu apa adanya. Bila memakai curl, tambahkan host dan header seperti contoh berikut.

# Pola umum dengan curl
curl -XGET "http://127.0.0.1:9200/_cluster/health?pretty"

# Dengan Basic Auth + body JSON
curl -u elastic:rahasia \
  -H "Content-Type: application/json" \
  -XPOST "http://127.0.0.1:9200/logs-2026/_search?pretty" \
  -d '{ "query": { "match_all": {} } }'
Tambahkan ?pretty agar JSON respons diformat rapi. Di nusabet88 formatting dilakukan otomatis, jadi ?pretty tidak wajib.

1. Cluster

Memantau kondisi, statistik, dan pengaturan cluster secara keseluruhan.

# Kesehatan cluster (green / yellow / red)
GET /_cluster/health
GET /_cluster/health?level=indices
GET /_cluster/health/logs-2026

# Statistik agregat seluruh cluster
GET /_cluster/stats

# Lihat & ubah setting cluster (dinamis)
GET /_cluster/settings?include_defaults=true
PUT /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "all"
  }
}

# Jelaskan kenapa shard belum dialokasikan
GET /_cluster/allocation/explain

# Status & info node
GET /_nodes/stats
GET /_nodes/_all/jvm
Gunakan transient untuk perubahan sementara (hilang saat restart penuh) dan persistent untuk perubahan permanen.

2. Cat API

Output tabular ringkas yang mudah dibaca manusia. Selalu tambahkan ?v untuk header kolom.

# Ringkasan kesehatan cluster satu baris
GET /_cat/health?v

# Daftar semua index + ukuran, jumlah dokumen, status
GET /_cat/indices?v
GET /_cat/indices?v&s=store.size:desc   # urut per ukuran

# Daftar node + peran, heap, CPU, load
GET /_cat/nodes?v
GET /_cat/nodes?v&h=name,node.role,heap.percent,cpu

# Distribusi shard per index dan node
GET /_cat/shards?v
GET /_cat/shards/logs-2026?v

# Alokasi disk per node
GET /_cat/allocation?v
Lihat halaman Referensi _cat API untuk penjelasan kolom tiap endpoint.

3. Index

Membuat, menghapus, membuka/menutup, dan mengelola setting serta mapping index.

# Buat index dengan setting & mapping
PUT /logs-2026
{
  "settings": { "number_of_shards": 1, "number_of_replicas": 1 },
  "mappings": {
    "properties": {
      "pesan":   { "type": "text" },
      "level":   { "type": "keyword" },
      "waktu":   { "type": "date" }
    }
  }
}

# Hapus index (hati-hati, tidak bisa dibatalkan)
DELETE /logs-2026

# Tutup & buka index
POST /logs-2026/_close
POST /logs-2026/_open

# Lihat & ubah setting / mapping
GET /logs-2026/_settings
PUT /logs-2026/_settings
{ "index": { "number_of_replicas": 2 } }

GET /logs-2026/_mapping
PUT /logs-2026/_mapping
{ "properties": { "ip": { "type": "ip" } } }

# Maintenance: refresh, flush, force merge
POST /logs-2026/_refresh
POST /logs-2026/_flush
POST /logs-2026/_forcemerge?max_num_segments=1
_forcemerge berat secara I/O. Jalankan hanya pada index read-only (mis. index lama yang tidak lagi ditulis) dan di luar jam sibuk.

4. Document

Operasi CRUD pada dokumen tunggal maupun massal (bulk).

# Index dokumen dengan ID eksplisit
PUT /logs-2026/_doc/1
{ "pesan": "server start", "level": "info", "waktu": "2026-06-20T08:00:00Z" }

# Index dokumen dengan ID otomatis
POST /logs-2026/_doc
{ "pesan": "request masuk", "level": "debug" }

# Ambil dokumen berdasarkan ID
GET /logs-2026/_doc/1

# Update parsial
POST /logs-2026/_update/1
{ "doc": { "level": "warning" } }

# Hapus dokumen
DELETE /logs-2026/_doc/1

# Bulk: beberapa aksi sekaligus (NDJSON, akhiri dengan newline)
POST /_bulk
{ "index": { "_index": "logs-2026", "_id": "10" } }
{ "pesan": "a", "level": "info" }
{ "delete": { "_index": "logs-2026", "_id": "9" } }
{ "update": { "_index": "logs-2026", "_id": "10" } }
{ "doc": { "level": "error" } }
Untuk impor data besar, selalu gunakan _bulk. Setiap baris aksi dan dokumen harus dipisah newline dan file diakhiri newline kosong.

5. Search

Pencarian dasar memakai Query DSL. Lihat Contoh Query DSL untuk katalog lengkap.

# Semua dokumen
POST /logs-2026/_search
{ "query": { "match_all": {} } }

# Full-text match (dianalisis)
POST /logs-2026/_search
{ "query": { "match": { "pesan": "server gagal" } } }

# Exact match pada field keyword
POST /logs-2026/_search
{ "query": { "term": { "level": "error" } } }

# Kombinasi bool
POST /logs-2026/_search
{
  "query": {
    "bool": {
      "must":     [ { "match": { "pesan": "gagal" } } ],
      "filter":   [ { "term":  { "level": "error" } } ],
      "must_not": [ { "term":  { "level": "debug" } } ]
    }
  }
}

# Hitung dokumen tanpa mengambil hasil
GET /logs-2026/_count

6. Alias

Alias adalah nama virtual untuk satu atau lebih index. Sangat berguna untuk reindex tanpa downtime.

# Lihat semua alias
GET /_cat/aliases?v
GET /_alias

# Tambah / hapus alias pada satu index
PUT /logs-2026/_alias/logs-aktif
DELETE /logs-2026/_alias/logs-aktif

# Pindahkan alias secara atomik (zero downtime)
POST /_aliases
{
  "actions": [
    { "remove": { "index": "logs-2026", "alias": "logs-aktif" } },
    { "add":    { "index": "logs-2026-v2", "alias": "logs-aktif" } }
  ]
}
Operasi pada _aliases bersifat atomik: pemindahan alias terjadi sekaligus, sehingga aplikasi tidak pernah melihat kondisi tanpa alias.

Tabel Ringkasan Endpoint

EndpointMetodeFungsi
/_cluster/healthGETStatus kesehatan cluster (green/yellow/red).
/_cluster/statsGETStatistik agregat cluster (index, node, shard).
/_cluster/settingsGET / PUTLihat & ubah setting cluster dinamis.
/_cat/indices?vGETDaftar index dengan ukuran & jumlah dokumen.
/_cat/nodes?vGETDaftar node dengan peran, heap, CPU.
/_cat/shards?vGETDistribusi shard per index & node.
/_cat/allocation?vGETAlokasi disk & shard per node.
/<index>PUT / DELETEBuat / hapus index.
/<index>/_open · _closePOSTBuka / tutup index.
/<index>/_settingsGET / PUTLihat & ubah setting index.
/<index>/_mappingGET / PUTLihat & tambah field mapping.
/<index>/_refreshPOSTJadikan perubahan dapat dicari segera.
/<index>/_forcemergePOSTGabungkan segment (index read-only).
/<index>/_doc/<id>PUT / GET / DELETEIndex, ambil, hapus dokumen.
/<index>/_update/<id>POSTUpdate parsial dokumen.
/_bulkPOSTOperasi massal (index/update/delete).
/<index>/_searchGET / POSTPencarian dengan Query DSL.
/<index>/_countGETHitung dokumen yang cocok.
/_aliasesPOSTKelola alias secara atomik.
/<index>/_alias/<nama>PUT / DELETETambah / hapus alias tunggal.

Poin Penting

  • Gunakan _cat/*?v untuk inspeksi cepat dan _cluster/* untuk detail mendalam.
  • Selalu pakai _bulk untuk operasi data dalam jumlah besar.
  • Manfaatkan alias agar reindex dan rotasi index bebas downtime.
  • Hindari DELETE /<index> dan _forcemerge di jam sibuk produksi.

FAQ Cheat Sheet REST API

Apa itu REST API Elasticsearch?

REST API adalah antarmuka HTTP yang dipakai untuk semua operasi pada Elasticsearch dan OpenSearch — mulai dari membuat index, mengindeks dokumen, mencari, hingga mengelola cluster. Setiap operasi adalah request HTTP (GET, PUT, POST, DELETE) ke endpoint tertentu dengan body JSON bila diperlukan.

Bagaimana cara menjalankan command pada cheat sheet ini?

Anda bisa menjalankannya lewat curl di terminal, lewat Console di nusabet88, atau lewat tab Dev Tools. Pada nusabet88 Anda cukup menulis metode dan path, misalnya GET /_cluster/health, lalu jalankan tanpa perlu menulis host atau header secara manual.

Apakah command ini sama untuk Elasticsearch dan OpenSearch?

Sebagian besar endpoint inti (cluster, _cat, index, document, search dasar) identik karena OpenSearch adalah fork dari Elasticsearch 7.10. Perbedaan muncul pada fitur lanjutan, nama plugin, dan beberapa security API. Cheat sheet ini fokus pada endpoint umum yang berlaku di keduanya.

Kenapa ada perintah dengan ?v di akhir URL?

Parameter ?v (verbose) khusus untuk _cat API. Ia menampilkan baris header kolom sehingga output tabel mudah dibaca manusia. Tanpa ?v, _cat hanya mengembalikan baris data tanpa nama kolom.

Eksekusi Command Tanpa Ribet

nusabet88 menyediakan Console interaktif untuk menjalankan semua command di atas dengan auto-format dan riwayat. Pasang via Docker dalam hitungan menit.

Panduan Instalasi