How to improve mail search from iPad and other mobile devices

Robert Mueller robm at fastmail.fm
Wed Sep 24 02:08:10 EDT 2014


> According to Apple's manual, Mail searches all folders like this: 
> "Searching looks at the address fields, the subject, and the message
> body."

FYI when we found out about this change, we made all BODY searches from
iOS become FUZZY BODY searches to make them work reasonably.

http://blog.fastmail.fm/2013/09/17/ios-7-mail-app-uses-multi-folder-body-searches-by-default/

This works great with the xapian indexes we have, though it searches for
"terms" not "sub-strings".

On the other hand, there is one massive performance win. The xapian
index is considered "complete", unlike the squatter index which just
says "maybe". This means we can return a UID list directly from the
xapian index without having to actually open any emails.

With squatter, the index tells it which emails *might* contain the
sub-string. It then has to actually open each email file to check if the
sub-string is in there, quite a bit of slow & random IO. Also any emails
not in the squatter index have to be opened and checked as well.

As Bron mentioned in another post, our xapian index is kept up-to-date
in realtime by indexing newly arrived emails into tmpfs, which are then
compressed down to a disk at regular intervals.

All up, the approach works amazingly well.

Rob


More information about the Info-cyrus mailing list