Pengertian
Search Engine
Pengertian
Search Engine
Mesin pencari web atau yang lebih dikenal dengan istilah web search engine merupakan program komputer yang dirancang untuk mencari informasi yang tersedia didalam dunia maya. Berbeda halnya dengan direktori web (seperti dmoz.org) yang dikerjakan oleh manusia untuk mengelompokkan suatu halaman informasi berdasarkan kriteria yang ada, web search engine mengumpulkan informasi yang tersedia secara otomatis.
Mesin pencari web atau yang lebih dikenal dengan istilah web search engine merupakan program komputer yang dirancang untuk mencari informasi yang tersedia didalam dunia maya. Berbeda halnya dengan direktori web (seperti dmoz.org) yang dikerjakan oleh manusia untuk mengelompokkan suatu halaman informasi berdasarkan kriteria yang ada, web search engine mengumpulkan informasi yang tersedia secara otomatis.
Cara
Kerja Search EngineMesin
pencari web bekerja dengan cara menyimpan hampir semua informasi
halaman web, yang diambil langsung dari www. Halaman-halaman ini
diambil secara otomatis. Isi setiap halaman lalu dianalisis untuk
menentukan cara mengindeksnya (misalnya, kata-kata diambil dari
judul, subjudul, atau field khusus yang disebut meta tag).
Data
tentang halaman web disimpan dalam sebuah database indeks untuk digunakan dalam pencarian selanjutnya. Sebagian mesin pencari, seperti Google, menyimpan seluruh atau sebagian halaman sumber (yang disebut cache) maupun informasi tentang halaman web itu sendiri.
Ketika seorang pengguna mengunjungi mesin pencari dan memasukkan query, biasanya dengan memasukkan kata kunci, mesin mencari indeks dan memberikan daftar halaman web yang paling sesuai dengan kriterianya, biasanya disertai ringkasan singkat mengenai judul dokumen dan terkadang sebagian teksnya.
Mesin pencari lain yang menggunakan proses real-time, seperti Orase, tidak menggunakan indeks dalam cara kerjanya. Informasi yang diperlukan mesin tersebut hanya dikumpulkan jika ada pencarian baru. Jika dibandingkan dengan sistem berbasis indeks yang digunakan mesin-mesin seperti Google, sistem real-time ini unggul dalam beberapa hal seperti informasi selalu mutakhir, (hampir) tak ada broken link, dan lebih sedikit sumberdaya sistem yang diperlukan (Google menggunakan hampir 100.000 komputer, Orase hanya satu.). Tetapi, ada juga kelemahannya yaitu pencarian lebih lama rampungnya
tentang halaman web disimpan dalam sebuah database indeks untuk digunakan dalam pencarian selanjutnya. Sebagian mesin pencari, seperti Google, menyimpan seluruh atau sebagian halaman sumber (yang disebut cache) maupun informasi tentang halaman web itu sendiri.
Ketika seorang pengguna mengunjungi mesin pencari dan memasukkan query, biasanya dengan memasukkan kata kunci, mesin mencari indeks dan memberikan daftar halaman web yang paling sesuai dengan kriterianya, biasanya disertai ringkasan singkat mengenai judul dokumen dan terkadang sebagian teksnya.
Mesin pencari lain yang menggunakan proses real-time, seperti Orase, tidak menggunakan indeks dalam cara kerjanya. Informasi yang diperlukan mesin tersebut hanya dikumpulkan jika ada pencarian baru. Jika dibandingkan dengan sistem berbasis indeks yang digunakan mesin-mesin seperti Google, sistem real-time ini unggul dalam beberapa hal seperti informasi selalu mutakhir, (hampir) tak ada broken link, dan lebih sedikit sumberdaya sistem yang diperlukan (Google menggunakan hampir 100.000 komputer, Orase hanya satu.). Tetapi, ada juga kelemahannya yaitu pencarian lebih lama rampungnya
Spider
Spider merupakan
program yang dimiliki search
engine yang
bekerja untuk mengambil halaman-halaman yang di temukannya, hampir
mirip dengan cara kerja browser.
Perbedaannya
adalah jika Spider tidak
kelihatan karena ditujukan kepada mesin yang langsung disimpan
pada database mereka,
sedangkan browser ditujukan
untuk manusia yang langsung menampilkan informasi baik berupa teks,
gambar dan sebagainya.
Crawler
Crawler
merupakan program yang dimiliki search
engine yang
bertugas menelusuri setiap link yang ada dalam suatu website.
Tugas Crawler adalah membantu spider untuk menentukan arah yang
akan ditujunya sekaligus mengevaluasi link tersebut.
Indexer
Indexer
merupakan mesin yang dimiliki search
engine yang
bertugas mendeskripsikan suatau halaman website dan menganalisa
berbagai unsur di dalamnya, seperti pada penulisan title, penulisan
huruf, keyword-keyword yang ada dalam konten sehingga dengan demikian
akan mengenal web tersebut lebih jauh lagi terutama dalam menganalisa
suatu keyword yang ada di dalamnya.
Database
Komponen search
engine ini
merupakan tempat meletakkan data-data sebelumnya yang telah di
download oleh Spider serta tempat yang tadinya digunakan oleh indexer
dalam menganalisa
suatu halaman website.
Result
Engine
Result
engine sendiri
merupakan program yang bertugas menggolongkan suatu website dan
menentukan perangkingan dalam hasil pencarian yang diminta oleh user.
Program ini menganalisa siapakah yang layak masuk kriteria utama
dalam perangkingan suatu keyword yang diminta oleh pengguna.
Dan
tentu saja yang ditampilkan terlebih dahulu dihasil pencarian adalah
website yang telah memenuhi peraturan dan kaedah-kaedah yang
ditentukan search
engine.
Web
Server
Sedang
bagian yang terakhir adalah web server. Bagian ini merupakan komputer
central yang ada pada search
engine yang
yang melayani permintaan kepada user yang merupakan umpan balik dari
permintaan user tersebut.
Itulah
uraian dari komponen-kompenen yang dimiliki search
engine,
sehingga dengan mengenalnya lebih jauh lagi terutama yang berkaitan
dengan unsur-unsurnya, kita mendapatakan pemahaman yang menyeluruh
tentang cara
kerja search engine dan
tentunya akan memudahkan kita dalam mengoptimasi website agar menjadi
yang terbaik di hasil pencarian.
- Web Crawling, dimana dikenal juga dengan sebutan spider. Pertama kali search engine harus mencari file dari databasenya sebelum menampilkan alamatnya, dibantu dengan sebuah software khusus yaitu spider yang dapat memilih informasi yang ada baik dalam memilih informasi yang ada baik dalam ratusan juta halaman web sekalipun serta membuat daftar kata-kata didalam database, proses inilah yang disebut dengan Web Crawling.
- Indexing, dimana point ini bekerja menyimpan index dari tiap-tiap file yang ditemukan beserta alamatnya. Selain itu dengan proses index dapat juga mempercepat kerja sistem spidering untuk mencari file dalam website yang paling banyak digunakan.
- Searching, yang lebih kearah penyediaan fasilitas bagi pengguna untuk mencari kata-kata atau kombinasi kata paling relevan yang ditemukan dalam index tersebut.
Biasanya data tentang halaman web disimpan didalam suatu index database untuk digunakan di query kemudiannya. Beberapa search engine, seperti google, menyimpan semua atau sebagian dari halaman sumber (yang disebut dengan cache) begitu juga dengan informasi mengenai halaman web. Halaman yang cached ini selalu memegang pencarian teks karena halaman tersebut yang terindex, sehingga dapat bermanfaat manakala isi dari halaman tersebut telah diperbaharui dan halaman tersebut tidak lagi digunakan.
Jika user datang dan menggunakan search engine serta membuat query, dengan memberi kata kunci yang khas, search engine akan melihat index dan memberikan suatu daftar halaman web yang terbaik sesuai dengan kata kuncinya. Hampir semua search engine mendukung penggunaan boolean operator seperti AND, OR, dan NOT untuk lebih mengspesifikasikan query pencarian.
Secara
garis besar sebuah web crawler memiliki 3 bagian, yaitu:
1. Penentu url (alamat web) tujuan
2. Downloader web
3. Pemarsing (pemroses) hasil downloadan
1. Penentu url (alamat web) tujuan
2. Downloader web
3. Pemarsing (pemroses) hasil downloadan
Mari
kita bahas satu persatu.
1.
Penentu url(alamat web) tujuan.
Bagian ini akan mengambil 1 url dari database yang belum diproses.
Bagian ini akan mengambil 1 url dari database yang belum diproses.
function
db_get_url()
{
$sql
= "SELECT id, url FROM tbl_url WHERE status='0' ORDER BY id
LIMIT 1";
$rs
= mysql_query($sql);
$url
= '';
if
($data = mysql_fetch_array($rs))
{
$url
= $data['url'];
$sql
= "UPDATE tbl_url SET status='1' WHERE id='". $data['id'].
"' ";
$rs
= mysql_query($sql);
}
if
($url == '') $url = 'http://planet.terasi.net';
return
$url;
}
2.
Downloader Web
Fungsi getURL dibawah ini akan menerima $url berisi url tujuan dan akan mengembalikan html nya, sebenarnya kita bisa menggunakan fungsi file($url).
Fungsi getURL dibawah ini akan menerima $url berisi url tujuan dan akan mengembalikan html nya, sebenarnya kita bisa menggunakan fungsi file($url).
function
getURL($url, $delay=0) {
$result =
"";
$url =
trim($url);
$delay =
intval($delay);
if
($url != "") {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
if ($delay != 0) {
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, $delay);
}
else {
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
}
$result = curl_exec($ch);
curl_close($ch);
}
return($result);
}
3.
Pemarsing (pemroses) hasil downloadan
Fungsi parseHTML akan menerima string html kemudian mengekstrak semua link yang ada di string tersebut. Link tadi akan diambil domainnya saja untuk kemudian disimpan ke dalam database.
Fungsi parseHTML akan menerima string html kemudian mengekstrak semua link yang ada di string tersebut. Link tadi akan diambil domainnya saja untuk kemudian disimpan ke dalam database.
function
parseHTML($html)
{
if
(preg_match_all("/<a href=\"(.*?)\"/i", $html,
$match)) {
foreach
($match[1] as $row) {
$domain
= getDomain($row);
if
($domain != '')
{
db_insert_url($domain);
}
}
}
}
Berikut
ini adalah source code lengkapnya.
<?php
$db
= mysql_connect('localhost', 'phpkita', 'phpkita');
mysql_select_db('db_phpkita',
$db);
//loop
terus aja
while
(true)
{
$url
= db_get_url();
$html
= getURL($url);
db_update_html($url,
$html);
parseHTML($html);
}
mysql_close($db);
exit;
/*
*
fungsi-fungsi
*/
function
db_get_url()
{
$sql
= "SELECT id, url FROM tbl_url WHERE status='0' ORDER BY id
LIMIT 1";
$rs
= mysql_query($sql);
$url
= '';
if
($data = mysql_fetch_array($rs))
{
$url
= $data['url'];
$sql
= "UPDATE tbl_url SET status='1' WHERE id='". $data['id'].
"' ";
$rs
= mysql_query($sql);
}
if
($url == '') $url = 'http://planet.terasi.net';
return
$url;
}
function
getURL($url, $delay=0) {
$result =
"";
$url =
trim($url);
$delay =
intval($delay);
if
($url != "") {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
if ($delay != 0) {
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, $delay);
}
else {
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
}
$result = curl_exec($ch);
curl_close($ch);
}
return($result);
}
function
parseHTML($html)
{
if
(preg_match_all("/<a href=\"(.*?)\"/i", $html,
$match)) {
foreach
($match[1] as $row) {
$domain
= getDomain($row);
if
($domain != '')
{
db_insert_url($domain);
}
}
}
}
function
db_insert_url($url)
{
$url
= mysql_real_escape_string($url);
$sql
= "INSERT INTO tbl_url (url, html, status) VALUES ('$url', '',
'0')";
$rs
= mysql_query($sql);
}
function
db_update_html($url, $html)
{
$url
= mysql_real_escape_string($url);
$html
= mysql_real_escape_string($html);
$sql
= "UPDATE tbl_url SET html='$html' WHERE url='$url' ";
$rs
= mysql_query($sql);
}
function
getDomain($url)
{
$result
= '';
if
(preg_match("/^(http:\/\/[\d|\w|-|_|.]+)/i", $url, $match))
{
$result
= $match[1];
}
return
$result;
}
?>
O,
jangan lupa untuk membuat table nya juga.
CREATE
TABLE `tbl_url` (
`id`
int(8) NOT NULL AUTO_INCREMENT,
`url`
varchar(128) NOT NULL,
`html`
text NOT NULL,
`status`
int(1) NOT NULL DEFAULT '0',
PRIMARY
KEY (`id`),
UNIQUE
KEY `url` (`url`)
)
ENGINE=MyISAM;
0 komentar:
Posting Komentar