belgeindir.com (Geliştirme Sürecinde)

belgeindir.com (Geliştirme Sürecinde)

2013'te geliştirme sürecinde kalan; dosya barındırma kaynaklarını tarayıp belge metadata'sını veri tabanında toplayarak aranabilir hale getirmeyi amaçlayan belge arama motoru projesi.

belgeindir.com, 2013'te üzerinde çalıştığım ve geliştirme sürecinde kalan web tabanlı belge arama motoru projesidir. Projenin temel fikri, dosya barındırma kaynaklarını tarayarak bulunan belgeler hakkındaki bilgileri veri tabanında toplamak ve kullanıcının bu kayıtlar üzerinde arama yapabilmesini sağlamaktı.

Bu kayıt tamamlanmış bir üretim hizmetini değil, belge keşfi problemini tarama, metadata ve arama katmanlarına ayırdığım bir geliştirme çalışmasını belgeliyor.

Tarama ve Metadata

Bir belge arama sisteminde yalnız dosya bağlantısını bulmak yeterli değildir. Dosya adı, türü, kaynak adresi ve erişilebilen diğer metadata'nın ortak bir modele dönüştürülmesi gerekir. Aynı belge veya aynı URL farklı tarama yollarından tekrar bulunabileceği için kayıt kimliği ve tekrarların yönetimi de veri modelinin doğal problemidir.

Tarayıcı tarafında uzak kaynağın geçici olarak erişilememesi, bağlantının zamanla değişmesi veya eksik metadata gibi durumlar da normal çalışma koşulları olarak düşünülmelidir.

Veri Tabanı ve Arama

Toplanan kayıtların veri tabanında saklanması, tarama işlemi ile kullanıcı aramasını birbirinden ayırır. Kullanıcı bir sorgu yaptığında bütün uzak kaynakların yeniden taranması yerine önceden oluşturulmuş metadata üzerinde arama yapılabilir.

Bu ayrım daha sonra çok daha büyük sistemlerde karşılaştığım temel bir mimari desene benziyor: pahalı veri edinimini çevrim içi sorgu yolundan ayırmak ve sorgu tarafını önceden hazırlanmış bir veri temsili üzerinden çalıştırmak.

Aynı Problem Alanındaki Masaüstü Uygulaması

Aynı dönemlerde geliştirdiğim Köker Belgeindir 1.3, yaygın arama motorlarından belge bulma, önizleme, çok parçalı indirme ve yerel kütüphane yönetimi gibi kullanıcı tarafı işlevlere odaklanan ayrı bir masaüstü projeydi.

belgeindir.com ise problemi sunucu tarafında tarama, veri toplama ve aranabilir metadata oluşturma açısından ele alıyordu.

Mimari Değerlendirme

Benzer bir sistemin güncel tasarımında robots politikaları, erişim koşulları, rate limiting, canonical URL, içerik türü doğrulama, tekrar tespiti ve indeks güncelliği açık mimari sözleşmeler olarak ele alınmalıdır.

2013 çalışmasında tamamlandığı doğrulanabilen kısım; belge keşfi, metadata'nın veri tabanında tutulması ve aramanın ayrı sorumluluklar olarak ele alınmasıdır.

Bu sayfanın QR kodu