Membuat Search Engine dengan ht://Dig

Hendro Wicaksono hwicaksono@telkom.net

Salah satu kriteria desain suatu situs web dianggap baik adalah bila pemakai situs tersebut mudah dalam mencari informasi. Artinya, tersedia navigasi dan alat bantu mencari informasi yang baik. Salah satu alat bantu mencari informasi yang sering digunakan adalah fasilitas penelusuran dengan kata kunci (keyword) baik melalui database atau free-text. Dalam tulisan ini, penulis mencoba memaparkan bagaimana cara membuat fasilitas penelusuran free-text menggunakan program ht://Dig (http://www.htdig.org) yang dibuat untuk sistem operasi Unix dan variannya (Linux, FreeBSD). Dengan lisensi GPL (General Public License), anda bisa mendapatkan source code program, dan memodifikasinya sesuai dengan kebutuhan anda. Anda juga bisa mendapatkan format source lain (RPM) atau binary yang sudah di-port untuk OS tertentu (untuk HP-UX, RPM RedHat Linux, dan Windows NT).

Apa itu ht://Dig

Kalau anda tahu prinsip cara kerja search engine (seperti altavista), maka anda tidak akan kesulitan dalam memahami cara kerja ht://Dig. ht://Dig adalah suatu sistem pengindeksan dan penelusuran WWW. ht://Dig tidak didesain untuk “bersaing” dengan powerful search engine seperti Lycos, Infoseek, Google dan Altavista, tetapi untuk lingkup yang lebih kecil seperti, intranet atau jaringan kampus). Beberapa fitur ht://Dig :

1. Penelusuran Intranet. ht://Dig mempunyai kemampuan untuk mengindeks dan menelusur ke beberapa server sekaligus pada sebuah jaringan dengan “berakting” sebagai browser web.

2. Gratis. ht://Dig dirilis dengan lisensi GNU General Public License.

3. Mendukung Robot Exclusion. Robot Exclusion adalah suatu standar yang digunakan agar bagian-bagian tertentu dari suatu situs web tidak diindeks dan ditelusur oleh Search Engine Robot.

4. Penelusuran Ekspresi Boolean. Mendukung penelusuran kompleks menggunakan logika Boole.

5. Hasil penelusuran yang bisa dikustom. Output penelusuran bisa dibuat sesuai dengan kebutuhan dengan menyediakan template HTML.

6. Fuzzy Searching. Penelusuran bisa dilakukan menggunakan berbagai algoritma yang bisa dikustom, seperti: exact, soundex, metaphone, common word endings, sinonim.

7. Menelusur file HTML dan teks. Bisa menelusur dokumen HTML dan file teks.

8. Penambahan kata kunci (keyword) ke dokumen HTML. Kata kunci bisa ditambahkan ke dokumen HTML dan tidak akan terlihat sewaktu dokumen dibuka.

9. Peringatan lewat e-mail untuk dokumen yang sudah expired.

10. Bisa mengindeks server yang diproteksi dengan username dan password.

11. Dengan menggunakan external parser, ht://Dig juga mampu mengindeks file PDF (Portable Document Format) dan Microsoft Word.

Instalasi Apache Web Server dan ht://Dig

Penulis menggunakan OS FreeBSD 3.3. Tetapi cara yang penulis sebutkan disini tidaklah untuk FreeBSD saja. Penulis juga juga sudah melakukan ujicoba pada Linux RedHat dan berhasil dengan baik. Web server yang digunakan adalah Apache.

Sekarang pertama kali, download file source Apache Web Server dari http://www.apache.org. Misalnya apache_x.x.x.tar.gz. Simpan di direktori /temp. (Anda harus login sebagai “root” untuk melakukan ini semua).

Kemudian buat direktori /usr/local/apache:

# mkdir /usr/local/apache

Masuk ke direktori /temp:

# cd /temp

Ekstrak file yang sudah di download:

# gunzip -d -c apache_x.x.x.tar.gz | xvf –

Masuk ke direktori apache_x.x.x:

# cd apache_x.x.x

Lakukan langkah-langkah berikut ini:

# ./configure –prefix=/usr/local/apache

# make

# make install

Sekarang, anda bisa menjalankan web server apache:

# cd /usr/local/apache/bin

# ./apachectl start

Kedua, download ht://Dig dari http://www.htdig.org. Misal, nama file-nya htdig-x.x.x.tar.gz. Simpan di direktori /temp.

Dan buat direktori /usr/local/htdig:

# mkdir /usr/local/htdig

Masuk ke direktori /temp:

# cd /temp

Ekstrak file yang sudah di download:

# gunzip -d -c htdig-x.x.x.tar.gz | xvf –

Masuk ke direktori htdig-x.x.x:

# cd htdig-x.x.x

Lakukan langkah-langkah berikut ini:

# ./configure –prefix=/usr/local/htdig

Lakukan sedikit perubahan pada file CONFIG dengan editor favorit anda (saya  suka vi editor):

# vi CONFIG

Ubah konfigurasi:

CGIBIN_DIR = /usr/local/htdig/cgi-bin

IMAGE_DIR = /usr/local/htdig/htdocs/htdig

SEARCH_DIR = /usr/local/htdig/htdocs/htdig

Kemudian setelah disimpan, lakukan:

# make

# make install

Ok, Apache dan ht://Dig sudah terinstall dengan baik. Sekarang kita lakukan sedikit perubahan pada file konfigurasi Apache.

Masuk ke direktori /usr/local/apache/conf:

# cd /usr/local/apache/conf

Buka file httpd.conf dengan editor yang biasa anda pakai:

# vi httpd.conf

Kemudian tambahkan:

Alias /htdig/ “/usr/local/htdig/htdocs/htdig/”

ScriptAlias /htdig-cgi/ “/usr/local/htdig/cgi-bin/”

<Directory /usr/local/htdig/cgi-bin/>

AllowOverride None

Options ExecCGI

</Directory>

Setelah disimpan, saatnya anda merestart Apache:

# /usr/local/apache/bin/apachectl restart

Bagaimana ht://Dig Bekerja?

Ada 3 proses yang dilakukan oleh ht://Dig, yaitu: Digging, Merging, dan Searching. Digging adalah proses membuat database dari dokumen-dokumen yang diindeks. Merging adalah proses konversi agar indeks bisa dicari dengan cepat. Searching adalah proses penelusuran dokumen-dokumen melalui database yang telah dibuat.

Untuk penulisan artikel ini, penulis akan mencoba membuat database untuk manual Apache yang juga diinstal ketika instalasi program Apache. Misalnya, situs kita mempunyai alamat IP 192.168.2.1, maka biasanya manual Apache terletak di http://192.168.2.1/manual/. Pada halaman index.html dari manual tersebut, terdapat link untuk melakukan penelusuran kata kunci manual Apache secara free-text ke situs web http://www.apache.org. Sekarang kita akan buat fasilitas penelusuran untuk manual Apache yang tidak kalah ok tanpa harus koneksi ke internet. Sekarang kita akan mengubah link di dokumen index.html dulu menuju situs web kita.

# cd /usr/local/apache/htdocs/manual

# vi index.html

Kemudian ubah:

<A HREF=”http://www.apache.org/search.html”&gt; menjadi

<A HREF=”http://192.168.2.1/htdig/search.html”&gt;

Buat direktori khusus untuk database yang akan kita buat:

# mkdir /usr/local/htdig/db/apache_manual

Masuk ke direktori konfigurasi ht://Dig:

# cd /usr/local/htdig/conf

Buat file konfigurasi dari template:

# cp htdig.conf apache_manual.conf

Edit apache_manual.conf:

# vi apache_manual.conf

Lakukan beberapa perubahan seperti dibawah ini:

database_dir : /usr/local/htdig/db/apache_manual/

start_url : http://192.168.2.1/

Bila kita ingin ht://Dig mengindeks beberapa server sekaligus, anda bisa masukkan beberapa URL lain dan pisahkan dengan spasi:

start_url : http://192.168.2.1/ http://192.168.2.3/ http://www.situsku.com/

Sekarang edit file search.html:

# cd /usr/local/htdig/htdocs/htdig

# vi search.html

Lakukan beberapa perubahan:

<form method=”post” action=”/cgi-bin/htsearch”> menjadi <form method=”get” action=”/htdig-cgi/htsearch”>

Perubahan metode Post menjadi Get hanyalah untuk memudahkan kita dalam proses debug. Perubahan lainnya:

<input value=”htdig”> menjadi <input type=”hidden” value=”apache_manual”>

Tambahkan langkah-langkah berikut,

Proses Digging:

# /usr/local/htdig/bin/htdig -c apache_manual.conf

Proses Merging:

# /usr/local/htdig/bin/htmerge -c apache_manual.conf

Selesai sudah proses yang paling sederhana dari ht://Dig, lihat dengan browser, apa semua ini bekerja.

Membuat Robot Exclusion

Salah satu masalah dengan model pengindeksan dokumen web yang menggunakan Robot atau webcrawler adalah terindeksnya dokumen-dokumen yang tidak diinginkan. Untuk itu dibuatlah suatu standar yang mencegah diindeksnya dokumen-dokumen web oleh webcrawler atau sering disebut dengan Robot Exclusion. Untuk tahu lebih lanjut mengenai Robot Exclusion Standard, silahkan baca di http://info.webcrawler.com/mak/projects/robots/norobots.html.

Sekarang kita akan buat contoh Robot Exclusion sederhana untuk sebuah situs web (misalnya: http://www.coba-coba.com), yang tidak membolehkan webcrawler untuk mengindeks direktori “/data/rahasia/” dan direktori “/percobaan/” dan file “index.html” yang terdapat di root Direktori.

Pertama, masuk ke root direktori web dan buatlah file teks dan beri nama “robots.txt”.

# cd /usr/local/apache/htdocs

# vi robots.txt

Kemudian tambahkan:

User-agent: *

Disallow: /data/rahasia/

Disallow: /percobaan/

Disallow: /index.html

Mengganti Microsoft Index Server dengan ht://Dig

Seperti sudah dijelaskan diawal tulisan ini, ht://Dig, dengan bantuan external parser, juga dapat mengindeks file-file MS-Word, RTF (Rich Text Format), Postscript, WordPerfect, dan PDF. Sudah ada yang pake MS Index Server? Fungsi dan cara kerja Index Server mirip dengan ht://Dig. Cuma ada beberapa perbedaan:

1. Setting Index Server jauh lebih rumit daripada ht://Dig

2. Karena hanya jalan di platform NT, maka persyaratan hardwarenya juga lebih berat.

3. Index Server hanya mampu mengindeks server dimana ia diinstall, sedangkan ht://Dig mampu mengindeks pada beberapa server sekaligus.

4. Jenis file yang mampu diindeks ht://Dig lebih banyak.

Sekarang kita mulai coba menggunakan external parser untuk mengindeks file PDF dan Word. Untuk PDF converter bisa menggunakan Xpdf dari http://www.foolabs.com/xpdf/download.html (penulis mendowload xpdf-0.91.tgz), dan untuk Word converter gunakan catdoc yang bisa didownload di http://www.fe.msk.ru/~vitus/catdoc/ (penulis mendownload catdoc-0.90.3.tar.gz). Simpan semuanya di direktori /temp

Sekarang buat direktori xpdf dan catdoc di /usr/local:

# mkdir /usr/local/xpdf

# mkdir /usr/local/catdoc

Instalasi xpdf :

# cd /temp

# gunzip -d -c xpdf-0.91.tgz | tar xvf –

# cd xpdf-0.91

# ./configure –prefix=/usr/local/xpdf

# make

# make install

Instalasi catdoc:

# cd /temp

# gunzip -d -c catdoc-0.90.3.tar.gz | tar xvf –

# cd catdoc-0.90.3

# ./configure –prefix=/usr/local/catdoc

# make

# make install

Kemudian download file “conv_doc.pl” di http://www.scrc.umanitoba.ca/htdig/rpms dan simpan di direktori /usr/local/bin. Kemudian edit file tersebut:

# vi conv_doc.pl

Lakukan sedikit perubahan:

$CATDOC = “/usr/local/catdoc/bin/catdoc”;

$CATPDF = “/usr/local/xpdf/bin/pdftotext”;

$PDFINFO = “/usr/local/xpdf/bin/pdfinfo”;

Kemudian masuk ke direktori konfigurasi ht://Dig:

# cd /usr/local/htdig/conf

Kemudian indeks file konfigurasi mana yang ingin anda edit (misalnya file apache_manual.conf) dan tambahkan:

external_parsers: application/msword->text/html /usr/local/bin/conv_doc.pl \

application/pdf->text/html /usr/local/bin/conv_doc.pl

Jangan lupa, setiap kita membuat data base baru, jangan lupa untuk mengubah nilai dari variabel “value” pada file “search.html”. Misalnya, pada contoh diatas, nama file konfigurasi adalah “apache_manual.conf”, maka nilai variabel “value” adalah “apache_manual”. Selanjutnya, lakukan proses Digging dan Merging seperti biasa.

Tulisan ini, bukanlah tulisan lengkap yang menerangkan detail cara penggunaan ht://Dig. Untuk mengetahui lebih detail penggunaan ht://Dig, anda harus tetap membaca manual atau dokumentasi yang bisa anda baca dari http://www.htdig.org.

Selamat mencoba!

~ oleh Thomas pada Maret 22, 2010.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: