Pencarian Cerdas dengan MySQL FULL TEXT INDEX
Saat ini, hampir semua aplikasi berbasis data memerlukan fitur pencarian data. Hampir semua developer menggunakan klausa SQL LIKE %frasa pencarian% dalam implementasinya. Klausa ini digunakan karena selain menjadi standar ANSI SQL dan didukung oleh semua DBMS, juga mudah dipakai. Namun demikian, klausa ini memiliki banyak kelemahan. Salah satunya adalah fleksibilitas. Katakanlah saya memiliki baris data yang memiliki kata-kata:
/Band Rock/Bon Jovi/Midnight in Chelsea
Dengan klausa LIKE, saya hanya bisa mencari dengan kata pencari: Bon Jovi, atau Band Rock, atau Midnight in Chelsea. Kalau saya mencari dengan “Rock Bon Jovi”, baris ini dianggap tidak cocok dengan kata pencarian. Klausa LIKE hanya bisa mencari kata-kata yang satu frase. Dengan demikian, sebenarnya cara ini kurang sesuai jika diaplikasikan pada mesin pencari.
Terima kasih kepada MySQL. Database yang sangat populer ini memiliki fitur yang bernama FULL TEXT INDEX. Fitur ini adalah sebuah index database yang berisi teks. Analoginya persis dengan index buku. Dengan fitur ini, kita bisa membuat mesin pencari sederhana yang mencari berdasarkan index yang disimpan di kolom yang telah di-index dengan FULL TEXT INDEX. Anda dapat mengaktifkan INDEX ini di PHPMyAdmin dengan mencentang check box Full Text Index. Atau jika dengan command line, seperti ini:
ALTER TABLE tabel ADD FULLTEXT( kolom )
Dengan fitur ini, kita bisa melakukan pencarian dengan query seperti ini:
SELECT * FROM tabel WHERE MATCH(kolom) AGAINTS (‘rock bon jovi’)
Statement ini akan mencari pada kolom1 yang telah diindex dengan kata pencarian “rock bon jovi”. Baris pada contoh di atas jelas akan dimasukkan pada hasil pencarian.
Cara ini jauh lebih cerdas daripada cara pencarian dengan menggunakan klausa LIKE yang lebih banyak tidak cocoknya daripada cocoknya. Hehehe…
Bahan Bacaan Lebih Lanjut:
8 Comments
det
April 22, 2008wah masih suka utak-atik yang teknis2 begitu ya cak?
ndop
April 22, 2008aku ndak mudeng.. yg saya tau ya si mbah gugel.. mbah gugel sama mai esqiel bedanya apa ya?
*gaptek mode on*
adams
April 22, 2008oooh…. gitu yah?
*masih bingung*
Mus_
April 23, 2008sudah berbulan-bulan belajar mysql.
masih bingung.
Galih Satria
April 23, 2008#det:
wha lha iya, lhawong sumber penghidupannya dari sini je
#all:
mohon maaf kalau kurang jelas, ini lebih sebagai catatan pribadi saya daripada sebuah tutorial. tutorial yang lebih detail akan saya turunkan setelah ini. oke
Donny Reza
April 25, 2008Hehe, nice tips. Saya meskipun sering pake MySQL, tapi males ngulik-ngulik
)
neng ucrit
May 14, 2010keren memang
katanya pencarian kata menggunakan “LIKE” sangatlah tidak baik untuk data yang besar.
ikha
June 1, 2010full text search berlaku untuk kata dengan jumlah karakter lebih dari 3 ya,,,?