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:

Author: Galih Satriaji

Bookaholic, Workaholic. Chubby. That's me!

9 thoughts

  1. #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 🙂

  2. pas banget memang lagi cara pencarian multikategori dalam satu kolom kategori, misal 2,12,15,23,43 kalau pakai kategori LIKE %12% OR %15% hasilnya 2,12,23,15 padahal kategori 2 dan 23 tidak diperlukan, malah bikin ngawur.

    cuma pakai MATCH belum berhasil juga he he he.. HELP.. he he he

Leave a Reply

Your email address will not be published. Required fields are marked *