Come abbiamo visto qualche giorno fa è stato rilasciato da poco un nuovo desktop search engine per linux chiamato GLS e basato sull’accoppiata Lucene/Posgres, ci è stato fatto notare che in realtà questa soluzione non è l’unica attualmente disponibile per il nostro pinguino e ci è stato chiesto di parlare anche delle altre possibili alternative.
Già da un paio di anni è presente Beagle, applicazione scritta in Mono che usa al suo interno sempre Lucene ma con SQLite, di cui abbiamo già parlato abbondantemente visto che è strettamente integrata con Gnome (nonostante si professi Desktop Environment agnostic).
Proprio l’integrazione con Gnome è uno dei maggiori punti di forza di Beagle, infatti scrivere dei plugin per far indicizzare i dati delle proprie applicazioni è molto semplice e già sono molti i software che lo integrano nativamente, dato che è preinstallato in distribuzioni come Fedora e SuSE (gli utenti Ubuntu lo hanno disponibile all’interno dei repository Universe).
La stessa Novell (azienda che ha fatto nascere e finanziato il progetto) ha integrato Beagle all’interno dell’edizione Enterprise di SuSe comprendendone le potenzialità.
Purtroppo Beagle è, allo stato attuale, una applicazione mangia-risorse senza pietà. Anche a causa di un motore, Lucene, non adatto a questo genere di applicazioni (imho è uno dei computazionalmente peggiori desktop search engine sul mercato OSS).
Un altro progetto, nato in seno all’iniziativa FreeDesktop.org ed ospitato su CVS di Gnome è Tracker.
A differenza degli altri due software già visti non usa Lucene ma ha al suo interno una versione riveduta e corretta di MySQL ottimizzata per occupare solo 1Mb di RAM in fase di esecuzione. Tracker, essendo scritto in C e basato interamente su un DBMS, sfrutta strumenti come il full-text indexing nativamente ed in parallelo su più processi senza sovraccaricare eccessivamente le nostre povere CPU. Tra l’altro Tracker implementa al suo interno la gestione dei Metadati introdotta da FreeDesktop e che sarà parte integrante delle prossime versioni dei maggiori Desktop Environment.
Purtroppo i plugin per questo search engine sono ancora molto pochi ed a parte i file presenti su filesystem non è possibile indicizzare altro (in realtime). Questo però non dovrebbe essere un grosso problema a lungo termine, anche perchè facendo appunto parte di FreeDesktop potrà avvalersi di DBUS per comunicare con le altre applicazioni permettendo quindi una più semplice integrazione sia con Gnome (di cui già sfrutta la Deskbar applet) che con KDE.
ilgufo
12 lug 2006 - 11:28 - #1esiste anche kat per kde, che pero` ancora imho e` molto buggato e non puo` competere con beagle
franco
12 lug 2006 - 11:39 - #2Io uso beagle con KDE attraverso il plugin “Kerry Beagle” (http://en.opensuse.org/Kerry, ma ce ne sono altri) e funziona tutto abbastanza bene.
Le risorse occupate non sono poche, ma anche con una macchina economica come la mia (sempron 2600 con 512 di ram), tolto il collo di bottiglia iniziale (la prima volta che parte beagle è micidiale!), quasi non mi accorgo di averlo su.
fullo
12 lug 2006 - 11:51 - #3ilgufo: kat non l’ho considerato perchè è ancora troppo poco sviluppato/stabile.
Emmanuele Bassi
12 lug 2006 - 14:45 - #4piccolo appunto: la specifica alla base di Tracker è stata scritta dall’autore di Tracker stesso, e viene cambiata in funzione dell’implementazione di riferimento - ovvero, Tracker. personalmente, ho molti dubbi sulla spec, meno su Tracker (anche perché beagle sui portatili è ancora adesso un ottimo modo per bersi la batteria).
Marco Fabbri
12 lug 2006 - 15:34 - #5Perchè Lucene sarebbe computazionalmente uno dei peggiori search engine disponibili sul mercato OSS?
Mi sembra che sia il search engine opensource con maggiore diffusione e vanta numerosi porting (c,c#,python,lisp…); fra cui il porting su C# (dotLucene) che se nn erro è quello utilizzato all’interno di Beagle.
E’ utilizzato, oltre che in un numerose applicazioni, con volumi di dati molto elevati (Wikipedia e SourceForge.net per citarne alcuni). Infine a fianco di Lucene sono sviluppati un motore di ricerca web open-source (Nutch), e un sistema di calcolo distribuito (Hadoop) che al suo interno contiene un file system distribuito e un implementazione di MapReduce.
fullo
12 lug 2006 - 16:11 - #6la frase completa è Lucene, non adatto a questo genere di applicazioni…
che lucene sia un ottimo progetto non lo metto assolutamente in discussione è solo che IMHO non è per niente adatto ad applicazioni desktop, lo è molto di più per sistemi server. Zoe (scritto in Lua e basato su Lucene) mi ha ucciso letteralmente 2 hd, beagle è indiscutibilmente lento su macchine non di ultima generazione. Lucene per PHP è qualcosa di inaffrontabile…
Marco Fabbri
12 lug 2006 - 18:05 - #7fullo: chiedo venia ;) avevo inteso “computazionalmente” in senso “assoluto”, e allo stesso modo “peggiore” riferito alla architettura / implementazione algoritmica di Lucene, non allo specifico caso d’uso.
Beagle effettivamente (dopo la prima “mortale” indicizzazione) risulta un tantino “cpu/memory hog” (e.g. quando sviluppo sospendo il demone).
A questo punto nn mi resta che provare Tracker; che da quanto ho capito è in grado di effettuare la ricerca full-text nel contenuto dei documenti in “tempi utili” ed allo stesso tempo avere un impatto contenuto sulle prestazioni.
fullo
12 lug 2006 - 18:17 - #8effettivamente rileggendo la frase sembra in termini “assoluti” l’ho corretta :)
cmq il grosso problema di Lucene è che in caso di modifica di un file/risorsa lo elimina dall’indice e lo reinserisce come nuovo oggetto, il che si traduce nel dover ricreare/riottimizzare gli indici ad ogni riavvio del sistema (beagle)… e quindi su un pc desktop, dove la modifica dei file è all’ordine del giorno, diventa controproducente in termini di consumo delle risorse…
nicosaturno
13 lug 2006 - 13:25 - #9per gli amici gentooisti mi permetto di lasciare questo link
http://forums.gentoo.org/viewtopic-t-463642-highlight-tracker.html
con la spiegazione su come installare tracker…un saluto
marcello
27 dic 2006 - 16:32 - #10Ma tracker per kde esiste? magari già compilato rpm per mandriva….
l’ho installato ma mi riavvia la sessione in gnome, usando kde è un tantino scomodo…
grazie