Arama Motoru Ajanlari Search Engine Spiders
Arama Motoru Ajanlari
(Search Engine Spiders)
Özet
Internet günden güne büyüyor, milyonlarca dosya ve resim
barındırıyor. Bununla birlikte insanlar bilgilere ulaşabilmek için
çevrimiçi servislere bel bağlıyorlar. Tabi ki bu bilgilere en
sağlıklı ulaşabilecekleri servisleri tercih ediyorlar. Bu nedenle
Arama Motorları büyük önem kazanıyor. Arama motorları dediğimizde
ilk akla gelen internet tarayıcımızda gördüğümüz sayfa olsa da,
aslında işin arka tarafında birçok servis çalışmakta. Bu servisler
kullanıcıların ulaşacağı verilerin sağlıklı, taze ve mantıklı
olmasını sağlıyor. Arama Motoru Ajanları (Search Engine Agents) da
bu servislerin bel kemiğini oluşturuyor. Temel olarak aranacak olan
bilgileri tarayıp, düzgün ve belirli bir mantık çerçevesinde
kaydediyorlar. Bu yazıda Arama Motoru Ajanlarının çıkış nedenleri ve
mimarisi hakkında bilgiler bulunmaktadır.
Giriş
Bizim arama motorlarında arama yapmamızdan önce o dosya ve
belgelerin bir şekilde bulunup kaydedilmesi gerekiyor. Bunlar için
Ajanlar veya örümcekler isminde özel yazılımlar geliştiriliyor. Bu
yazılımlar internet adreslerini ve içeriklerini kaydediyorlar. Bu
kayıtların yapıldığı sayfalardaki linkleri takip ederek sayfadan
sayfaya geçiyorlar. Böylelikle milyonlarca siteye ulaşabiliyorlar.
Bu programlar otomatik olarak her bulduğu linkleri gezmektedirler.
Bu ajanların bulduğu web adreslerinin içeriğini kaydeden başka
ajanlarda mevcut. Bu ajanlarda kaydettikleri verileri belirli
mantıkta sıkıştırıp saklamaktadır.
Bu ajanların dışında siteler için öncelik sırası belirlemek amacıyla
çeşitli ajanlar çalışmaktadır. Bunlar o siteye ne kadar link
verildiği, bu linklerin karşılığının olup olmadığını karşılaştırarak
o site için bir önem puanı vermektedir. Bu sayede önemli görülen
siteler aramalarda üst sıralarda yer alabilmektedir.
Ajanlar Nasıl Çalışır?
Ajanlar arama motorlarının birer parçası olarak arkaplanda
çalışmaktadır. Performans ve güvenilirlik en önemli noktalar.
Ajanların çalışma performansı internet bağlantısının hızına ve
bağlandığı sitenin hızına göre değişmektedir. Temel olarak ajanlar
aşağıdaki adımları takip etmektedir:
Sayfayı tamamen kaydet.
Kaydedilen sayfadayı parçalara ayırarak içerisindeki tüm
linkleri al.
Alınan tüm linkler için işlemi tekrar et.
Ajan herhangi bir Internet veya Intranet adresinden başlayarak
sayfaları kaydeder. Her kaydettiği sayfada yeni adresler ile
karşılaştığı için sürekli olarak kayıt işlemine devam edecektir.
Problemler
Internetin büyüme hızı ve web sayfalarının sayının artması
altında örümceklerimiz ezildi.Büyük çapta hizmet gösteren ajanlar
yüksek sayıda web adresi (URL) olması sebebiyle çeşitli problemlerle
karşılaşmaya başladılar. Hazır olan tüm sitelerini gezip, taramak ve
bunları hafızaya almak çok zor olmaya başladı. Diğer bir yandan bu
toplanan verileri diskte yazmakta performans açısından çokda verimli
olmamaya başladı. Milyarlarca web sitesini kaydedebilmek için
terabytelarca iyi yönetilen disk alanı gerekiyor.
Evre Takası
Sağladıkları avantajlar ile birlikte ajanlarımızın yol açtığı
sorunlarda meydana gelmeye başladı. Aynı anda birçok sayfası
kaydedilen bir sunucuda fazladan bir yük binmeye ve yavaşlamalara
yol açmaya başladı. Bu nedenle daha kibar ajanların hazırlanması
gerekti, aynı anda sunucudan fazla veri çekmemeleri için.
Ajanların aynı sunucu üzerinden aynı anda veri çekmesini düzenlemek
amacıyla Evre Takası (Phase Swapping) metodunu kullanıyoruz. Takas
etmek problemin tek çözümü olmasa da başarılı çözümlerden bir
tanesi.
Aşağıdaki şekildeki gibi aynı sunuculardaki verileri parçalara
ayırıyoruz. Daha sonra aynı satırda olan adreslerden sadece bir
tanesine gidip, diğer satıra gidiyoruz. Zamanımız arttığı için sütun
sayımızı da artıyoruz. Bunun neticesinde aşağıda ki şekilde görülen
çapraz şekilde giden bir yapı oluşuyor. Bu yapıyla birlikte aynı
anda aynı sunucu üzerinden veri çekmemiş oluyoruz.
Evre Takası
Site Adresi Sıkıştırma (URL Compression)
Ajanlarımız tüm adresleri kaydetmek durumundalar. Bunun için bu
adresleri saklarken bir sıkıştırma algoritması kullanmamız
gerekiyor, bu algoritma hem hızlı saklanabilmeli, aranabilmeli aynı
zaman hızlı geri dönüşüm sağlayabilmeli.
Kullanacağımız algoritma sunucuların birbirleriyle bağlanma
ilkelerine benziyor. Algoritmamız da site adresleri kök (root) ve
kuyruk (tail) olmak üzere ikiye ayrılıyor. Bir kök dizinin altında
ağaç yapısı şeklinde kuyruklar sıralanıyorlar, bu kuyruklar
sıralanırken çeşitli köklere bağlanabiliyorlar. Aynı site için
birden fazla adres olabileceği içinde yansılar ayrıca belirtiliyor,
böylece farklı adreste yayın yapan iki farklı site 2 kez
kaydedilmemişte oluyor.
Arama Motorları ;Bilgi Tekrarları
Anahtar Kelimeler
Örümcek (Spider), İndeksleyici (Indexer), Depolama (Repository),
Döküman İndeksleyici (Document indexer), Robot
Kaynaklar
* High Performance Large Scale Web Spider Architecture, Kasom
Koht-arsa ve Surasak Sanguanpong
* A Bandwidth Friendly Search Engine, Clare Bradford ve Ian.W.Marshall
* Exploiting a Search Engine to Develop More Flexible Web Agents,
Shou-de Lin ve Craig A. Knoblock
* How search engine work and a web crawler application, Monica
Peshave
* http://www-db.stanford.edu/~backrub/google.html
|