# Dikey arama
Dikey arama, belirli bir alanın filtrelenip yalnızca o alan içeriğine yönelik arama yapılmasına olanak tanıyan bir sistemdir. 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. Dikey arama motorları belli bir alanda bilgi almak isteyen kullanıcıları hedefleyip, internette 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. Bütün bu bileşenlerin gerekli fonksiyonları yerine getirmeleri için yapay zeka (artificial intelligence), bilgi getirme (information retrieval), , doğal dil işleme (natural language processing), gibi teknolojiler kullanılmaktadır.


### Ağ örümcekleri.
Arama motorları, bazı otomatik yazılımları kullanarak internetteki verileri toplarlar. Bu otomatik yazılımlara ağ örümcekleri denir. Bu 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:
  - İnternetteki sayfa sayısının çokluğu, 
  - Sayfalardaki değişim hızı
  - 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 teknikleridir.
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 internet 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 yapılandırılması bilgi çıkarma konusuna 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 ) 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 matrislerdir. İ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 indeks içerisinde kelimeleri arar. Sorguda kullanılan kelimeler, kelimelerin cümle içerisinde birbirlerine uzaklıkları hesaba katılarak bulunan dokümanlar sonuç olarak gönderilir.