Booble --Kişisel bilgisayarınız için yerel arama motoru

Bu, debian/linux tabanlı bilgisayarınızda kullanabileceğiniz, bilinen arama motoruna benzetilmiş bir masaüstü arama aracıdır. Bilgisayarınıza bağlı tüm hafıza birimlerinin indeksleyerek yerel aramalar yapabilmenizi sağlar. Şimdilik sadece Türkçe desteği vardır. Ama ileride çoklu dinamik dil desteği de eklenecektir.

boobleicon

Amaç, google’a espirili bir gönderme yaparak, Search Everything ve FSearch gibi yazılımlara alternatif oluşturmak, internet ortamında değil, bilgisayar üzerinde arama yapmaktır. (Biraz da boş zaman eğlencesi. Değilse tarayıcınızdan da bilgisayar üzerinde arama yapıldığını biliyorsunuz / biliyor musunuz? :grimacing:).

Program kurulduktan sonra ilk çalıştırmada indeks taraması yapılmalıdır. Disklerinizin büyüklüğü ve kalabalık olma durumunda göre bu işlem biraz zaman alır. Tarama verisi, bir SQLite dosyasına kaydedilir ve bir sonraki aramalarınızda hep bu dosyadan faydalanılır.

Sürekli yeni şeyler indiriyor, ya da bazı şeyleri sürekli siliyorsanız;

  • Arşiv, koleksiyon, film indirme vb gibi,
  • Var olan dosyaların adı değişiyor ya da işi bitince siliniyorsa,

İndeks taraması tekrarlanmalıdır ki veri tabanı güncellensin. Bu önemliydi.

Programa hariç tutulacak yollar gösterebilir, ya da sadece belli bir diske ya da dizine odaklayabilirsiniz.

Ekran görüntüsü_2026-03-09_15-17-01

Ekran görüntüsü_2026-03-09_15-16-33

Program hala geliştirme aşamasındadır. Önerileriniz olursa bildirin, not alırım.

Özgür kullanımlar dilerim.

7 Beğeni

İndexleme olarak hangi algoritmayı kullanıyorsunuz? Baloo gibi mi

Hayır, Baloo kullanmıyorum. Tamamen Python ile yazdığım bir indeksleyici var. Sistemi tarayıp verileri bir SQLite veritabanına kaydediyor. Ancak asıl olay şu: Verileri standart bir tabloya değil, SQLite’ın FTS5 (Full Text Search) sanal tablosuna yazdırıyorum. Bu sayede arama yaparken tüm diskte değil, sadece bu optimize edilmiş indeks tablosunda çok hızlı bir ‘full-text’ araması yapıp sonuçları anında önüme getiriyor.

FTS5 tablosu şöyle oluşturuluyor:

self.cursor.execute("""
            CREATE VIRTUAL TABLE IF NOT EXISTS files_index USING fts5(
                title, 
                path, 
                content, 
                tags
            )
        """)

Taramayı kaydetme:

for i, (name, path, content) in enumerate(all_items):
            try:
                self.cursor.execute(
                    "INSERT INTO files_index (title, path, content) VALUES (?, ?, ?)",
                    (name, path, content)
                )

Arama Sorgulama (çok hızlı):

query = "SELECT title, path, content FROM files_index WHERE files_index MATCH ?"
        self.cursor.execute(query, (f'title:"{q}"*',))

Merhaba

Çok güzel bir çalışma olmuş, özellikle ilerleyen dönemlerde lokal yapay zeka kullanımı arttıkça kendi bilgisayarımızda da arama yapmak gerekecek.

@shampuan bu özelliği Ferman tarayıcıma dahil edebilir miyim

Program GNU GPLv3’tür hocam. You’re FREE!!! :+1:

EDİT:

Ancak bilmeniz gereken çok önemli birşey var:

NTFS disklerle EXT4 gibi linux tabanlı disk dosya sistemlerinin çalışma prensipleri farklıdır. Örneğin, windows’un NTFS diskinde indexleme daha kolay yapılır ve her yeni dosya değişikliğinde, arama motoru o değişikliği anında tespit ederek veri tabanına ekleyebilir. Search Everythin, eski sürümlerinde bunu başarıyla yapabiliyordu ve bu nedenle iki de bir ful indexleme yapmak zorunda kalmıyordunuz. Sonraki sürümlerinde bu özelliği bozuldu ve saçmaladı.

Linux tarafındaki EXT4 gibi sistemlerde bu böyle değildir. Değişiklik takibi nasıl yapılıyor bilmiyorum. Gerçek zamanlı index güncelleme (artımlı güncelleme) yapılması gerekiyor. Bunu yaparken veri tabanı dosyasını bozmamanız gerekiyor. İşte bu nedenle linux tarafında Everything’in aynısı yapılamıyor. FSearch, onun çok benzetilmiş versiyonudur; ama onun kadar mükemmel değil.

Siz zaten işi biliyorsunuzdur. Google nasıl anlık indeksleme yapabiliyorsa, iş istasyonunuzdaki yapı da bunu bir şekilde anlık yapabilmelidir.

Cahil halimle ancak bu kadar uyarabiliyorum, gerisi sizde. Programımı kullanır ya da entegre ederseniz memnuniyet duyarım.

1 Beğeni

@shampuan yine şaşırtmadı :upside_down_face:

Elinize sağlık. Çok güzel bir fikir. Eskiden Google bilgisayarda arama yapmak için “Desktop Google” gibi bir adla uygulama da yapmıştı, sonra nedense bundan vazgeçti sanırım.

Bence Booble için parlak bir gelecek olabilir. :slightly_smiling_face: Fakat bunun için FSearch özelliklerinin tümünü içermesi (ör. veritabanı içinde/dışında kalacaklar, veri tabanının her açılışta / belirli aralıklarla otomatik güncellenmesi, sağ tık menüsü), ve tercihen biraz daha fazlasını (ör. dosyaların küçük resimleri ile listelenmesi) sunması gerekir (belki bir ekip çalışması ile?).

1 Beğeni

Sadi hocam, ilk defa bir uygulamama “birden fazla kişi” tarafından beklediğimden fazla ilgi ve tebrik geldi. Şaşkınım. Zira daha önce de “boş zaman eğlencesi” olarak yaptığım 7zip-GUI uygulaması şu anda dünya üzerinde patladı sayılır. Ona da bir ayrı şaşkınım.

Bahsettiğiniz özelliklerden içinde/dışında kalacaklar zaten var, ama siz biraz farklı bir şeyden bahsediyorsunuz farkındayım.

Diğer özelliklere gelince, evet, onlar da aslında gerekli değil, “çok gerekli” şeyler.

Hikaye şöyle:

Html tabanlı ya da her neyse, bir program yapayım, bilgisayarımda google’a benzer bir arayüzle arama yapayım istedim. Bir süredir kafamda böyle bir fikir vardı. YZ’ye bunun python+Qt ile yapılması durumunu sorunca bana gaz verdi ve bir iskelet kod verdi. Bunu parça parça geliştirerek bu hale getirdim ve artık yorulup durmak zorunda kaldım.

İlk planlamamda, arama sonuçları kısmında en üstte, aynen google’da olduğu gibi, görseller, videolar, … gibi bir özellik getirecektim. Bu, arama sonuçlarındaki videoları ve resimleri gruplanmış olarak gösterecekti. Ama bunun yaratacağı karmaşa durumundan dolayı vazgeçtim. Daha sonra sizin dediğiniz şeye evrildi ama bunun için bir 3 gün daha yoğun çalışmam gerekiyordu. Bu nedenle ileriye attım.

Söylediklerinizden şu önemli: Otomatik indeksleme. Bunu yapmayı düşündüm evet de, bana öyle ideal gelmedi. Windows’daki Search Everything, en son yapılan değişiklikleri anlık takip edebiliyor. Bunu programa getirmeye çalışıyorum ama bu Ext4 ve mevcut linux ortamında biraz detaylı çalışmayı gerektiriyor. Mesela, program tüm dosya değişikliği (değiştirme, silme, ad değiştirme, yeni klasör/dosya oluşturma, taşıma…) işlemlerini anlık olarak bir arkaplan agent’i ile yakalamalı ve anında veri tabanına eklemelidir. Bu, çok büyük dosyaların kopyalanması ve güncelleme gibi durumlarda sistemde ciddi sorunlara neden olabilir. Çünkü yazma işlemi hem sistem dosyalarına hem de veri tabanına yapılmaya çalışılıyor. SSD’lerde sorun olmasa da, HDD’lerde soruna neden olur, kafa salınımı artar. İşte bunu konuşuyordum YZ ile az önce. Diyor ki beklemeli yap, db dosyasının yanına bir dosya oluştur, bu henüz ramda biriken bu dosya listesini tutsun, kopyalama/değiştirme bitince db’ye işlesin.

Sağtık menüsü işi ise çok sakat hocam. Daha önce üzerinde çalıştığım bir program için bunu XFCE ortamımda çok uğraştım ama bir türlü yapamadım. Oluyor ama sapıtık şekilde çalışıyor ve çok saçmalıyor. Bir de bunun GNOME, KDE gibi ortamlarını düşün, hepsinde prosedür farklı çalışıyor. Şu noktada işi “abilere” devretmek gerekiyor.

Ekip çalışmasına uzaktan destek verebilecek imkanlarım hemen hiç yok; ancak kodu alıp geliştirenlere dur demem. Lisans belli :slightly_smiling_face:

1 Beğeni

Fazla bildiğim bir konu değil fakat ekip çalışması GitHub projesine katkıda bulunanlar şeklinde olabilir gibi geldi bana.
Otomatik indeksleme çok önemli değil fakat Ayarlar > Seçenekler ile sadece "Tüm Sistem (/) veya “Özel Klasör” seçeneği ve “Hariç Tutulan Yollar” görüyoruz.
Örneğin, “Özel Klasör” olarak “$HOME” seçip burada ise “Dahil Edilen Yollar” olarak sadece “~/Belgeler”, “~/Müzik”, “~/Resimler”, “~/Videolar” içinde arama yapılması tercih edilebilir.
Şahsen FSearch ile sistem dosyalarında arama yaparken (kullanıcılara görünür olmayan sistem dosyalarını da içermesi için) pkexec fsearch komutunu tercih ediyorum.
Bir de benim (İngilizce) KDE Plasma üst menüsünde çalışmayan bir arama kutusu da çıkıyor:

Aaa çok enteresan… Ben programa öyle birşey koymadım ki?
Onu bir araştıralım hocam.
Qt arayüzü KDE’ye ait biliyorsunuz. Bu program Qt6 ile oluşturuldu. Belki KDE ile “birşey uyumu” oluşmaya çalışıyordur. Tamamen bilgim dışında. Resmi alıp YZ’yle biraz tartışayım bu durumu.

Çok pardon, meğer bu söz konusu KDE Plasma eklentisinin bir hatası imiş, çünkü başka uygulamalarda da çıkıyor. :smiley:

1 Beğeni

Geri bildirdiğiniz iyi oldu.
Şu anda bir “Sigara bırakma programının” algoritması üzerinde çalışmaya başlamıştım. Tekrar ona geri dönmek istemiyordum :rofl:

Ama şunu da söylemem gerekiyor:

Hani androidin ilk versiyonlarında ekranın ortasında bir google arama widgeti oluyordu ya? Aslında ben programa böyle birşey eklemeyi düşünüyordum. Şimdi sizin eklentiyi görünce kafamda bir acaba? oluştu. Masaüstünün ortasında bir arama çubuğu ve google’da ara veya bilgisayarda ara… Acaba?..

1 Beğeni

Bence gerek masaüstü gerekse panel/dock eklentisi şeklinde (Bilgisayarda Ara…) olması halinde, FSearch ile kıyaslandığında görülen eksik yanlara rağmen, birçok kullanıcıya cazip gelebilir.

:thinking:

Evet evet… Bunu kesinlikle değerlendirmem gerekiyor.

Şimdilik not aldığım eksikler:

  • Dil.
  • Otomatik tarama.
  • Özelleştirilmiş hedef verme daha hassas ve anlaşılır yapılacak. Mevcut yapıya birden fazla yol desteği.
  • Sonuç ekranında resim ve videolar için thumbnail desteği.
  • Yapabilirsek desktopun ortasına search çubuğu.

Dahası da gelebilir.

1 Beğeni

Çok mantıklı olmuş ancak bu kısmı C++ ile yazarsanız hız 20-25 kat daha artacaktır. Böylesine titiz hız gerektiren bir uygulamanın hızına hız katar, bende bir öneri. Ayrıca C++'da her arama için ayrı thread oluşturursanız(mesela 1 thread /home/ dizinini, 1 thread /etc/ dizinini, 1 thread ise elde edilen verileri SQLite’a yazılmak üzere sırada bekler) daha yüksek hız elde edersiniz.

Ben çok beğendim, şimdi indirip deneme fırsatım oldu. Gerçekten Booble lamak çok keyifli.

Pardus 25 xfce başarılı çalışıyor, sadece arama sonuçlarının linklerini mavi göstermesi görselliği bozuyor bence, bir tık tasarım çalışılabilir.

Eline sağlık, teşekkürler.

Bence hızlı indexleme yapıyor, 10 sn beklemek kimseye bir şey kaybetirmez.

Hocam bende bir adet SATA SSD (sistem kurulu) bir adet de SATA HDD var. Tarama 3dk sürüyor. 10TB diski olanlarda bu süre katlanır. Bir de resim gösterme olayını eklersek çok daha artar ki evvelsi gün yaptığı denemelerde de böyle oldu. Şimdi ona çare arıyorum. Muhtemelen artımlı tarama yaptıracağım ama arkaplan ajanını nasıl yapacağımı bilmiyorum.

Bu konu son yanıttan 30 gün sonra otomatik olarak kapatıldı. Yeni yanıtlara artık izin verilmiyor.