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.
Bugünkü Değerlendirme
Bugün benzer bir sistem tasarlarken robots politikaları, erişim koşulları, rate limiting, canonical URL, içerik türü doğrulama, tekrar tespiti ve indeks güncelliği gibi konuları daha açık sözleşmelerle ele alırdım.
Bu sayfada 2013 projesine sonradan geliştirilmemiş özellikler eklemiyorum. Değeri, web taraması ile veri tabanı tabanlı aramayı aynı belge keşif problemi içinde birleştirmeye yönelik erken bir sistem tasarımı denemesi olmasıdır.