Elasticsearch

Menengah

Elasticsearch adalah distributed search and analytics engine yang dioptimalkan untuk full-text search, analitik log, dan observability. Kalau kamu pernah bikin fitur pencarian yang bisa nemu dokumen meski keyword-nya salah eja, kemungkinan besar ada Elasticsearch di belakangnya.

Apa itu Elasticsearch?

Elasticsearch adalah distributed search and analytics engine open-source yang dibangun di atas Apache Lucene. Dikembangkan oleh Shay Banon dan dirilis pertama kali tahun 2010, Elasticsearch jadi fondasi dari Elastic Stack - yang dulu sering disebut ELK Stack (Elasticsearch, Logstash, Kibana).

Elasticsearch menyimpan data sebagai dokumen JSON dalam indices (tunggal: index) - mirip collection di MongoDB. Tapi yang bikin Elasticsearch benar-benar beda adalah engine indexing-nya yang sangat powerful untuk pencarian teks dan analitik real-time.

Bagaimana Elasticsearch Bekerja?

Ketika kamu insert dokumen ke Elasticsearch, engine langsung melakukan proses indexing secara otomatis:

  1. Tokenization: Teks dipecah jadi token (kata-kata)
  2. Analysis: Token diproses - lowercase, stemming, penghapusan stop words, penambahan sinonim
  3. Inverted Index: Token disimpan dalam struktur data yang memungkinkan pencarian sangat cepat

Dengan inverted index, Elasticsearch bisa menemukan semua dokumen yang mengandung kata tertentu dalam hitungan milidetik - bahkan di dataset dengan miliaran dokumen.

Elasticsearch vs Database Lain untuk Search

KemampuanElasticsearchPostgreSQL Full-TextMySQL Full-Text
Relevance scoringSangat canggih (BM25)TerbatasTerbatas
Fuzzy search (salah eja)NativeButuh extensionTidak ada
Sinonim dan analisis bahasaBuilt-in, bisa customTerbatasSangat terbatas
Faceted search dan agregasiSangat kuatButuh query kompleksButuh query kompleks
Horizontal scalingBuilt-inButuh setup tambahanButuh setup tambahan
ACID transactionsTidak adaPenuhPenuh
Relasi data (JOIN)Tidak (denormalized)YaYa
Biaya setupLebih kompleksSederhanaSederhana

Tiga Use Case Utama Elasticsearch

1. Search Engine Aplikasi

Fitur pencarian di e-commerce, portal berita, atau aplikasi enterprise yang butuh relevance ranking, autocomplete, typo tolerance, dan filter multi-dimensi. Marketplace besar di Indonesia pakai Elasticsearch untuk search produk mereka - ini yang bikin kamu masih bisa ketemu produk meski nama yang kamu ketik sedikit beda dari nama aslinya.

2. Log Analysis dan Observability

Ini mungkin use case terbesar Elasticsearch sekarang. Dengan Elastic Stack lengkap:

  • Logstash atau Beats: Kumpulkan dan kirim log dari berbagai sistem
  • Elasticsearch: Simpan, index, dan query log
  • Kibana: Visualisasi dashboard dan alerting

Tim ops dan SRE pakai setup ini untuk debugging masalah di production, monitoring performa sistem, dan analitik keamanan.

3. Business Intelligence Real-Time

Elasticsearch bisa aggregate data dalam jumlah sangat besar dengan sangat cepat - cocok untuk dashboard real-time yang butuh insight instan dari data yang terus bertambah setiap detik.

Konsep Penting di Elasticsearch

Shard dan Replica: Elasticsearch memecah setiap index jadi beberapa shard yang didistribusikan ke banyak node. Setiap shard bisa punya replica untuk fault tolerance dan meningkatkan performa baca. Ini yang bikin Elasticsearch bisa scale horizontal hampir tanpa batas teoritis.

Mappings: Definisi tipe data untuk setiap field dalam dokumen - mirip schema di database relasional tapi lebih fleksibel. Elasticsearch juga bisa auto-detect tipe data dengan dynamic mapping, meski untuk production lebih baik definisikan mapping secara eksplisit.

Query DSL: Elasticsearch punya query language berbasis JSON yang sangat ekspresif - dari simple term query sampai kombinasi boolean query kompleks dengan boosting, fuzziness, dan highlighting hasil pencarian.

Refresh Interval: Elasticsearch bersifat near real-time, bukan real-time penuh. Ada jeda kecil (default 1 detik) antara dokumen diinsert dan bisa muncul di hasil pencarian.

Elasticsearch di Pipeline Data Modern

Untuk data engineer, Elasticsearch sering muncul di ujung pipeline data sebagai endpoint dari stream processing - hasil analitik real-time disimpan ke Elasticsearch supaya bisa divisualisasikan di Kibana oleh tim bisnis atau operasional. Ini bagian dari arsitektur yang sering disebut Lambda Architecture atau Kappa Architecture.

Ada juga OpenSearch - fork open-source dari Elasticsearch yang dibuat Amazon setelah Elastic mengubah lisensi Elasticsearch dari Apache 2.0 ke SSPL pada 2021. OpenSearch kompatibel dengan Elasticsearch API dan banyak dipakai di managed AWS environment.

Lanjut Latihan

Udah paham Elasticsearch? Lanjut latihan SQL dan Excel yuk!

Latihan interaktif, langsung di browser.

Mulai Latihan →