Noticia Cómo buscar archivos a texto completo en distros Linux livianas

Cómo supongo algunos de Uds. sabrán, KDE viene con Nepomuk, que entre otras cosas nos permite buscar archivos o programas muy fácilmente. Basta con empezar a escribir el nombre y ya salen. Algo similar ocurre en Unity o GNOME. Haciendo algunos ajustes, algunos de ellos incluso hasta permiten realizar búsquedas dentro de los archivos (lo que en inglés se denomina “full text search”). Los que hayan utilizado Windows 7 alguna vez también sabrán de lo que hablo: basta con empezar a escribir una palabra para que aparezcan los archivos o programas relacionados.

En las distribuciones más livianas esto es un poquito más difícil de conseguir. Pero el método que les voy a enseñar es MUY liviano (acorde a distros de este tipo) y efectivo.

Elegir el lanzador: dmenu


Mi primera opción fue probar con los lanzadores que no dependen de un entorno o una distro en particular. Me refiero a Synapse (que ahora está de moda), Gnome-Do, Kupfer, etc. Todos ellos comparten una cosa: no pueden realizar búsquedas “full text” (o sea, dentro de los archivos). Además, vienen con un montón de otros plugins que a mi no me aportan demasiado. Eso sin mencionar que no son lo suficientemente “minimalistas” y ligeros.

Quienes utilicen Openbox, Enlightenment o similar probablemente conozcan dmenu. Los que no lo hayan utilizado nunca, les sugiero que visiten este viejo post donde se explican sus características principales. En resumen, se trata de un lanzador de aplicaciones ultra-minimalista y súper-liviano. Pero no es sólo eso, lo que no sabía es que si se lo configura correctamente, también puede servir para mostrar elementos de cualquier lista que le pasemos. Este descubrimiento, abre las puertas a muchas posibilidades…

Para instalar dmenu en Arch basta con abrir un terminal y ejecutar:

sudo pacman -S dmenu
Instalar Recoll


El segundo descubrimiento, fue Recoll. Nuestro amigo Fico nos habló de él hace unos meses, artículo cuya lectura recomiendo.

Recoll es una herramienta muy liviana e independiente de cualquier entorno de escritorio que permite realizar búsquedas a texto completo (“full text”). Obviamente, para eso primero deberá indexar los archivos, lo cual puede demorar un rato pero una vez realizada la indexación inicial el resto de las actualizaciones no demora mucho.

Recoll es una interfaz gráfica, fácil de usar y con muchas opciones, diseñada en QT y basada en el motor de búsqueda Xapian.

¿Todavía seguís usando locate, find o catfish? ¡Ja! Seguí leyendo…

Para instalar Recoll en Arch y derivados:

yaourt -S recoll

Notarán que recoll tiene como dependencias opcionales un montón de paquetes:

  • libxslt: for XML based formats (fb2,etc)
  • unzip: for the OpenOffice.org documents
  • xpdf: for pdf
  • pstotext: for postscipt
  • antiword: for msword
  • catdoc: for ms excel and powerpoint
  • unrtf: for RTF
  • untex: for dvi support with dvips
  • djvulibre: for djvu
  • id3lib: for mp3 tags support with id3info
  • python2: for using some filters
  • mutagen: Audio metadata
  • python2-pychm: CHM files
  • perl-image-exiftool: EXIF data from raw files
  • aspell-en: English stemming support

La instalación de estos paquetes permitirá a Recoll indexar el contenido de los tipos de archivo correspondientes. Por ejemplo, antiword, permite a Recoll indexar el contenido de los archivos .DOC, etc.

La selección de componentes adicionales a instalar depende de tus necesidades y de la variedad de tipos de archivos que se encuentren almacenados en tu computadora. No obstante, a no desesperar porque Recoll, luego de indexar nuestros archivos, nos recomendará qué componentes instalar para mejorar su efectividad.

Cómo usar Recoll


Al iniciar Recoll por primera vez, aparecerá la pantalla que se ve a continuación. En caso de que quieras indexar solamente tu HOME (en forma completa), sólo basta con que hagas clic en Iniciar indexación ahora.


Pantalla de inicio de Recoll


Recoll cuenta con poderosas facilidades de búsqueda. Además de ingresar las palabras a buscar también permite búsquedas booleanas asistidas con cláusulas de proximidad, filtrando los tipos de archivos o ubicación. También permite una búsqueda compatible con Xesam, por campo y filtrado por fecha.

La respuesta del programa a la hora de realizar las busquedas y presentar resultados también es sorprendente por su rapidez, e interesante por la manera en que presentan esos resultados, determinando los documentos más relevantes, para los términos de búsqueda que se proporcionan, e incluyendo una vista previa.

En la imagen a continuación, yo decidí mostrar los resultados en una tabla, aunque Recoll viene por defecto con otro estilo para mostrar los resultados, mucho más completo y descriptivo.


Resultados de una búsqueda en Recoll


Para ver los paquetes faltantes para que Recoll pueda realizar una indexación completa de tus archivos, basta con ir a Archivo > Mostrar ayudantes faltantes.


Componentes adicionales faltantes


En Preferencias > Horario de Indexación podés configurar la programación de la indexación de archivos. Obviamente, para que Recoll funcione bien necesita indexar todos tus archivos (o al menos los de la carpeta que te interese, usualmente tu HOME). Para ello, hay 3 alternativas: indexación a mano (mi preferida), indexación a través de cron o indexación al arrancar el sistema.


Programación de la indexación en Recoll

Magia: combinar Recoll y dmenu… ¿acaso es posible?


Sí, sí lo es. El truco está en saber que dmenu no sólo permite listar aplicaciones sino cualquier cosa que le pasemos. Sólo hay que descubrir cómo hacer búsquedas en Recoll mediante un terminal y pasarle los resultados a dmenu.

La magia se consigue, como no podía ser de otra manera, a través de un sencillo script, cuya autoría es de Massimo Lauria y que me atreví a modificar ligeramente para traducirlo al español.


Guardá el archivo (supongamos, busq-recoll.sh). Otorgale permisos de ejecución (sudo chmod +a busq-recoll.sh) y asignale una combinación de teclas apropiada. En Openbox, esto se consigue editando el archivo ~/.config/openbox/rc.xml o a través de la interfaz gráfica obkey.

El resultado final: búsquedas a texto completo usando poquísimos recursos. Como diría el Bambino Veira: “¡Belleza!”.


dmenu al ingresar el texto de la búsqueda


dmenu, mostrando los resultados devueltos por recoll

Yapa


Quienes usen Ubuntu, pueden obtener resultados similares a través del Lens de Recoll. Para ello, es necesario agregar el PPA correspondiente e instalar los siguientes paquetes:

sudo add-apt-repository ppa:recoll-backports/recoll-1.15-on
sudo apt-get update
sudo apt-get install recoll
sudo apt-get install recoll-lens

IisialM2mSU


Continúar leyendo...