Category Archives: SQL

Pencarian yang Relevan Menggunakan Fitur Full Text pada MySQL

Biasanya, jika ingin mencari sesuatu pada database menggunakan SQL (Structured Query Language), kita menggunakan LIKE, contohnya:

SELECT * FROM judul WHERE judul LIKE '%merdeka%'

Query di atas akan mencari seluruh tabel judul yang mengandung tepat kata merdeka dan penambahan string sebelum dan sesudah kata merdeka.

Masalah utama muncul ketika kita hendak mencari isi yang kira-kira relevan dengan pencarian kita. Biasanya pencarian ini dilakukan pada konten teks yang mengandung banyak kata. Misalnya saja saya mempunyai sebuah lirik lagu seperti di bawah ini:

nadia kau keindahan wanita
pujaan setiap pria
seluruh dunia kau gapai
tetapi dirimu kini terhanyut
di lautan kesedihan
sadar tinggalkan dirimu yg sudah
merasa raih segalanya

reff: memang takkan semudah dirimu
balikkan telapak tangan
kadang kau pun harus merasakan
pahit manisnya dunia

Ketika melakukan pencarian, saya hanya ingat sepotong lirik saja, tapi tidak persis sama:

nadia kau pujaan setiap pria

Bagaimana agar pencarian menghasilkan hasil query yang relevan dengan string yang kita cari? Solusi yang sering dilakukan adalah memecah-mecah string yang dicari menjadi beberapa kata lalu mencari satu persatu menggunakan LIKE seperti contoh di atas. Namun, MySQL telah menyediakan query untuk menyederhanakan fungsi di atas, nama fitur tersebut adalah FULL TEXT.

Sebelum mengggunakan fulltext, kita harus mengaktifkan terlebih dahulu fitur full text tersebut dengan query:

ALTER TABLE nama_table ADD fulltext(attribute1, attribute2, attribute3)

Contoh penggunaan FULL TEXT adalah:

SELECT * FROM nama_table WHERE MATCH (attribute1, attribute2) AGAINST ('isi_string')

Jadi pada kasus lirik lagu di atas, kita bisa mencari menggunakan query di bawah ini:

SELECT * FROM lirik_lagu WHERE MATCH (lirik) AGAINST ('nadia kau pujaan setiap pria')