Baloo
Baloo is the file indexing and file search framework for KDE Plasma, with a focus on providing a very small memory footprint along with with extremely fast searching.
Ways to communicate
- Mailing List: [email protected] (info page)
- IRC Channel: #kde-devel on freenode
- Phabricator project: https://phabricator.kde.org/project/view/261
Top issues
- DB size grows forever; deleted files are never removed: https://bugs.kde.org/show_bug.cgi?id=353874
- Files in plasma vault are indexed and available when the vault is closed: https://bugs.kde.org/show_bug.cgi?id=390830
- Baloo's file metadata extractor doesn't run sandboxed: https://phabricator.kde.org/D8532
- Baloo DB is entirely rewritten for every write, introducing delays and SSD lifespan issues when DB size grows large: https://bugs.kde.org/show_bug.cgi?id=373021
- Baloo doesn't notice/re-index renamed files saved over other ones: https://bugs.kde.org/show_bug.cgi?id=397242
- Need better error handling for lmdb errors: https://bugs.kde.org/show_bug.cgi?id=368557
- Baloo's initial indexing introduces IO-related UI lag and delays: https://bugs.kde.org/show_bug.cgi?id=400704 & https://bugs.kde.org/show_bug.cgi?id=356357
- No apparent effect after removing a folder from the index; need to restart or kill all Baloo processes: https://bugs.kde.org/show_bug.cgi?id=373430
- baloo_file doesn't get killed when you stop indexing or force a re-index: https://bugs.kde.org/show_bug.cgi?id=353559
- Baloo should index NTFS disks: https://bugs.kde.org/show_bug.cgi?id=399885
- Baloo should have a user-facing option to index source code: https://bugs.kde.org/show_bug.cgi?id=380893
- Baloo crashes a lot in various places:
- https://bugs.kde.org/show_bug.cgi?id=367480 PostingCodec::decode()
- https://bugs.kde.org/show_bug.cgi?id=357206 PostingDB::get() or WriteTransaction::commit()
- https://bugs.kde.org/show_bug.cgi?id=361186 PositionDB::get() or WriteTransaction::commit()
- https://bugs.kde.org/show_bug.cgi?id=397644 DocumentTimeDB::get()
- https://bugs.kde.org/show_bug.cgi?id=390823 IdTreeDB::get()
- https://bugs.kde.org/show_bug.cgi?id=372880 IdFilenameDB::get()
- https://bugs.kde.org/show_bug.cgi?id=395902 DocumentTimeDB::del()
- https://bugs.kde.org/show_bug.cgi?id=393583 PostingDB::del()
- https://bugs.kde.org/show_bug.cgi?id=372655 IdFilenameDB::del()
- https://bugs.kde.org/show_bug.cgi?id=385056 PendingFileQueue::enqueue() or FileWatch::slotFileDeleted()
- https://bugs.kde.org/show_bug.cgi?id=389679 Transaction::commit() or lmdb::mdb_txn_commit()
- https://bugs.kde.org/show_bug.cgi?id=380111 IdTreeDB::put()
- https://bugs.kde.org/show_bug.cgi?id=395888 DocTermsCodec::decode()
- https://bugs.kde.org/show_bug.cgi?id=374239 DocumentIdDB::size()
- https://bugs.kde.org/show_bug.cgi?id=384133 DocumentIdDB::fetchItems()
- https://bugs.kde.org/show_bug.cgi?id=393472 PostingDB::iter or PostingDB::prefixIter when invoked from KRunner
- https://bugs.kde.org/show_bug.cgi?id=403475 putDifferentialVarInt32() or PositionCodec::encode()
Useful pages
- Architecture
- Baloo/Configuration
- Baloo/Debugging
- Baloo/NepomukPort
- Baloo/Tasks
- Baloo/XapianAlternatives
- Baloo/XapianProblems
Using Baloo
Baloo is not an application, but a daemon to index files. Applications can use the Baloo framework to provide file search results.
An intentionally limited number of settings are provided via the KDE System Settings "Desktop Search" icon. Other adjustments can be made directly to the configuration file.
balooctl
balooctl
is a CLI command to perform certain operations on Baloo. The operations are indicated by arguments. All available arguments can be listed by issuing balooctl --help
in terminal app, such as userbase:Konsole.
To be noted, argument checkDb
is only meant to be used by developers for debugging. All it does is to print some messages but not to sanitize the database. And the execution time grows exponentially with the number of indexed files (see Comment 5 under bug #380465).