Minggu, 27 Oktober 2013

FULL TEXT SEARCHING

Full Text Searching
Salah satu metode yang dapat digunakan untuk melakukan proses pencarian adalah dengan memanfaatkan fungsi indexing pada database. Full Text Searching  merupakan proses pencarian data  pada database  MySQL.

            Definisi
Berikut adalah definisi atau pengertian dari beberapa istilah yang sering digunakan dalam full text searching  :
a. MySQL, adalah sebuah perangkat lunak sistem manajemen basis data SQL atau DBMS yang bersifat multithread dan multiuser yang dikembangkan pertama kali oleh Michael Wildenius, bersifat free software dengan lisensi dibawah GPU/GPL (General Public license).
b. Full Text, adalah fungsionalitas yang terdapat pada database (dalam hal ini database MySQL) yang memungkinkan user untuk melakukan pencarian tertentu dalam tabel dengan cara melakukan perbandingan string.
c. Boolean Search, adalah sebuah metode pencarian yang memungkinkan pengguna untuk mempersempit hasil pencarian dengan menggunakan operator Boolean.
d. Boolean Operator, adalah sistem logis deduktif yang digunakan untuk mempersempit hasil pencarian dengan menggunakan operator AND, OR, XOR dan lainnya.

Prasyarat
Sebelum mengenal lebih jauh mengenai Full Text Searching ada beberapa hal (prasyarat) yang perlu diketahui bersama :
a. Full Text Searching mengacu pada fungsionalitas yang terdapat pada database MySQL;
b. Full text index pada MySQL adalah index dengan tipe FULLTEXT;
c. Full text index hanya dapat digunakan pada database MyISAM dan dapat digunakan untuk kolom dengan tipe CHAR, VARCHAR, atau TEXT;
d. Full text index dapat dibuat saat proses pembuatan tabel dengan perintah “CREATE TABLE” atau saat perubahan struktur table yang sudah ada dengan menggunakan perintah “ALTER TABLE” atau “CREATE INDEX”.

Skenario
Tulisan ini menggunakan tabel article sebagai contoh untuk menggambarkan penggunaan Full-text Searching di database MySQL, adapun struktur tabel article yang digunakan adalah sebagai berikut :

CREATE TABLE IF NOT EXISTS article (id int(10) NOT NULL AUTO_INCREMENT, title
varchar(150) NOT NULL, body text NOT NULL, PRIMARY KEY (id))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

 
 






Adapun contoh data yang digunakan adalah sebagai berikut :





INSERT INTO `article` (`id`, `title`, `body`) VALUES
(1, 'PHP & Mysql : Tutorial Dasar', 'Pada tutorial kali ini, kita akan mencoba
melakuka...'),
(2, 'MySQL - Pengenalan', 'Tutorial MySQL di situs ini memang buat kamu-kamu
...'),
(3, 'Mysql', 'Tutorial penggunaan database masa kini...'),
(4, 'Mysql & Oracle Database', 'Database masa kini...'),
(5, 'Implementasi Oracle', 'Bagaimana menggunakan oracle...'),
(6, 'SqlLite Database', 'Penggunaan SqlLite dan cpanel...'),
(7, 'let it be', 'by The Beatles...');
 
 











Pencarian data secara “konvensional” biasanya dilakukan dengan menggunakan perintah SQL LIKE. Contoh : pencarian artikel yang mengandung kata MySQL dapat dilakukan dengan perintah :


SELECT * FROM article WHERE title like'%mysql%';

 
 





Penggunaan operator like pada MySQL untuk jumlah data yang besar akan menyebabkan
turunnya performa.

Implementasi
Full--Text Searching dapat menjadi pilihan untuk melakukan fungsi pencarian pada
database MySQL. Syarat untuk dapat menjalankan fungsi Full--Text Searching adalah dengan menambahkan index dengan tipe FULLTEXT pada field yang ingin dicari. Berikut perintah untuk menambahkan Full-Text Indexing  pada field title dan body pada tabel article :


ALTER TABLE article ADD FULLTEXT(title);
ALTER TABLE article ADD FULLTEXT(body, title);

 
 








Berikut beberapa tipe penggunaan Full-Tex Searching dengan menggunakan data contoh pada tabel article :
a. Natural Language
Secara default penggunaan Full-Text Searching termasuk dalam tipe Natural Language.
b. Boolean
Tipe Boolean mengijinkan penggunaan operator pada keyword pencarian seperti – atau +.
Berikut daftar operator yang dapat digunakan :
• [non operator] secara default memiliki arti “atau” / “or” ;
• + keyword harus terdapat pada semua hasil yang didapat;
• - keyword tidak boleh ada pada hasil yang didapat;
• > keyword termasuk pada hasil yang didapat dengan urutan berdasar ranking
secara increase;
• < keyword termasuk pada hasil yang didapat dengan urutan berdasar ranking
secara decrease;
• () digunakan untuk melakukan grouping/pengelompokan dan dapat menambahkan
operator lain untuk meningkatkan relevansi hasil pencarian;
• ~ berfungsi sebagai operator negasi, jika sebuah keyword diberikan tanda ~,
mengakibatkan relevansi/score minus;
• * merupakan operator wildcard;
• “ digunakan pada awal dan akhir keyword yang terdiri dari dua kata atau lebih.

c. Query Expansion
Query Expansion merupakan salah satu fitur yang bias digunakan ketika pencarian

hanya mengandung keyword yang sedikit (hanya satu kata).

Tidak ada komentar:

Posting Komentar