Open
Milestone
Make Indexing Great Again
This is a long-term plan on improving indexing and searching in Kontact. The goal is to make the index faster and reliable, reduce the scope of what we are indexing, but make sure we are indexing it correctly and in a way that will allow us to give the most meaningful results to users queries.
Overall, the work is around 70% done - most of the changes to the indexing infrastructure exist in most repositories in work/dvratil/t7014 branches, but have been abandoned for a few years and need to be revived.
What's missing so far is reindexing support (through a migration agent) and actually changing what's being indexed.
Definition of Done:
- The index database is managed by the Akonadi Server instead of an "indexing agent"
- Indexing happens client-side in the serializer plugins - we then effectively send two payloads to Akonadi Server - the actual payload and the serialized Xapian::Document
- The server inserts the document into the index database alongside any other changes to the Item, thus making the index always up-to-date and complete
- Searching happens through directly querying the databases from clients
- The Indexing Agent is removed
- The Migration Agent contains support for reindexing the entire database in a reliable manner
- For emails we index at least the following fields:
- Subject, From, To, CC, BCC, Date, Collection
- Attachment names
- Index only content of email bodies, support indexing HTML bodies
- Index message flags
- The scope might be extended if we can think of more useful stuff to index
- For contacts we index at least the following fields:
- Name(s), Email(s), Nick name, Birthday, Anniversary, Company, Phone Number, Collection
- For events and todos we index at least the following fields:
- Summary, Description, Organizer, Location, Attendees, Collection
- Calculate all occurrences of an event and store months on which it occurs and range of years within which it occurs
For historical reference: https://phabricator.kde.org/T7014
Loading
Loading
Loading
Loading