Overview

What is Tracker?

Tracker is an efficient search engine and triplestore for desktop, embedded and mobile.

It is a middleware component aimed at desktop application developers who want their apps to browse and search user content. It's not designed to be used directly by desktop users, but it provides a commandline tool named tracker for the adventurous.

Tracker allows your application to instantly perform full-text searches across all documents. This feature is used by the 'search' bar in GNOME Files, for example.

This is achieved by indexing the user's home directory in the background.

Tracker also allows your application to query and list content that the user has stored. For example, GNOME Music displays all the music files that are found by Tracker. This means that GNOME Music doesn't need to maintain a database of its own.

If you need to go beyond simple searches, you'll be happy to know that Tracker is also a linked data endpoint and it understands SPARQL.

Apps can also store their own data in the Tracker database, but this feature isn't widely used yet. The next major version of Tracker aims to bring improvements in this regard.

There are several components that make up Tracker:

Who uses Tracker?

GNOME

Tracker is a core dependency of the GNOME desktop.

Gnome's Shell doesn't use Tracker directly. Instead, the search results in the shell are provided by multiple apps on the system, using the SearchProvider API. Some of these apps use Tracker internally, so they return search results provided by Tracker to gnome-shell.

The following GNOME applications use Tracker:

Although Tracker is able to store contacts and calendar entries, GNOME uses Evolution Data Server for this.

GTK

The file chooser dialog supplied by GTK has a search interface. There's a Tracker backend for this.

Media tools

Grilo is a library for finding and fetching media content from many different sources. It uses Tracker to browse and search local media content.

Rygel is a home media solution that serves content over UPnP. It uses Tracker to find your media files.

Sailfish OS

Sailfish OS uses Tracker for indexing media content.

Xapian provides similar functionality to Tracker. It focuses more on scalability and less on having a lightweight footprint. Unlike Tracker, it doesn't support SPARQL or provide a Linked Data endpoint.

Baloo is a metadata and search framework by KDE, implemented using Xapian.

Recoll is a cross-platform desktop search application powered by Xapian.

Apache Lucene + Solr is a search engine which targets very large-scale workloads. It has a much heavier footprint compared to Tracker.

See the Wikipedia article on Desktop search for more information.