3 Şubat 2014 Pazartesi

Apache Solr Nedir?


Diyelim ki bir web uygulamanız var. Bu uygulamanızın en önemli modüllerinden birisi de arama modülü. Arama işlemlerini milyonlarca satır kayıt bulunan bir veritabanı üzerinde gerçekleştiriyorsunuz. Uygulamanız yüksek trafik almaya ve arama modülünüz yavaşlamaya başladı. Uygulamanızın performansı gün gittikçe düşüyor. Artık metin arama (full text search) en karmaşık konulardan birisi haline geldi sizin için. Eğer veritabanı motorunuz, full text search desteklemiyorsa, harici bir arama motoru kullanmanın zamanı gelmiştir demektir. İşinizi kolaylaştıracak arama motorlarından biri Apache Solr artık en iyi yardımcınız. 

Solr, Lucene üzerine kurulu, arama uygulamalarında kullanılan bir Apache ürünüdür. Solr ve Lucene arasındaki ilişki araba ve araba motoru arasındaki ilişkiye benzer. Lucene motor, Solr ise arabadır. Lucene olmadan Solr çalışmaz. 

Lucene; temelde metin analizi, indexleme ve arama gibi temel işlevleri sunan bir Apache projesidir. Solr ise, Lucene temelini kullanan, onun üstüne filtreleme, faceting, önbellekleme, dağıtık mimari desteği gibi şeyleri kolay yapılandırma dosyaları ile yönetebilmenizi sağlar. Verileri XML, JSON, Binary gibi çeşitli formatlarda almanızı sağlar. 

Solr, Java ile geliştirilmiştir. Solr açık kaynak kodludur. Solr farklı sunucular (Jetty, Resin, JRun, Tomcat) üzerinde çalışır. Herhangi bir programlama dili kullanmadan, Solr sunucuyu kurulur. Solr ile verilerinizi sunucuda indekslersiniz. Bu veriler üzerinde arama yapabilmeyi Solr ile sağlarsınız. 

Solr için veriler “Document” olarak adlandırılır. Solr’a veri eklemek demek yeni bir “Document” eklemek demektir. Solr her şeyi bir "döküman" olarak saklar. Dökümanları veritabanındaki satırlar (row) olarak düşünebilirsiniz. Örneğin Vidomix gibi bir video sitesinin veritabanındaki bir "videolar" tablosunu tasarlarken, video_id, video_title, video_info, video_time gibi alanlar (fields) oluşturyorsak aynı mantık ile "Solr Document" tasarlanır. 

Solr’da indekslemek istediğimiz veriyi bir Document olarak tasarlar ve bu Document’in tüm özelleklerini (field) belirledikten sonra uygun şekilde veri setleri oluşturulup Solr’a eklenebilirsiniz. Indekslenen bu veriler üzerinde HTTP isteği ile sorgulama yaparak, sonuçları çok hızlı bir şekilde ve istediğimiz formatta elde edebilirsiniz

Hiç yorum yok :

Yorum Gönder