Pengertian Search Engine


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.
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

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.


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

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

  1. 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
Mari kita bahas satu persatu.
1. Penentu url(alamat web) tujuan.
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).
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.
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