Back to blog
Database

Elasticsearch: Rahasia Mesin Pencari Google dan E-Commerce

Bagaimana Tokopedia bisa menampilkan produk sepatu yang relevan hanya dalam kedipan mata, padahal kamu typo mengetik 'spatu'? Ini adalah kehebatan Elasticsearch.

super admin·01 Juli 2026·2 min read
Elasticsearch: Rahasia Mesin Pencari Google dan E-Commerce
Article Content

Kelemahan Pencarian di Database Biasa

Kamu punya tabel "Produk" di MySQL berisi 10 Juta baju. Kamu ingin membuat kolom pencarian. Pemula biasanya akan menggunakan *Query*: SELECT * FROM produk WHERE nama LIKE '%kaos hitam%'.

Metode ini (Full Table Scan) sangat lambat karena MySQL harus membaca 10 Juta baris satu per satu. Parahnya lagi, jika pengunjung typo (salah ketik) menjadi "kaus hitam", MySQL akan menjawab "Barang tidak ditemukan". MySQL tidak mengerti bahasa manusia.

Untuk fitur pencarian skala industri, dunia mengandalkan Elasticsearch.

Apa itu Elasticsearch? (Search Engine Database)

Elasticsearch bukanlah database utama penyimpan transaksi. Ia adalah Database Mesin Pencari (Search Engine) berbasis dokumen JSON. Rahasia kecepatannya terletak pada struktur algoritma yang memutarbalikkan logika penyimpanan, yaitu Inverted Index (Indeks Terbalik).

Cara Kerja Inverted Index

Daripada menyimpan data per baris, Elasticsearch membongkar kalimat menjadi kata-kata (Token).
Misal Dokumen 1: "Kaos Katun Hitam"
Misal Dokumen 2: "Topi Hitam Polos"

Elasticsearch akan membuat indeks seperti indeks di belakang buku perpustakaan:
- Kata Kaos → Ada di Dokumen 1
- Kata Hitam → Ada di Dokumen 1, Dokumen 2

Saat orang mencari "Hitam", sistem tidak membaca seluruh dokumen, melainkan langsung melihat kamus kata "Hitam" dan seketika tahu bahwa ia harus menarik Dokumen 1 dan 2 dalam hitungan milidetik!

Kelebihan dan Kekurangan

  • Kelebihan (Plus): Sangat ahli dalam Full-Text Search (Pencarian teks panjang). Memiliki fitur Fuzzy Search, sehingga jika *user* mengetik "Kuaos", ia tetap tahu bahwa maksudnya adalah "Kaos". Elasticsearch juga sangat gampang didistribusikan ke puluhan server.
  • Kekurangan (Minus): Rakus memori! Menjalankan Elasticsearch membutuhkan alokasi RAM yang sangat besar (bisa memakan 4GB RAM hanya untuk bernapas saat *idle*). Sangat mahal untuk proyek kecil. Ia juga buruk jika disuruh memproses transaksi uang (ACID).

Praktik Umum: Perusahaan biasanya menyimpan data utama (Sumber Kebenaran) di PostgreSQL. Lalu, setiap ada barang baru, datanya dikloning dan dilempar ke Elasticsearch. Fungsi Pencarian di Frontend akan diarahkan ke Elasticsearch, sementara fungsi Pembayaran tetap diarahkan ke PostgreSQL.

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates