Mengenal Full Text Search: Mesin Pencari di Dalam Database
Pernah nggak sih kamu bingung saat mencari sesuatu di database? Misalnya, kamu punya tabel artikel yang isinya ribuan tulisan. Terus kamu butuh artikel yang mengandung kata “kopi hitam”. Kalau pakai LIKE biasa, hasilnya sering kacau: bisa kelewat karena urutan kata berbeda, atau malah muncul semua yang mengandung kata “kopi” dan “hitam” secara terpisah. Nah, di sinilah Full Text Search (FTS) jadi penyelamat.
FTS itu seperti Google versi mini yang tertanam di database. Dia nggak cuma cocok-cocokan teks persis, tapi juga paham arti pencarian kamu. Yuk, kita kenalan lebih dekat.
Inti Poin
1. Apa Itu Full Text Search?
Full Text Search adalah teknik pencarian teks yang memungkinkan kita mencari kata atau frasa dalam dokumen/konten dengan cara yang lebih cerdas. Bayangkan kamu punya lemari arsip berisi ribuan surat. Kalau manual, kamu harus baca satu per satu. Tapi FTS seperti petugas yang sudah mencatat isi setiap surat ke dalam indeks khusus—jadi saat kamu tanya “surat tentang kenaikan gaji”, dia langsung tahu di mana letaknya. Teknologi ini menggunakan struktur data bernama inverted index, yang memetakan setiap kata ke daftar lokasi dokumen. Hasilnya, pencarian jadi super cepat, bahkan di data raksasa.
2. Cara Kerja FTS (Versi Sederhana)
Pertama, database akan memecah teks menjadi token-token kecil (tokenisasi). Contoh, “Saya minum kopi” → [“saya”, “minum”, “kopi”]. Lalu token-token itu dibersihkan: diubah ke huruf kecil, hapus tanda baca, dan kadang di-stemming (misal “berlari” jadi “lari”). Setelah itu, setiap token disimpan di inverted index bersama ID dokumen asalnya. Saat kamu mencari “kopi hitam”, mesin akan cari token “kopi” dan “hitam” di indeks, lalu cocokkan dokumen mana yang mengandung kedua kata tersebut (dan bisa juga di-rank berdasarkan posisi kata, kedekatan, atau frekuensi).
3. Kelebihan FTS Dibanding LIKE
LIKE di SQL itu ibarat mencari jarum di tumpukan jerami dengan senter yang remang-remang. Dia melakukan sequential scan—artinya harus membaca setiap baris satu per satu. Untuk tabel kecil mungkin nggak terasa, tapi kalau jutaan baris? Bisa lemot banget. FTS menggunakan indeks, jadi cepat dan efisien. Selain itu, FTS bisa melakukan ranking (mengurutkan hasil berdasarkan relevansi), stemming (misal “makan” juga cocok dengan “memakan”), fuzzy search (toleransi typo), hingga synonym (misal “mobil” dan “motor” sama-sama kendaraan).