Search

Raspberry Pi 4: Chronicling the Desktop Experience – Desktop Searching – Week 34

Last Updated on September 6, 2020

This is a weekly blog about the Raspberry Pi 4 (“RPI4”), the latest product in the popular Raspberry Pi range of computers.

Desktop search is a software application which searches the contents of computer files, rather than searching the internet. The purpose of this software is to enable the user to locate information on their computer. Typically, this data includes emails, chat logs, documents, contact lists, graphics files, as well as multimedia files including video and audio.

Searching a hard disk can be painfully slow, especially bearing in mind the large storage capacities of modern hard disks. To ensure considerably better performance, desktop search engines build and maintain an index database. Populating this database is a system intensive activity. Consequently, desktop search engines will carry out indexing when the computer is not being used.

One of the key benefits of this type of software is that it allows the user to locate data stored on their hard disk almost instantaneously. They are designed to be fast. They are not integrated with a different application, such as a file manager.

For this week, I’m looking at a marvellous desktop search tool. It’s called Recoll. Recoll uses the Xapian information retrieval library as its storage and retrieval engine.

Recoll

There’s a package available in the Raspberry Pi OS’s repositories. You get version 1.24.3. The current Recoll version is 1.27.2. As we’re missing out on significant program development (more than 2 years worth), I recommend compiling the source code. Fortunately, the process is quite straightforward.

First, let’s install a few necessary packages:

$ sudo apt install libchm-dev xapian-tools libxapian-dev libxslt1-dev

Next, download the file recoll-1.27.2.tar.gz from the project’s website. We can then proceed to uncompress and extract that file with the following tar command:

$ tar zxvf recoll-1.27.2.tar.gz

We then need to run the project’s configure script. This script is responsible for getting ready to build the software on your specific system. It makes sure all of the dependencies for the rest of the build and install process are available, and finds out whatever it needs to know to use those dependencies.

Having run the configure script, we can proceed to compile the source code with the make command. Don’t forget to use the -j4 flag as it speeds up the compilation significantly.

$ cd recoll-1.27.2
$ ./configure
$ make -j4
$ sudo make install
Raspberry Pi 4 - First indexing setup
Click for full size image

We’re then ready to run the program. Bear in mind the first run can take a long time for the indexing to complete.

In my case, this is primarily because my home directory is jam-packed full of software and files. That’s one downside of running the RPI4 from an external SSD with a large capacity.

Recoll indexing is normally incremental: documents will only be processed if they have been modified since the last run.

Once the indexing is complete, we’re ready to rumble.

Raspberry Pi 4 - Recoll in action
Click for full size image

Recoll processes plain text, HTML, OpenDocument (Open/LibreOffice), email formats, and a few others internally.

Other file types (such as PDF, PostScript, MS Word, RTF) need external applications for preprocessing.

The image to the right shows the output of a very simple search. There are five different modes to help you locate what you’re looking for. With the Advanced Search mode, you can build complex queries.

Recoll works admirably on the RPI4. Memory usage is very light, around 62MB of RAM, so you can leave it running all the time whatever model of the RPI4 you’re using. Another success.

Just make sure you avoid the package, and compile the program yourself. It’s not hard (in this instance), and you get all the benefits of the latest version. What the RPI4 really needs is a community-driven repository, similar to the Arch User Repository. This would provide package descriptions that allow users to compile a package from source, sorting out issues specific to the RPI4. Given the huge volume of sales of the RPI4, I’m surprised we’re still so reliant on the official repositories stuffed full of mostly outdated software.


Read all my blog posts about the RPI4.

Raspberry Pi 4 Blog
Week 36Manage your personal collections on the RPI4
Week 35Survey of terminal emulators
Week 34Search the desktop with the latest version of Recoll
Week 33Personal Information Managers on the RPI4
Week 32Keep a diary with the RPI4
Week 31Process complex mathematical functions, plot 2D and 3D graphs with calculators
Week 30Internet radio on this tiny computer. A detailed survey of open source software
Week 29Professionally manage your photo collection with digiKam
Week 28Typeset beautifully with LyX
Week 27Software that teaches young people how to learn basic computing skills and beyond
Week 26Firefox revisited - Raspbian now offers a real alternative to Chromium
Week 25Turn the Raspberry Pi 4 into a low power writing machine
Week 24Keep the kids learning and having fun
Week 23Lots of choices to view images
Week 22Listening to podcasts on the RPI4
Week 21File management on the RPI4
Week 20Open Broadcaster Software (OBS Studio) on the RPI4
Week 19Keep up-to-date with these news aggregators
Week 18Web Browsers Again: Firefox
Week 17Retro gaming on the RPI4
Week 16Screen capturing with the RPI4
Week 15Emulate the Amiga, ZX Spectrum, and the Atari ST on the RPI4
Week 14Choose the right model of the RPI4 for your desktop needs
Week 13Using the RPI4 as a screencaster
Week 12Have fun reading comics on the RPI4 with YACReader, MComix, and more
Week 11Turn the RPI4 into a complete home theater
Week 10Watching locally stored video with VLC, OMXPlayer, and others
Week 9PDF viewing on the RPI4
Week 8Access the RPI4 remotely running GUI apps
Week 7e-book tools are put under the microscope
Week 6The office suite is the archetypal business software. LibreOffice is tested
Week 5Managing your email box with the RPI4
Week 4Web surfing on the RPI4 looking at Chromium, Vivaldi, Firefox, and Midori
Week 3Video streaming with Chromium & omxplayerGUI as well as streamlink
Week 2A survey of open source music players on the RPI4 including Tauon Music Box
Week 1An introduction to the world of the RPI4 looking at musikcube and PiPackages

This blog is written on the RPI4.

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
John Parrish
John Parrish
3 years ago

A community driven repository for the Raspberry Pi is an awesome idea. There’s so many unusable packages in the official repository, and lots of really useful software missing. I’d really like programs like RStudio available.

Trent Calder
Trent Calder
3 years ago

Would love this a lot.