Açık Kaynak Arama Teknolojileri: Lucene, Solr ve Nutch

Benzer belgeler
KAPSAMLI İÇERİK SADELEŞTİRİLMİŞ ARAMA MOTORU YENİLİKÇİ BİLGİ İŞLEME TEKNOLOJİSİ PRATİK GÖRÜNTÜLEME ARAÇLARI MOBİL ERİŞİM

BİLGİ TEKNOLOJİLERİ VE İLETİŞİM KURULU KARARI

Tasarım Raporu. Grup İsmi. Yasemin ÇALIK, Fatih KAÇAK. Kısa Özet

B02.8 Bölüm Değerlendirmeleri ve Özet

ÖĞRENME FAALĠYETĠ GELĠġMĠġ ÖZELLĠKLER

İşletim Sisteminin Katmanları

ULAKBİM Danışma Hizmetlerinde Yeni Uygulamalar: Makale İstek Sistemi ve WOS Atıf İndeksleri Yayın Sayıları Tarama Robotu

Başuzman Araştırmacı TÜBİTAK-UEKAE Bilgi Sistemleri Güvenliği Merkezi 09 NİSAN 2009

Yedi Karat Kullanım Klavuzu. Yedi Karat nedir? Neden Karat?

DENEY 2: PROTOBOARD TANITIMI VE DEVRE KURMA

Karadeniz Teknik Üniversitesi Orman Fakültesi. Orman Endüstri Mühendisliği Bölümü PROJE HAZIRLAMA ESASLARI

İÇİNDEKİLER. 1. Projenin Amacı Proje Yönetimi Projenin Değerlendirilmesi Projenin Süresi Projenin Kapsamı...

Şekil 1. Sistem Açılış Sayfası

Veri Toplama Yöntemleri. Prof.Dr.Besti Üstün

SÜRE BİLİŞİM TEKNOLOJİLERİ ÜNİTE 1: : BİLGİ VE TEKNOLOJİ DERS SAATİ: 7

Digifresh Kullanım Kılavuzu

İçindekiler Hosting hizmeti için silme isteği oluşturulması Reseller Paketi altında hosting hizmetinin oluşturulması Kesintiyi en aza indirmek için

13 Kasım İlgili Modül/ler : Satın Alma ve Teklif Yönetimi. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL

MSSQL Server 2000 Kurulumu

Microsoft.NET Vizyonunun İncelenmesi ve Bilgisayar Teknolojisi ve Programlama Eğitimi ile Entegrasyonu İçin Bir Rehber Çalışması

BİT ini Kullanarak Bilgiye Ulaşma ve Biçimlendirme (web tarayıcıları, eklentiler, arama motorları, ansiklopediler, çevrimiçi kütüphaneler ve sanal

İstemci Yönetimi ve Mobile Printing (Mobil Baskı) Çözümleri

Yıllık İş İstatistikleri Sanayi ve Hizmet Soru Kağıdı Hazırlanışı

Nebim Winner Ayarları

Topoloji değişik ağ teknolojilerinin yapısını ve çalışma şekillerini anlamada başlangıç noktasıdır.

Tahsilat Kolay. POS Ürün ve Portföy Yönetimi 20 Kasım 2015

Ulusal Toplu Katalog.

Q-BIZ VIEWER KULLANIM KILAVUZU

BÖLÜM 7 BİLGİSAYAR UYGULAMALARI - 1

Windows VISTA Ultimate Kurulumu ve Yönetimi

SÜRE BĠLĠġĠM TEKNOLOJĠLERĠ ÜNĠTE 1: ĠLETĠġĠM DERS SAATĠ: 1. Gelecekteki bilişim teknoloji

Android Uygulamalarında Güvenlik Testi

TEKNOLOJİ VE TASARIM

Derleyici Kuramı (Compiler Theory)

BQTEK SMS Asistan. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

T.C ATAŞEHİR ADIGÜZEL MESLEK YÜKSEKOKULU

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI YÜZEY DOLDURMA TEKNİKLERİ

Anonim Verilerin Lenovo ile Paylaşılması. İçindekiler. Harmony

KolayOfis Başlangıç Rehberi Kısa Mesaj Yönetimi

MAKÜ YAZ OKULU YARDIM DOKÜMANI 1. Yaz Okulu Ön Hazırlık İşlemleri (Yaz Dönemi Oidb tarafından aktifleştirildikten sonra) Son aktif ders kodlarının

5651 Sayılı Kanun Sayılı Kanun Maddesinin Amacı

FormSeries müşterileri operasyon ekibinin bir parçası haline getiren yeni bir hizmet kanalı yaratmayı hedeflemektedir.

F İ R M a. Herşey Bir Kaynaktan. Düz profillerin ve baraların işlenmesinde uzman

O N E T OUC H B A C K U P 3 P O R T S U S B 2. 0 H U B

EPKAS (ELEKTRONİK PROJE KONTROL ARŞİVLEME SİSTEMİ) WEB KULLANIM KILAVUZU


1 Aralık E-Beyanname Modülünde Yapılan İşlemler

5. ÜNİTE KUMANDA DEVRE ŞEMALARI ÇİZİMİ

26 Aralık 2014 CUMA. Resmî Gazete. Sayı : YÖNETMELİK. Enerji Piyasası Düzenleme Kurumundan: ELEKTRİK PİYASASI LİSANS YÖNETMELİĞİNDE DEĞİŞİKLİK

İMZALAMA ARACI. Kullanım Kılavuzu. Nisan 2016 ANKARA. İmzalama Aracı Kullanım Kılavuzu Nisan 2016 Versiyon : 1.0 1/15

II. Bölüm HİDROLİK SİSTEMLERİN TANITIMI

AKSARAY ÜNİVERSİTESİ. Amaç, Kapsam, Dayanak ve Tanımlar

PREANALİTİK EVRENİN DEĞERLENDİRİLMESİNDE LABORATUVAR BİLGİ YÖNETİM SİSTEMLERİNİN ROLÜ. Oğuzhan ZENGİ Bağcılar Eğitim ve Araştırma Hastanesi

BİLGİSAYAR DONANIMI. *** Gerçekleştirdikleri görev bakımından donanım birimleri ikiye ayrılır.

Temel Bilgisayar Programlama

Genel bilgiler Windows gezgini Kes Kopyala Yapıştır komutları. 4 Bilinen Dosya Uzantıları

MikroÖdeme Servis Dökümanı

Dosya sistemi (File system), dosyaların hard disk üzerinde nasıl yerleşeceğini ayarlayan bir sistemdir. Diğer bir tanıma göre dosya sistemi, bir

Bellek Analizi ile Zararlı Yazılım Analizi

T.C. KIRIKKALE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ STAJ YÖNERGESİ MAKİNE MÜHENDİSLİĞİ BÖLÜMÜ STAJ KURALLARI

T.C. KAHRAMANMARAŞ VALİLİĞİ İL MİLLİ EĞİTİM MÜDÜRLÜĞÜ OKUL-KURUM E-POSTA HESAPLARI KULLANIM YÖNERGESİ. BİRİNCİ BÖLÜM Amaç, Kapsam, Dayanak ve Tanımlar

Özgür Yazılımlar ile VoIP Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı

1. RESİM DÜZENLEME. Bir resmin piksel yoğunluğu yani PPI (Pixel Per Inches) 1 inç karede (1 inç = 2.54 cm) bulunan piksel sayısıdır.

OPERATÖRLER BÖLÜM Giriş Aritmetik Operatörler

SÜREÇ YÖNETİMİ VE SÜREÇ İYİLEŞTİRME H.Ömer Gülseren > ogulseren@gmail.com

Etkinliklere katılım, ücretli ve kontenjan ile sınırlıdır.

DÜNYA EKONOMİK FORUMU KÜRESEL CİNSİYET AYRIMI RAPORU, Hazırlayanlar. Ricardo Hausmann, Harvard Üniversitesi

TEKNİK RESİM. Ders Notları: Mehmet Çevik Dokuz Eylül Üniversitesi. Görünüşler - 1

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

: 3218 Sayılı Serbest Bölgeler Kanunu Genel Tebliği (Seri No: 1) nde Değişiklik Yapılmasına Dair Tebliğ (Seri No: 3) yayımlandı.

Evrak Ekle. Kurum İçi Giden Evrak Ekleme. Kırmızı renker; doldurulması zorunlu alanları ifade etmektedir. İleri Geri tarihli işlem yapılamamaktadır.

E-Fatura Sunucusu Kurulum Klavuzu

SİRKÜLER İstanbul, Sayı: 2016/01. Konu: E-DEFTER GÖRÜNTÜLEYİCİ PROGRAMI İLE SÖZ KONUSU PROGRAMA İLİŞKİN KULLANIM KILAVUZU YAYINLANMIŞTIR

K12NET Eğitim Yönetim Sistemi

BULUġ BĠLDĠRĠM FORMU/ GIDA

BULUŞ BİLDİRİM FORMU / APARAT

Verimlilik İçin ETKİN BİLGİ YÖNETİMİ. EXCEL de Etkin Kullanım için Kısayollar

İşletme Gelişimi Atölye Soruları

OKUL BAZLI BÜTÇELEME KILAVUZU

çindekiler 01. Kurulum

Bilgi Toplumu Stratejisi Eylem Planı 2. Değerlendirme Raporu. e-dtr İcra Kurulu 26. Toplantısı 26 Aralık 2008

Hackerlar'ın Gözünden Flash Uygulamaları

OFİS 365 ÖĞRENCİ MAİL SİSTEMİ KULLANIM KLAVUZU. Office 365

BÜRO YÖNETİMİ VE SEKRETERLİK ALANI HIZLI KLAVYE KULLANIMI (F KLAVYE) MODÜLER PROGRAMI (YETERLİĞE DAYALI)

GAZİANTEP İL MİLLİ EĞİTİM MÜDÜRLÜĞÜ TÜBİTAK 4006 BİLİM FUARLARI PROJE YÜRÜTÜCÜLERİ TOPLANTISI

Bilgilendirme Politikası

KAMU İHALE KANUNUNA GÖRE İHALE EDİLEN PERSONEL ÇALIŞTIRILMASINA DAYALI HİZMET ALIMLARI KAPSAMINDA İSTİHDAM EDİLEN İŞÇİLERİN KIDEM TAZMİNATLARININ

Urkund Hızlı Başlangıç Kılavuzu

Yandaki resimlerde Excel Pazartesi den başlayarak günleri otomatik olarak doldurmuştur.

EBYS Eğitimi. Sisteme erişim adresi:

ANKARA EMEKLİLİK A.Ş GELİR AMAÇLI ULUSLARARASI BORÇLANMA ARAÇLARI EMEKLİLİK YATIRIM FONU ÜÇÜNCÜ 3 AYLIK RAPOR

Tor Üzerinden VPN Servisi "Privatoria"

DÖNER SERMAYE MALİ YÖNETİM SİSTEMİ

MESLEKİ UYGULAMA ESASLARI YÖNETMELİĞİ DEĞİŞİKLİK KARŞILAŞTIRMA ÇİZELGESİ. Geçerli yönetmelik tarihi : MEVCUT MADDE ÖNERİLEN GEREKÇE

Afyon Kocatepe Üniversitesi Yabancı Dil Hazırlık Sınıfı Eğitim-Öğretim

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BİLGİ TEKNOLOJİLERİ VE İLETİŞİM KURULU KARARI

VEZNE PROGRAMINDA POSTA ÜCRETİ İLE İLGİLİ YAPILAN DÜZENLEMELER (Vezne Sürüm: )

Arama Motoru Optimizasyonu Eğitimi

ENF TEMEL BİLGİSAYAR BİLİMLERİ Eğitim/Öğretim Yılı Bahar Dönemi DÖNEM SONU LAB. ÖDEV TESLİM DUYURUSU

Transkript:

Açık Kaynak Arama Teknolojileri: Lucene, Solr ve Nutch Gönenç Ercan Mantis Yazılım Ltd.

Arama Motorları Nasıl Çalışır? Sorgu yapılınca İnternet teki bütün sayfaları tek tek açıp kelimeler geçiyor mu diye bakıyor. Bu yanlış açıklama sonrası herkes salonu terk etmediyse.

Cevaplar Kitabın Arkasında!!! Arama motorunun temel çalışma prensibi, en eski bilgi teknolojilerinden biri: Ders kitaplarının sonundaki dizin kısımları A Ada ---- 23, 32, 43, 56 Araba --- 2, 10, 23 B Kelime Baraka --- 3, 56 Belde --- 5, 20, 34 Geçtiği sayfalar

Dizin Yapısı Bir doküman örneği serbest metin İkinci dokümanın cümlesi Üçüncü doküman gene serbest metin Bir 1 cümle 2 doküman 1, 2, 3 gene 3 serbest 2, 3 metin 2, 3 ikinci 2 Dokümanlar dizinlenmek için kelimelerine ayrıştırılır. Kelimelerin hangi dokümanda geçtiği kaydedilir. Sorgu eğer cümle kelimesi ise, 2. doküman cevap olarak döndürülür. VEYA = Birleşim, VE = Kesişim.

Ekstra bilgiler Tırnak ile arama, deyim olarak. Türkiye Cumhuriyeti. Kelime bazlı çalışan sistemler. Bir torba dolusu kelime. Bütün sorgulanabilecek deyimler mi bilinmeli? Çoklu kombinasyonlar mı tutulmalı. Her kelimenin pozisyonu mu tutulmalı. Sonuçlar ile birlikte hızlıca özet gösterilmesi, aranan kelimelerin özette işaretlenebilmesi. Metnin özeti veya hepsi saklanmalı. Kelimeye göre doküman listesi ve dokümanlara özel bilgiler.

Lucene Kütüphanesi Kelime Dizini Dokümanlar ile ilgili bilgiler. Dosyalarda en iyi ve hızlı şekilde saklanmasını sağlayan kütüphane. Doug Cutting tarafından geliştirildi. (Anneannesinin göbek adı)

Lucene Temel Bileşenler Dizinleme: Dosya İşlemleri, yazma ve okuma. Analyzers: Dizinlenecek dokümanların kelime torbasına dönüştürülmesi. (Küçük/Büyük harf. Hangi kelimeler? Kitap ve kitaplar ). Sorgu İşleme: Sorgu Dili, sorguya benzerlik hesaplama.

Dizinleme Dosya İşlemleri Dizinin nasıl saklanacağından Directory soyut sınıfı sorumlu. Hafızada ve veritabanında saklanabiliyor, ama genel kullanım dosya kullanmak. MMapDirectory; Hafızaya haritalanmış dosyalar. NIOFSDirectory; Java NIO ile yazılmış Directory gerçekleştirmesi. İşletim sistemine göre tavsiye edilen değişiyor. Onun için seçimi Lucene e bırakmalı: FSDirectory.open(new File("/home/gonenc/luceneIndex")); 102GB/saat, Lucene 4.0 da 270 GB/saat olması bekleniyor.

Analyzers- Metinlerin Kelime Kümesine Çevirilmesi Bir karakter akımı(stream) dosyanın kelimelere çevirilmesi için Lucene Analyzer sınıfını kullanır. Karakter akımı kelime akımına çevirilmiş olur. Farklı ihtiyaçlar için paket ile birlikte gelen StandardAnalyzer veya Snowball gibi gerçekleştirmeler var. Analyzer sınıfı aslında, metnin nasıl işleneceğinin konfigürasyonu yapılan bir kod. Mevcut sınıfları genişleterek farklı yöntemler geliştirmek mümkün. Örnek: Zemberek kullanarak Türkçe kelimelerin eklerinin atılması sağlanabilir. Apache UIMA ile çok daha karmaşık analizler yapılabilir. (Lucas)

+ ve Sorgu Dili AND, OR, NOT *,? kelime~ (Lucene 3.x de çok yavaş. Lucene 4.x ile çok hızlanacak) "jakarta apache"~10 [20020101 TO 20030101] jakarta^4 apache

Sorguya Benzerlik Hesaplama, Sıralama Genel mantık: Aranan kelimeler, dokümanda hangi yüzde ile geçiyor. Bir kelime aranıyor, doküman 1 de 100 kelimenin 10 tanesi o kelime, doküman 2 de 10000 kelimenin 20 tanesi o kelime. Doküman 1 daha ilişkili. 2 kelime aranıyor, 1. kelime 1000 dokümanda geçiyor, 2. kelime 10 dokümanda geçiyor. 2. kelimenin sıralamada daha fazla etkisi olsun! Bu iki kurala uygun benzerlik yöntemi Vektör Uzay Modeli ve tf*idf. Lucene 4.0 da daha fazla opsiyon olacak, testlerde yeni yöntemlerin sıralamaları daha iyi gibi görünüyor.

Alanlar (Fields) Lucene doküman, ve dokümanın içinde alanlar tutuyor. Bu sayede örneğin bir kitapevi için aşağıdaki gibi alanlar yaratılabilir: Başlık Özet Arka Kapak Yazar Arama Başlık da geçsin ama özet içinde geçmesin. Herhangi birinde geçsin. baslik:sorgu^2 özet:sorgu^0.01

Kod Örneği Analyzer analyzer = new PorterStemAnalyzer(new String[0]); Directory directory = FSDirectory.open(new File( FolderPath")); IndexWriter indexwriter = new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_33, analyzer)); Document document = new Document(); Field titlefield = new Field("title", "", Store.YES, Index.ANALYZED); document.add(titlefield); titlefield.setvalue("dizinlenecek metin"); indexwriter.adddocument(document); indexwriter.commit(); indexwriter.close();

Lucene in kullanımı Bir çok ürün arama çözümü için Lucene kütüphanesini kullanıyor. IBM OmniFind Eclipse Alfresco Atlassian JIRA ve Confluence Linkedin ve MySpace Özellikle uygulamaların içine gömülü arama çözümü olarak çok uygun.

Kurumsal Arama Ortak Alışveriş Siteleri Birden fazla uygulama tek arama motorunu sorgulasın Birden fazla kaynak tek bir arama motoru aracılığıyla dizinlensin. Okuyucu Yorumları & Süreli Yayınlar Sunucuları Kurumsal Arama Motoru Yayınevi Sayfası Kitaplar Veri Tabanı

Kurumsal Arama İhtiyaçlar Birden çok kaynağın tek bir yere dizinlenebilmesi Çözüm: dizinleme yapılacak veriler arama sunucusuna aktarılır. Lucene ile orada dizinlenir. Çözüm: Dizinleme yapılacak sunucu, istemcilerin kullanabileceği RPC metodu sunar. Birden çok sunucu ve uygulama ortak arama motoruna sorgu atabilsin. Çözüm: Web Servis, REST servisi gibi standart bir yöntem ile arama uygulamalara açılsın. Farklı ara katman Teknolojiler ve Lucene ile bunları yapmak mümkün. Fakat pahalı olabilecek bir geliştirme süreci.

SolR Kurumsal Arama Rest Güncelle Veri Kaynağı Rest Sunu Lucene dizinleme altyapısının üstüne daha gelişmiş ve esnek katmanlar sağlanması: SolR Http protokolü üstünden veri kaynakları dizini değiştirebiliyor. Http protokolü üstünden sunum yapan uygulamalar arama yapabilir.

SolR Şema Konfigürasyonu <schema name="kitapevi" version="0.1"> <types> <fieldtype name="text_general" class="solr.textfield" positionincrementgap="100"> <analyzer type="index"> <tokenizer class="solr.standardtokenizerfactory"/> <filter class="solr.stopfilterfactory" ignorecase="true" words="stopwords.txt /> <filter class="solr.lowercasefilterfactory"/> </analyzer> </fieldtype> <fields> <field name="content" type="text_general" stored="true" indexed="true"/>. Kod ile yapılan alan tanımları daha düzeli ve rahat takip edilebilir şekilde xml dosyasında tanımlanıyor. Veri tipleri eklenebiliyor, böylelikle her alan için tekrar tanımlanan özellikler sadece bir kere eklenebiliyor.

SolR Altyapısı SolR da Arama Bileşenleri SearchComponent interface soyut sınıfını gerçekleştirir. Arama Bileşenleri arka arkaya çalışarak, arama sonuçlarını zenginleştirirler. Örneğin: Arama sonucunda sorguya göre öneri getirme. Did you mean? SearchHandler interface soyut sınıfı, aramayı esas yapan ve bileşenleri çalıştıran REST servisi. UpdateHandler, yeni bir doküman eklenirken kullanılan REST Servisi.

SolR SearchHandler tanımı <requesthandler name="search" class="solr.searchhandler" default="true"> <lst name="defaults"> <int name="rows">10</int> </lst> <lst name="appends"> <str name="fq">instock:true</str> </lst> <lst name="invariants"> <str name="facet.field">cat</str> </lst> <arr name="components"> <str>nameofcustomcomponent1</str> </arr> </requesthandler> solrconfig.xml ile yapılabilir. Parametreler tanımlanır. (değiştirilebilir (default), eklenenler, değiştirilemeyenler) Kullanılan birleşenler

SolR SearchHandler http://localhost:8080/solr/search?q=deneme&rows=100 Sorgu ile birlikte default değerler değiştirilebilir. Örneğin: Sorgu olarak deneme ve gösterilen kayıt sayısı olarak 100 yapılabilir. Sayfada gösterilen kayıt sayısını değiştirilemez yapmak için rows tanımını invariants a aktarmak gerekir.

Writer Tanımları JSON Velocity XML CSV Solr Dizini Java Binary Request Handler sonuçları parametrelere göre her bileşen için hazırlar Writer kısmı farklı çıktılar verebilecek şekilde, sonuçları sunar. http://localhost:8080/solr/search?q=deneme&rows=100&wt=xml

Arama Birleşenleri (Search Components) Benzer sayfaları getir. (sayfanın vektörüne en yakın diğer sayfaları getir) Highlight (özet göster, özetin içindeki arama kelimelerini renklendir) Suggest (Sorgu kelimelerindeki yazım hatalarını düzeltip bunu mu demek istediniz gibi çıktı vermek) Gruplama (Aynı alan adından gelen sayfaları gruplayarak göster) Harici Alan tutma. (Sürekli değişen bir alana göre sıralamanın etkilenmesini sağlar. Örneğin: sayfanın kullanıcıların sayfayı ziyaret sırasına göre sonuçlarda öne çıkarma. )

Ek Alanlar ile Navigasyon Facet özelliği sonuçların alanlara göre keşfedilmesini sağlar. Sorgunun geçtiği dokümanların tarih aralıklarına göre gösterimi. Fiyat Aralığına göre gruplamalar. Spatial Yakınlığa göre bile gruplama yapılabilir. Sonuçlarda oluşan her grup için kaç doküman olduğu gösterilir. Sonuçlarda seçilen grup(lara) göre filtreleme yapar.

İçerik Ekleme JSON XML Solr Dizini Java Binary Http tabanlı UpdateHandler kullanılarak yapılır. Update Handler a Birleşen Eklenebilir. Örneğin: Parça parça dosyaların hash lerini alan Benzer içerik tespit yöntemi

Performans için Önbellek kelime1 Kelime1 kelime2 Her sorgu dizin içerisinde her kelime için, kelimenin geçtiği dokümanları bulur. Bu işlem dizin büyüdükçe zaman almaya başlar. Arama motorlarında performansın en kritik etkenlerinden birisi Önbellekdir. Önbellek kelime listelerini hafızada saklar. Aynı kelime ile bir sorgu geldiğinde direkt hafızadan cevap verir.

Yönetim Araçları (1) Metin işleme araçlarının test edilmesine yarar. Şemada tanımlı kurallar sonuçu, bu metin nasıl işlenecek sorusunu cevaplar.

Yönetim Araçları (2) SolR in çalışmasını ve kaynak yönetimini gösterir. Her alan için ayrı ayrı istatistik verir Alan içerisinde en çok kullanılan kelime Alan için toplam kullanılan disk alanı Önbellek kullanımı

Tek SolR birden fazla dizin! Bazen tek bir dizin yeterli olmayabilir. Bir kullanılan genel dizin gerçek veriyi tutarken, diğer dizin yedek olur ve development işlemleri onun üstünde yapılır. Kurum birden fazla bağımsız dizinlemeye ihtiyaç duyabilir. Örnek: Kitaplar ve Müzik CD leri farklı dizinlerde farklı alanlar ile kullanılabilir. Core desteği SolR birden fazla dizini Core adıyla kullanır. Yeni Core yaratılabilir. Silinebilir. Yerleri değiştirilebilir. Core sadece disk alanını fazla kullanır, sorgu işlemede alanlar ile tek dizin kullanmaya göre daha iyi performans verir.

Yatay Ölçeklenebilirlik Dikey Ölçeklenme Yatay Ölçeklenme Tek güçlü sunucu mu? Dikey. Sonunda bir sınır var. Dar boğaz Hard Disk e yazma. Yatay Ölçeklendirme, birden fazla SolR çalışıyor: Doküman sayısı çok ise, dokümanlar farklı SolR sunucularına gönderilir. Sorgular bütün sunuculara gider Kullanıcı sayısı çok ise, dizin sunucularda kopyalanır (replication). Kullanıcılara farklı sunucular servis yapar. Çok doküman, çok kullanıcı: İkisinin kombinasyonu.

SolR Güvenliği Tamamiyle açık bir sistem olduğu için güvenlik açıkları bulunmakta. (cross-scripting) Arada bir sunucu ve Http protokolü olduğu için, standart Java Servlet Container veya güvenlik yöntemleri kullanılabilir. Https ile çift taraflı sertifika kullanımı (sorgulama ve/veya güncelleme için) Http ile kullanıcı adı şifre ile giriş yapma Tamamen kendi geliştireceğiniz bir güvenlik protokolü

SolR in içini Doldurmak SolRJ kullanarak herhangi bir Java uygulamasından herhangi bir veriyi sunucuya aktarabiliriz. Veritabanı Windows Share Bir Http Formu ile direkt olarak sayfalar dizinlenebilir hale getirilebilir (sadece bir Html dosyası yeterli) Http protokolü üstünden XML ile herhangi bir programlama dili bilgi aktarabilir. Bir Web örümceği Kullanmak: Heritrix in SolR eklentileri var. Nutch 1.2 den itibaren dizinlemeyi SolR a yapıyor.

Nutch (Web Arama Motoru) Hadoop Mimarisi; Doug Cutting, Google Big Data makalesinden sonra aklında Nutch olarak projeyi başlattı. Hadoop: Oğlunun oyuncak fili. Yahoo destekliyor. Bir çok projede kullanılıyor. Sayfaları dolaşıp onları çekebilecek bir yazılım. Web Örümceği Hadoop ile bulut mimarisinde çalışabiliyor. Bir düzine masa üstü bilgisayar ve iyi bir network bağlantısı ile internetteki sayfaları çekebilme.

Web Yapısı Başlangıç Adresleri İşlenmiş Adresler Ufukta Ufukta (Hatalı çekim, Tekrar Çekilecek) Bilinmiyor Kapsam Dışı (Filtreler) Domain Name Filtresi Adres saerı RegEx filtresi Başlangıç Adresleri İşlenmiş Sayfalar Ufuk Başlangıç Adresleri İşlenmiş Adresler Ufukta Bilinmiyor Terör ile ilgili Kapsam Dışı

Nutch Özellikler Karşı sunuculara saldırı olmayacak sınırlarda kurallara uygun istek gönderme. (robots.txt) Birden fazla Thread ile çok hızlı sayfa çekebilme. (Tek bilgisayar ve 10 Mbit hat ile günde 1 milyondan fazla sayfa çekilebilir) Sayfa çekme sıralarının ayarlanabilir olması (PageRank benzeri bir algoritma ile) Sayfaların işlenmesinde Parser eklentileri ile sitenin özelliklerine göre bilgi çıkarma eklenebilir. (Örnek: Gazete haberlerinde tarih hep aynı yerde bulunuyor ise, yayın tarihi çıkartılabilir) Sayfa bağlantı analizleri, Sıralamalarda daha çok bağlantı alan sayfalar öne çıksın veya bu sayfaya bağlantı veren sayfalar hangileri?

Nutch Esneklikler Sayfa çekme sırasının belirlenebilmesi. (ScoringFilter) Dizinleme sırasında ek alanlar. (IndexingFilter) Sayfanın değişiklik için tekrar çekilme zamanı. (Scheduler)

Nutch Trunk ve Nutch 2.0 Nutch projesi bir süre önce SVN de branch açtı. Nutch 2.0 projesi, arka planda düz Hadoop dosyaları yerine veri tabanı kullanıyor. Gua katmanı ile Cassandra, Hbase, MySQL gibi farklı veritabanları kullanılabilecek. Avantajlar: Esneklik (Yönelimli bir Crawler yazmak daha kolay) Güvenilirlik (Her sayfa çekildiğinde veri tabanına kayıt atıyor). Web örümceği işini bitirmeden dursa da bilgi kaybı olmuyor. Veri Yönetimi (Database teknolojileri paralelde geliştikçe, onları kullanmak mümkün.) Dezavantaj: Stabil bir çıktısı yok!

Teşekkürler