Total Recoll, come indicizzare il file system Linux

Postato da ROb | nella categoria Linux | venerdì, 11 novembre 2011

4

Chi ha avuto l’esigenza di dover indicizzare il proprio file system in ambiente Linux sicuramente conosce Beagle o Google Desktop Search. Beagle è molto spesso installato nativamente ed è scritto in Mono, Google Desktop Search è invece un’applicativo sviluppato da Google (inventrice degli algoritmi efficienti per l’indicizzazione e il retrieving dei documenti).

Oggi voglio parlarvi di una soluzione alternativa, sempre per il mondo Unix/Linux (anche se esistono dei port per altre piattaforme) e del quale sono rimasto particolarmente soddisfatto.

Recoll, questo il suo nome, consta di una componente di indicizzazione e di una componente di document retrieval (sia tramite interfaccia GUI che via command line). Il bello di Recoll è la sua semplicità di utilizzo e la possibilità di modificare i parametri di configurazione dell’indice nonché la visualizzazione dei risultati forniti. Le impostazioni vengono salvate in un apposito file di configurazione modificabile anche tramite un semplice editor di testo.

Inoltre, potendo lavorare direttamente via console, può essere facilmente installato anche in ambito server (opzione molto utile per interrogare i documenti salvati in un file system remoto).

L’indice di Recoll viene salvato in un database xapiandb.  Recoll è in grado di analizzare file di diverso tipo. I più comuni sono i documenti office, quelli pdf e anche gli html. Ovviamente non mancano i file .txt , gli mp3 (con i relativi tag ID3) e i file di immagini. Infine e’ anche possibile installare delle lingue aggiuntive per la creazione del corpus delle parole e dei termini di ricerca.

Nell’immagine che segue è possibile ammirare la finestra principale dell’applicativo. Quelli che si vedono sono i risultati di un query non banale, con una sintassi Google like. I risultati possono essere ordinati per alcuni importanti criteri e l’output fornito è facilmente customizzabile. Il link “Edit” apre il documento attraverso il client predefinito del nostro PC, il pulsante “Preview” ci permette di navigare al volo all’interno del contenuto testuale del documento stesso. Usando il tasto destro del mouse su ogni riga è possibile anche effettuare altre operazioni come copiare il path completo del file oppure aprire la directory in cui si trova il documento trovato.

Insomma c’è tutto quello di cui abbiamo bisogno.

Cito infine due aspetti che ho trovato decisamente comodi e differenzianti:

1) la possibilità di lanciare Recoll in modalità di indicizzazione continuative in realtime. Avviando infatti l’eseguibile recollindex con il parametro -m , il programma riceve dal kernel le notifiche di tutti i file modificati, creati o cancellati nel sistema, verifica che appartengono alla lista di directory da monitorare e in caso affermativo procede all’indicizzazione selettiva di tali documenti.

2) Recoll fornisce una comoda interfaccia a caratteri per effettuare le stesse operazioni eseguite tramite interfaccia GUI. Invocato in questo modo infatti:

bash#roberto@ken 00:29 ~ >recoll -t -a "Linux Appunti blog"
Recoll query: ((linux:(wqf=11) AND appunti:(wqf=11) AND (blog:(wqf=11) OR blogs OR blogging)))
10 results
text/html       [file:///home/roberto/Documenti/Firefox/FEBE 2010 03-24 22.55.45/bookmarks{default}.html]       [Bookmarks]     275349  bytes
text/html       [file:///home/roberto/Documenti/Firefox/FEBE 2010 09-17 12.58.21/bookmarks{default}.html]       [Bookmarks]     296552  bytes
text/html       [file:///home/roberto/Documenti/matrimonio/link/bookmarks.html] [Bookmarks]     148148  bytes
text/html       [file:///home/roberto/Documenti/Firefox/FEBE 2011 03-23 22.19.56/bookmarks{default}.html]       [Bookmarks]     312681  bytes
text/plain      [file:///home/roberto/Documenti/Firefox/FEBE 2010 03-24 22.55.45/bookmarks{default}.json]       [bookmarks{default}.json]       137659  bytes
text/plain      [file:///home/roberto/Documenti/Firefox/FEBE 2010 09-17 12.58.21/bookmarks{default}.json]       [bookmarks{default}.json]       140021  bytes
text/plain      [file:///home/roberto/Documenti/Firefox/FEBE 2011 03-23 22.19.56/bookmarks{default}.json]       [bookmarks{default}.json]       146995  bytes
application/pdf [file:///home/roberto/Desktop/download/pilibri/238.pdf] [238.pdf]       7361925 bytes

application/pdf [file:///home/roberto/Documenti/Manuali/Libri Punto Informatico/238.pdf]        [238.pdf]       7361925 bytes

permette di eseguire query al volo nella nostra base di dati.

Spero che abbia stuzzicato il vostro appetito. Io ancora lo sto mettendo alla prova.
Per chi fosse interessato posso fornire alcuni alias che ho creato per interagire con Recoll in modo veloce.

Ecco la pagina ufficiale del progetto.

Buona notte!