Arama motoru teknolojisinde günümüzde genel amaçlı arama motorlarının yanında belli bir alana yoğunlaşmış arama motoru örnekleri türemektedir. Belli bir alana yoğunlaşmış arama teknolojisine Dikey Arama adı verilmektedir. **Dikey arama** motorları belli bir alanda bilgi almak isteyen kullanıcıları hedefleyip, İnternet’te bulunan bilgileri bu pencere çerçevesinde tarayıp kullanıcılara sunar.

Dikey Arama Motoru Yapısı
-------------------------

Arama motorları görevlerine göre birden fazla karmaşık teknoloji içermektedir. Bir arama motoru: örümcekler, bilgi ayrıştırıcıları, indeksleyiciler ve arama bileşenlerinden oluşmaktadır. Bu bileşenler arasındaki iletişim yukarıdaki şekilde verilmiştir. Bütün bu bileşenlerin gerekli fonksiyonları yerine getirmeleri için yapay zeka (artificial intelligence), bilgi getirme (information retrieval), bilgi çıkarma (information extraction), doğal dil işleme (natural language processing), eş zamanlı programlama (concurrent programming) gibi teknolojiler kullanılmaktadır.

### Ağ Örümcekleri

Ağ Örümcekleri, dikey aramanın hedeflediği alan hakkında bilgi sahibi olan sayfaları bulmaya çalışır. Bu sayfalar içerisinde de yine dikey aramanın hedeflediği ana bilgiye sahip sayfaları çıkarmaya özelleşmiş, alandan haberdar bileşenlerdir. Bir örümcek sisteminin karşılaştığı temel zorluklar:

* Internet’teki sayfa sayısının çokluğu,
* sayfalardaki değişim hızı ve de
* Web teknolojileri ile dinamik sayfa yaratımıdır.

Bahsi geçen sorunların üstesinden gelmek için bir örümceğin sahip olması gereken prensipler vardır: 

* Seçim politikası: Örümceğin hangi sayfayı çalıştığı sunucuya indirip daha detaylı inceleyeceğine karar vermesidir.
* Yeniden uğrama politikası: Yine örümceğin bir sayfayı ne kadar zamanda bir yeniden indireceğini seçmesidir.
* Nezaket politikası; Bir Internet sitesi üzerindeki bilgileri indekslenmek amacı ile indirecek olan örümceğin bu sayfaları sunan sunucuyu yormamak ve Internet kullanıcılarına hizmetini engellememek için neler yapması gerektiğini bilmesidir.
* Paralellik politikası: Sayfaların çokluğu, sunucuya indirilecek olan verinin miktarı ve zaman kısıtlaması dolayısı ile hesaba katılan paralel programlama teknkleridir.

Bütün bu politikalar bir örümcek tasarlarken hesaba katılması gereken ve örümceği karmaşıklaştıran unsurlardır. Yine veri miktarının çokluğu verinin toplanması için farklı yeni veri saklama yöntemleri gerektirmektedir.

### Bilgi Ayrıştırıcıları

Bilgi ayrıştırıcıları, örümceğin hedef sayfa olarak işaretlediği İnternet sayfalarında bulunan bir kurala bağlı olmadan özgürce hazırlanmış bilgileri (free-text) yapısal bir şekle dönüştürmek istemektedir. Herhangi bir sayfada bulunan ve insanların algılamasına yönelik olarak belli bir yerleşim planında bulunan bilgilerin üzerinde indeksleme ve arama yapılabilecek şekilde yapilandirilmasi Bilgi Çıkarma konusu’na girmektedir. Bu işlem manuel programlama kullanılarak yapılabildiği gibi çeşitli istatistik ve yapay zeka algoritmaları kullanılarak da yapılabilmektedir. Manuel programlama kullanılarak geliştirilen sistemler hedef sayfaların yapılarının sürekli olarak değişmesi sebebiyle problemler yaşarlar. Değişen sayfa yapılarına uyum sağlamak için öğrenen sistemler kullanılmaktadır. Öğrenen sistemler sayesinde ayrıştırıcı önceden görmediği bir sayfadan gerekli bilgiyi eski deneyimlerini baz alarak otomatik bir şekilde çıkarabilmektedir. Bu gibi sistemler ise tutarlı sonuçlar alabilmek için çok büyük miktarda alıştırma bilgisiyle eğitilmek durumundadırlar. Özel anlamlı kelimeleri belirleme (named entity recognition) ve terim çıkarma (term extraction) bu aşamada veriye anlam vermek için yapılan uygulamalardır.

### İndeksleyiciler

İndeksleyiciler, veriye hızlı ulaşım için gerekli indeksleri yaratırlar. İndeksleme için Ağaç Yapıları, Ngram’lar gibi yapılar kullanılsa da günümüzde popüler olan indeksleme yöntemlerinden birisi Devrik Matris’lerdir. İndeksleme esnasında, indekslenecek olan yazı dil işleyiciden geçirilip cümlelere ve kelimelere ayrıştırılır. Daha sonrasında her bir kelimenin o dile özel dil işleyici ile kökü bulunur. Sistem dosya sistemi üzerinde yarattığı indekste bu kökleri, köklerin hangi yazılarda ve yazıların nerelerinde olduğunu tutar.

### Arama Bileşeni

Son olarak Arama bileşeni kullanıcının sorgusunu alır, sorguyu dil işlemeden geçirerek Devrik İndeks içerisinde kelimeleri arar. Sorguda kullanılan kelimeler, kelimelerin cümle içerisinde bir birlerine uzaklıkları hesaba katılarak bulunan dokümanlar sonuç olarak gönderilir.